Virtual Servo Smoke

Ya .. that looked painful ... and I must have burned about 20 virtual servos ! 
I implemented Animation ... I feel pretty good about the way its implemented, but as you can tell the mappings of ranges are very whacked. You can see a couple fingers moove too.. I have plans on how to implement 3 joints controlled by a single finger, but the names of the finger joints are inconsistent, and only two aligned.

"Speed" is enabled too - so that setting the speed of the servo affect the speed of the movement (at a "correct" proportion I hope)   You can see a few flashes of movement, which are probably caused by mapping ranges mismatched in such a way something flips over some 360 or 180 or 0 boundry .. not positive.

There is a lot of work still to do, but I've made some progress.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
GroG's picture

@Gael There is no node for


There is no node for i01.torso.lowStom, i01.torso.midStom nor i01.torso.topStom

Computers are dumb and only like exact matches ...

Additional renamings I had to do follow :

      jme.rename("i01.leftHand.thumb1", "i01.leftHand.thumb");
      jme.rename("i01.leftHand.ringFinger1", "i01.leftHand.ringFinger");
      jme.rename("i01.leftHand.index1", "i01.leftHand.index");
      jme.rename("i01.rightHand.majeure1", "i01.leftHand.majeure");
      jme.rename("i01.leftHand.pinky1", "i01.leftHand.thumb");
      jme.rename("i01.rightHand.thumb1", "i01.rightHand.thumb");
      jme.rename("i01.rightHand.ringFinger1", "i01.rightHand.ringFinger");
      jme.rename("i01.rightHand.index1", "i01.rightHand.index");
      jme.rename("i01.rightHand.majeure1", "i01.rightHand.majeure");
      jme.rename("i01.rightHand.pinky1", "i01.rightHand.thumb");
I thought you might be following a convention like this - but a couple things i notices, is the matching is case sensitive so i01.rightHand.ringFinger will not match
Also : 
Here are my current mappings
      jme.setMapper("i01.head.neck", 0, 180, -90, 90);
      jme.setMapper("i01.head.rollNeck", 0, 180, -90, 90);
      jme.setMapper("i01.head.rothead", 0, 180, -90, 90);
//       jme.setMapper("i01.head.jaw", 0, 180, -10, 5); // is this true ? clipping vs attenuation .. should "not" min/max
      jme.setMapper("i01.head.jaw", 0, 180, -10, 170); // is this true ? clipping vs attenuation .. should "not" min/max
      jme.setMapper("i01.head.rothead", 0, 180, -90, 90);
      jme.setMapper("i01.rightArm.bicep", 0, 180, 0, -180);
      jme.setMapper("i01.leftArm.bicep", 0, 180, 0, -180);
      jme.setMapper("i01.rightArm.shoulder", 0, 180, -30, 150);
      jme.setMapper("i01.leftArm.shoulder", 0, 180, -30, 150);
      jme.setMapper("i01.rightArm.rotate", 0, 180, 90, 270);      
      jme.setMapper("i01.leftArm.rotate", 0, 180, -90, 90);
Which obviously are not right ... but they were worse ... if you can believe it ..
It would be really nice if we had a process or system where I could somehow align these correctly...
Let me know if you have any ideas .