The Inverse Kinematics (IK) API's are divided over three files: IIKSys.h
, IKSolver.h
, and IKHierarchy.h
. IIKSys.h contains the interface definition of the two types of controllers, IIKControl and IIKChainControl. They are both TM controllers. The former is used in joints (nodes on which IK will be applied), and the latter is used in the IK goals (nodes that serve as IK goals).
The IKControl
and IKChainControl
are knit together as the IK system. When an IK solution is called for, the IK system will invoke the IK solver, which is a mathematical algorithm that, given the goal position/orientation, and incidental parameters, produces a solution in terms of joint angles (rotation values of respective nodes). While the controllers involved in IK are not expandable via plugin, the IK solver is actually plug-able. The IK system will recognize a plug-in solver by putting it in the solver list wherever it appears.
An interface pointer to the IKControl
class can be obtained by using Animatable::GetInterface()
with I_IKCONTROL
as an argument.
An example on using the IK API can be found in the 3ds Max SDK, \MAXSDK\SAMPLES\IKSOLVERS\IKLIMB .
IKChainActions
IKSolver
IIKChainControl
IIKControl
ZeroPlaneMap
RootLink
Link
LinkChain
Animatable