Legacy Reference

Limb IK

You can set up limb IK chains for characters. When a limb IK chain is active, Lumberyard calculates values for the joints that are part of the chain so that the end effector reaches the specified target position.

The behavior for each chain and the number of joints supported depends on the IK solver used: 2BIK for two-bone IK, 3BIK for three-bone IK, and CCDX for cyclic coordinate descent with x joints.

Systems that use limb IK chains include animation-driven IK, foot and leg ground alignment, and game code.

The following summarizes the attributes that you must define for each IK element:

  • EndEffector – The joint that reaches the target location.

  • Handle – The limb IK definition. No more than 8 characters are allowed, and the handle must be unique.

  • Root – The starting joint for the IK chain.

  • Solver – Code that calculates the joint values.


The joint names referenced for the attributes should match the names of the joints in your skeleton, but these names don't have any specific naming requirements.

The limb IK parameters are stored in the .chrparams file with the following format:

<Params> <IK_Definition> <LimbIK_Definition> <IK EndEffector="Bip01 L Hand" Handle="LftArm01" Root="Bip01 L UpperArm" Solver="2BIK"/> <IK EndEffector="Bip01 R Hand" Handle="RgtArm01" Root="Bip01 R UpperArm" Solver="2BIK"/> <IK EndEffector="Bip01 L Foot" Handle="LftLeg01" Root="Bip01 L Thigh" Solver="2BIK"/> <IK EndEffector="Bip01 R Foot" Handle="RgtLeg01" Root="Bip01 R Thigh" Solver="2BIK"/> </LimbIK_Definition> </IK_Definition> </Params>