Tuesday, November 6, 2007

More Rigging Issues

Yesterday I discovered some more problems with my rig.
I finished fixing all of them for now - until next time...

Problem 1:
  • Symptom 1: When the arms are retracted all the way using the blend shape the cube wall is not as it is in the blend shape - it has some ugly bumps. Also when blending half way the arm does not look like it should. Moreover, each arm looks different...

  • Symptom 2: After much research, it turns out the cause of symptom 1 is that the skeleton was not in the bind pose.

  • Symptom 3: When using ikBlend = 1, even though the IK didn't move, the skeleton is no longer in it's bind pose.

  • Cause: The problem was that one of the IK was probably attached to the skeleton when it had rotation values different than 0 (the bind pose).

  • Solution: Delete the bad IK. Rotate the joint back to the bind pose. Create the IK again. Attach the control's ikBlend to the new IK's ikBlend attribute.

Problem 2:
  • Symptom: In the other arm, the IK was ok but when the rotation of all joint was 0 the geometry did not look the same as in the bind pose. When the skeleton was back in the bind pose one joint had non-zero rotations.

  • Cause: After moving the joints, the "Reattach Selected Joints" command was executed when the joint was rotated. This caused the skeleton to look right when the joint is rotated, and deform when the joint rotation is 0.

  • Solution: Detach the bad joint from the skin using "Detach Selected Joints" when it is in the bind pose (not in zero rotation). Rotate the joint back to zero. Reattach the bad joint using "Reattach Selected Joints".

Problem 3:
  • Symptom: The lattice works correct only when the object is in (0,0,0) location. When the skeleton is moved up by the main control or the group, the lattice works as if the lattice shape was never moved from the origin (even though the shape is moving with the object).

  • Cause: I think the problem is that the lattice was attached to the geometry before the skeleton was binded.

  • Solution: When it happened before I deleted the lattice and created it again. Then it was created after binding the skin and it worked correctly. Then I used a method I was told about in the CG forums:
    Right click on the geometry -> Inputs -> All Inputs...
    This opens a window called "List History" which shows all the inputs of the object, much like in the attributes window, except in this window you can move the transformations position in the list, for example grab the lattice (the input is called ffd1) and move it up the hierarchy and above the skeleton, as seen in the image below.



Now the skeleton, the blend shape and the lattice all work fine and affect the geometry together. I checked and double checked.

Anyway, the lesson is you should always test, test and test again everything about the rig before moving on, to catch these problems early.
In my previous line of work we would call it "QA" :)

No comments: