public void setJointAnimation(
    String jointName, String animName, float progress
  ) {
    final int jID = model.jointID(jointName) ;
    if (jID == -1) return ;// I.complain("No Such Joint: "+jointName) ;
    final Model.AnimRange range = rangeFor(animName) ;
    if (range == null) return ;// I.complain("No such animation: "+animName) ;
    final Joint joint = joints[jID] ;
    if (joint.animation != null && joint.animation.animRange == range) {
      joint.animation.setProgress(progress) ;
      return ;
    }
    final JointAnimation anim = new JointAnimation(this, range) ;
    anim.setProgress(progress) ;
    applyAnimation(joint, anim) ;
  }