Go to: Related nodes. Attributes.
The ikHandle node represents the goal of the skeleton. An ikSolver
takes the goal information (position and orientation) to find the
IK solution for the skeleton.
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 |
MFn type |
Compatible function sets |
ikHandle |
transform |
kIkHandle |
kBase
kNamedObject
kDependencyNode
kDagNode
kTransform
kIkHandle |
Related nodes
joint, ikSolver, ikMCsolver, ikSplineSolver, ikSCsolver, ikRPsolver, ikPASolver, ikSystem, ikEffector
Attributes (50)
checkSnappingFlag, dTwistControlEnable, dTwistEnd, dTwistRamp, dTwistRampB, dTwistRampG, dTwistRampMult, dTwistRampR, dTwistStart, dTwistStartEnd, dTwistValueType, dWorldUpAxis, dWorldUpMatrix, dWorldUpMatrixEnd, dWorldUpType, dWorldUpVector, dWorldUpVectorEnd, dWorldUpVectorEndX, dWorldUpVectorEndY, dWorldUpVectorEndZ, dWorldUpVectorX, dWorldUpVectorY, dWorldUpVectorZ, dofList, dofListDirtyFlag, endEffector, handleDirtyFlag, ikBlend, ikFkManipulation, ikSolver, inCurve,
offset, owningHandleGroup, poWeight, poleVector, poleVectorX, poleVectorY, poleVectorZ, priority, roll,
rootOnCurve, rootTwistMode, skeletonDirtyFlag, snapEnable, splineIkOldStyle, startJoint, stickiness, twist,
twistType, weight
Long name (short name) |
Type |
Default |
Flags |
|
startJoint
(hsj ) |
Message |
n/a |
|
|
endEffector
(hee ) |
Message |
n/a |
|
|
ikSolver
(hsv ) |
Message |
n/a |
|
|
snapEnable
(hsh ) |
bool |
true |
|
|
stickiness
(hs ) |
enum |
0 |
|
|
priority
(hpr ) |
integer |
1 |
|
|
weight
(hw ) |
double |
1.0 |
|
|
poWeight
(hpo ) |
double |
1.0 |
|
|
poleVector
(pv ) |
double3 |
|
|
|
poleVectorX
(pvx ) |
double |
0.0 |
|
|
|
poleVectorY
(pvy ) |
double |
0.0 |
|
|
|
poleVectorZ
(pvz ) |
double |
1.0 |
|
|
|
inCurve
(ic ) |
nurbsCurve |
NULL |
|
|
offset
(off ) |
double |
0.0 |
|
|
roll
(rol ) |
angle (double) |
0.0deg |
|
|
twist
(twi ) |
angle (double) |
0.0deg |
|
|
rootOnCurve
(roc ) |
bool |
false |
|
|
twistType
(twt ) |
enum |
0 |
|
|
rootTwistMode
(rtm ) |
bool |
false |
|
|
ikBlend
(ikb ) |
double |
1.0 |
|
|
handleDirtyFlag
(hdf ) |
bool |
false |
|
|
checkSnappingFlag
(csf ) |
bool |
false |
|
|
owningHandleGroup
(ohg ) |
voidPtr |
NULL |
|
|
dofList
(dfl ) |
voidPtr |
voidPtr |
|
|
dofListDirtyFlag
(dld ) |
bool |
false |
|
|
skeletonDirtyFlag
(ods ) |
bool |
false |
|
|
ikFkManipulation
(eik ) |
bool |
false |
|
|
dWorldUpType
(dwut ) |
enum |
0 |
|
|
dWorldUpAxis
(dwua ) |
enum |
0 |
|
|
dWorldUpVector
(dwuv ) |
double3 |
|
|
|
dWorldUpVectorX
(dwux ) |
double |
0.0 |
|
|
|
dWorldUpVectorY
(dwuy ) |
double |
1.0 |
|
|
|
dWorldUpVectorZ
(dwuz ) |
double |
0.0 |
|
|
|
dWorldUpVectorEnd
(dwve ) |
double3 |
|
|
|
dWorldUpVectorEndX
(dwvx ) |
double |
0.0 |
|
|
|
dWorldUpVectorEndY
(dwvy ) |
double |
1.0 |
|
|
|
dWorldUpVectorEndZ
(dwvz ) |
double |
0.0 |
|
|
|
dWorldUpMatrix
(dwum ) |
matrix |
identity |
|
|
dWorldUpMatrixEnd
(dwue ) |
matrix |
identity |
|
|
dTwistValueType
(dtvt ) |
enum |
0 |
|
|
dTwistStartEnd
(dtse ) |
double2 |
|
|
|
dTwistStart
(dtst ) |
double |
0.0 |
|
|
|
dTwistEnd
(dten ) |
double |
0.0 |
|
|
|
dTwistRamp
(dtra ) |
float3 |
|
|
|
dTwistRampR
(dtrr ) |
float |
0.0 |
|
|
|
dTwistRampG
(dtrg ) |
float |
0.0 |
|
|
|
dTwistRampB
(dtrb ) |
float |
0.0 |
|
|
|
dTwistRampMult
(dtrm ) |
double |
90.0 |
|
|
dTwistControlEnable
(dtce ) |
bool |
false |
|
|
splineIkOldStyle
(sio ) |
bool |
false |
|