Go to: Related nodes. Attributes.
An ikHandle node has the skeleton information, the start joint (joint) and the end-effector (ikEffector) of that skeleton. From these two ends, the ikHandle node knows the whole skeleton chain, for example, all the degrees of freedom (DOF).
There are several kinds of ikHandle nodes, depending on what ikSolver they use. If the ikHandle node uses an ikRPsolver or ikSCsolver, it is a single chain handle. If it uses an ikSplineSolver, it is an IK spline handle. These different IK handles have different behavior which is determined by the IK solver.
A single chain handle is created with the IK handle tool, and an IK spline handle with the IK spline handle tool. They can also be created with the ikHandle command. When an ikHandle node has been created, it is connected with the start joint and the end-effector of the skeleton chain, and also connected with the given ikSolver node through three attributes, startJoint, endEffector, and ikSolver. Then it becomes a valid ikHandle and is added into a global list of ikHandle nodes in the ikSystem node.
There are also other attributes that determine how this ikHandle node is involved in an IK solution.
The ikBlend attribute determines whether the joints spanned by the ikHandle are solved by pure IK, pure FK (joint rotations), or a blend of the two. An ikBlend of 1.0 specifies pure IK. An ikBlend of 0.0 specifies pure FK. Values between 0 and 1 are blended. The default value is 1.0. Prior to version 5.0 of Maya, the ikBlend attribute was called "solverEnable".
The snapEnable attribute allows the ikHandle node to be snapped back to the end-effector position and orientation if it is on. The default is on.
The stickiness attribute is an enum attribute. It works in the interactive mode. If it is set to 'sticky', the IK solution should be calculated when translating the root of the skeleton. The default is off.
The priority attribute represents an order in which this ikHandle node gets solved. It also determines how ikHandle nodes will be grouped. The ikHandle node with the smaller priority value will be solved earlier than higher. If auto-priority is on when creating an ikHandle node, the priority is set to the depth of start joint in the hierarchy. The default priority is 1.
The weight attribute determines how much this ikHandle node affects the IK solution. This attribute does not affect the ik solution for single chain and spline ikHandle nodes. The default value is 1.0.
The poWeight attribute is a balance weight value of position/orientation. It is used to determine how the position/orientation of this ikHandle node affects the IK solution. If it is 1.0, only position information of the ikHandle node contributes to the IK solution. If it is 0.0, only the orientation is taken into account to compute the IK solution. This attribute does not affect the ik solution for single chain and spline ikHandle nodes either. The default value is 1.0.
The poleVector attribute is a special control for an ikHandle node which uses an ikRPsolver (see the documentation for the ikRPsolver node). The default value is the Z-axis (0.0 0.0 1.0).
The twist attribute determines the twist value of the ikRPhandle or ikSplineHandle. For the ikSplineHandle, the twist value determines how much to twist the joint chain from the end. (For the ikRPhandle, see the documentation for the ikRPsolver node). The default value is 0.0.
The following attributes are specific to the ikSplineSolver. See the documentation for the ikSplineSolver node for more details.
The inCurve attribute is an input curve which is used to determine where to place and how to orient the joints.
The rootOnCurve attribute determines if the root joint is constrained to be on the curve.
The offset attribute determines how much to offset the root joint along the curve. The offset value is used only when the attribute rootOnCurve is set. The default value is 0.0.
The roll attribute determines how much to roll the root joint. All subsequent joints are rolled as well. The default value is 0.0.
The twistType attribute is an enum attribute which determines how to distribute the twist along the joints. There are four twist types: linear, easeIn, easeOut and easeInOut. The default type is linear.
The rootTwistMode attribute indicates whether the start joint is allowed to twist or not. If not, then the required twist is distributed over the remaining joints. This applies to all the twist types.
Node name | Parents | Classification | MFn type | Compatible function sets |
---|---|---|---|---|
ikHandle | transform | drawdb/geometry/ikHandle | kIkHandle | kBase kNamedObject kDependencyNode kDagNode kTransform kIkHandle |
joint, ikSolver, ikMCsolver, ikSplineSolver, ikSCsolver, ikRPsolver, ikPASolver, ikSystem, ikEffector
The following quick index only shows top-level attributes (too many attributes to show them all): checkSnappingFlag, dForwardAxis, dTwistControlEnable, dTwistRamp (3), dTwistRampMult, dTwistStartEnd (2), dTwistValueType, dWorldUpAxis, dWorldUpMatrix, dWorldUpMatrixEnd, dWorldUpType, dWorldUpVector (3), dWorldUpVectorEnd (3), dofList, dofListDirtyFlag, endEffector, handleDirtyFlag, ikBlend, ikFkManipulation, ikSolver, inCurve, offset, owningHandleGroup, poWeight, poleVector (3), priority, roll, rootOnCurve, rootTwistMode, skeletonDirtyFlag, snapEnable, splineIkOldStyle, startJoint, stickiness, twist, twistType, weight
Long name (short name) | Type | Default | Flags | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
checkSnappingFlag
(csf )
| bool | false | ![]() ![]() ![]() | ||||||||||||||
dofList
(dfl )
| voidPtr | voidPtr | ![]() ![]() ![]() | ||||||||||||||
dofListDirtyFlag
(dld )
| bool | false | ![]() ![]() ![]() | ||||||||||||||
endEffector
(hee )
| Message | n/a | ![]() ![]() ![]() | ||||||||||||||
ikFkManipulation
(eik )
| bool | false | ![]() ![]() ![]() ![]() | ||||||||||||||
dForwardAxis
(dpa )
| enum | 0 | ![]() ![]() ![]() ![]() | ||||||||||||||
handleDirtyFlag
(hdf )
| bool | false | ![]() ![]() ![]() | ||||||||||||||
ikSolver
(hsv )
| Message | n/a | ![]() ![]() ![]() | ||||||||||||||
ikBlend
(ikb )
| double | 1.0 | ![]() ![]() ![]() ![]() ![]() | ||||||||||||||
inCurve
(ic )
| nurbsCurve | NULL | ![]() ![]() ![]() | ||||||||||||||
offset
(off )
| double | 0.0 | ![]() ![]() ![]() ![]() ![]() | ||||||||||||||
owningHandleGroup
(ohg )
| voidPtr | NULL | ![]() ![]() ![]() | ||||||||||||||
poWeight
(hpo )
| double | 1.0 | ![]() ![]() ![]() ![]() | ||||||||||||||
poleVector
(pv )
| double3 | ![]() ![]() ![]() ![]() | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
priority
(hpr )
| integer | 1 | ![]() ![]() ![]() ![]() | ||||||||||||||
roll
(rol )
| angle (double) | 0.0deg | ![]() ![]() ![]() ![]() ![]() | ||||||||||||||
rootOnCurve
(roc )
| bool | false | ![]() ![]() ![]() ![]() | ||||||||||||||
rootTwistMode
(rtm )
| bool | false | ![]() ![]() ![]() ![]() | ||||||||||||||
skeletonDirtyFlag
(ods )
| bool | false | ![]() ![]() ![]() | ||||||||||||||
snapEnable
(hsh )
| bool | true | ![]() ![]() ![]() ![]() | ||||||||||||||
splineIkOldStyle
(sio )
| bool | false | ![]() ![]() ![]() ![]() | ||||||||||||||
startJoint
(hsj )
| Message | n/a | ![]() ![]() ![]() | ||||||||||||||
stickiness
(hs )
| enum | 0 | ![]() ![]() ![]() ![]() | ||||||||||||||
twist
(twi )
| angle (double) | 0.0deg | ![]() ![]() ![]() ![]() ![]() | ||||||||||||||
dTwistControlEnable
(dtce )
| bool | false | ![]() ![]() ![]() ![]() | ||||||||||||||
dTwistRamp
(dtra )
| float3 | ![]() ![]() ![]() ![]() | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
dTwistRampMult
(dtrm )
| double | 90.0 | ![]() ![]() ![]() ![]() | ||||||||||||||
dTwistStartEnd
(dtse )
| double2 | ![]() ![]() ![]() ![]() | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
twistType
(twt )
| enum | 0 | ![]() ![]() ![]() ![]() | ||||||||||||||
dTwistValueType
(dtvt )
| enum | 0 | ![]() ![]() ![]() ![]() | ||||||||||||||
weight
(hw )
| double | 1.0 | ![]() ![]() ![]() ![]() | ||||||||||||||
dWorldUpAxis
(dwua )
| enum | 3 | ![]() ![]() ![]() ![]() | ||||||||||||||
dWorldUpMatrix
(dwum )
| matrix | identity | ![]() ![]() ![]() ![]() | ||||||||||||||
dWorldUpMatrixEnd
(dwue )
| matrix | identity | ![]() ![]() ![]() ![]() | ||||||||||||||
dWorldUpType
(dwut )
| enum | 0 | ![]() ![]() ![]() ![]() | ||||||||||||||
dWorldUpVector
(dwuv )
| double3 | ![]() ![]() ![]() ![]() | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
dWorldUpVectorEnd
(dwve )
| double3 | ![]() ![]() ![]() ![]() | |||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|