The IKChainControl uses a boolean controller for turning the IK solver on/off. On/off implies an opposite referencing structure. When it is on, joints reference the ik goal, whereas when it is off, the goal references the end joint, ie. the goal has to snap to the end effector. This means that the direction of message propagation is decided on the state of this boolean controller. To avoid evaluating an animatable attribute during message propagation, we require that this controller cannot be replaced by a possibly arbitrarily wired controller.
HD IK controller chains can be assigned to existing hierarchies.
HDIKSys.ikChain <startJoint> <endJoint> <assignEE>
The first node in the new chain, called the ancestor.
The last node in the chain, called the decendent.
A boolean parameter: when TRUE, a position end effector is created at the endJoint.
If 4 boxes existed in the scene and Box02 was a child of Box01, Box03 was a child of Box02, and Box04 was a child of Box03:
HDIKSys.ikChain $Box01 $Box04 TRUE
would assign HD IK controllers and create an end effector at Box04.
Pos/Rotation/Scale properties of the nodes are accessible immediately. Instead of writing $node.transform.controller.ik_goal.controller.pos, you can say, in MAXScript, $node.pos.controller, etc.
Both IKControl and IKChainControl can not be instanced.
IKChainControl : Matrix3Controller