IKLimb Solver

Topic: version 4 MAXScript New Features/IK

The IK Limb Solver is specifically meant for animating the limbs of human characters; for example, the hip to the ankle, or the shoulder to the wrist. It affects only two bones in a chain. It is an analytical solver that is very fast and accurate in viewports.

Note: To use with the IK Limb solver, a bones system must have three bones in the chain. The goal is placed at the pivot point of the third bone, and the IK solution is calculated for the first and second bones.

The IK Limb solver works not only with bone hierarchies, but with any linked hierarchy that has three elements, and is set up to model a human limb. The additional requirements are:

If you attempt to put an IK Limb solver on an inappropriate chain, a warning message informs you that your IK Limb solver assignment has no effect.

The IK Limb solver uses the same controls as the HI IK solver, so it follows the model of setting preference angles for joints, and allows for mixing periods of forward and inverse kinematics in the same animation period. It does not use the HD IK Solver methods of damping, precedence, and setting joint limits.

The IK Limb solver is provided as part of the Discreet Open Source initiative, so it can be exported directly to a game engine.

The joint angles are obtained by computing the transformation (rotation) between the initial chain plane and the target chain plane. The initial chain plane is defined by three unit vectors:

  1. shoulder-to-elbow unit vector (at the initial pose)

  2. projection of end-effector-axis on a plane perpendicular to the shoulder-to-elbow unit vector (at the initial pose)

  3. cross product of the above two.

Similarly, the target plane is defined by three analogous vectors at the target pose.

See also