Wednesday, December 15, 2010

IK Spring Solver

IK Spring Solver is useful when posing and animating limbs that have numerous joints such as insect legs. The most prominent function is the ability to adjust the spring angle bias to keep the joint angles to be evenly distributed. To use this IK solver, it has to be activated through an easy MEL script:

ikSpringSolver

Through the Internet, there are many people who bumps into problems while using this IK Solver, especially when performing world rotation that seems not to affect the joints rigged with IK Spring Solver. This problem has been a plague since Maya 7.0 and no rectification is being done up till Maya 2009 (which I am using) to make it behave properly.

The only available fix to it, is to have the first joint of a series of joints bounded to an IK Spring Solver not to be parented to its whatever parent. That joint shall be parent constrained to whatever parent it supposed to be, instead of directly parented underneath them. 

Note that IK Spring Solver will also break if you choose to parent the joints under a transform node and choose that transform node to perform the required parent-constraining. It is okay if you parent constrain the joints to whatever parents it supposed to be as described above, and group the joints in an empty transform node for clarity purposes. 

I guess that is as much as I could explain. Please do drop a message if the problem persists, or my instructions being unclear.

3 comments:

  1. Thanks for this fix! Worked like a charm for me!

    ReplyDelete
  2. Hi!

    I finally got an answer from Autodesk on this bug.
    It was introduced in Maya 8.5 by fixing another bug.

    We can revert to the correct behavior of the ikSpring by setting this attribute on the handle to 1 :
    setAttr ikSpringSolverHandle.splineIkOldStyle 1

    Cheers

    david

    ReplyDelete