Houdini 22.0 Character KineFX

Multi IK 2.0

Sets up IK chains with more than 3 nodes, or multiple IK chains using segments.

Since 21.0

This component sets up IK chains with more than 3 nodes. It can also set up multiple IK chains in the rig hierarchy.

Multi IK functionality on the arms and legs

See rigging a simple geometry and rigging a character for example uses of this component.

Parameters

Name

The name to add to the nodes created by this component. When using Segments, the segment name is also added to the node names.

Settings

Solver

The IK solver to use. Jacobian IK is the default solver. Choose CCD IK (cyclic coordinate descent) when the chain needs to support orient constraints.

Dampen

A larger value dampens the effect of the IK solve, smoothing its snapping effects at the cost of accuracy.

Stretch

A larger value allows more stretch for the IK chain when the target is beyond the length of the chain.

Tracking Threshold

Sets the accuracy of the solve. A higher value is faster but less accurate.

Use Twist

When turned on, uses the pole vector to twist the IK chain.

Preferred Axis

When Use Twist is turned on, this is the axis the IK chain bends along when the chain is colinear (fully straightened). When the chain has no defined bend plane, the solver uses this axis to choose which way the chain bends.

Use Twist Rest

When turned on, stops the twist from flipping when the pole vector moves to the opposite side of the IK chain. This adds a twist rest control that defines the rest orientation the twist is measured against. This parameter is available when Use Twist is turned on.

Twist Max

When Use Twist Test is turned on, this is the maximum angle, in degrees, over which the twist rest stabilization is applied.

Level Root

When turned on, sets the root control to world orientation. When turned off, sets the orientation of the root control to that of its associated joint.

Level Pole Vector

When turned on, sets the pole vector to world orientation. When turned off, sets the orientation of the pole vector to that of its associated joint.

Level Tip

When turned on, sets the tip control to world orientation. When turned off, sets the orientation of the tip control to that of its associated joint.

Use Goal Rotation

When turned on, uses the goal rotation for the target orientation. When turned off, uses the solver’s position for the target orientation.

Resist Straight

When turned on, resists straightening of the IK chain.

Pole Vector Offset

The amount to offset the pole vector in the direction of the middle joint (between the root and tip). The IK chain must be slightly bent for this to work.

Rigid

When turned on, this component behaves like a two-joint IK chain. This is useful if you have extra joints in-line between the main IK joints, and you want to keep the joint chain between the IK joints rigid. Say you have the following joint chain:

Turning on Rigid will keep the joint chain rigid between the joints tagged with arm (set Segments to arm). If Rigid is off, the joint chain will bend at the in-between joints.

Rotation Order

The rotation order of the controls created by this component.

Driven

Segments

Segments are tags that separate each IK chain. For example, *Leg loops over tags L_Leg and R_Leg. Tags can be set up on skeleton joints using an Attribute Adjust Array SOP. See preparing skeletons for rigging for more information.

If Segments is empty, the IK logic is run once.

Note

The Segments parameter does not take APEX path patterns, for example, the #<tag> function. Instead, specify the tag names directly in this field.

Driven

The TransformObject nodes to drive. You can specify the individual joints, for example, “L_Hip L_Knee L_Ankle”, or tags that exist on the TransformObject nodes, for example, “#ik & #L_Leg”.

It’s good practice to also specify the bind tags that are set up by default on the FK transform component’s Tags parameter. The FK transform component is normally the first component that is used to start building a rig. Including the bind tag helps to ensure that you don’t include other controls that might have inherited, for example, the L_Leg tag. So for this component, you can set Driven to “#bind & #L_Leg”.

Driver

Root

The name of the root control. If Segments is used, the Segments name is added to the name of the control.

Promote Root

When turned on, promotes the root control.

Pole Vector

The name of the pole vector. If Segments is used, the Segments name is added to the name of the control.

Promote Pole Vector

When turned on, promotes the pole vector.

Tip

The name of the tip control. If Segments is used, the Segments name is added to the name of the control.

Promote Tip

When turned on, promotes the tip control.

Twist Rest

When Use Twist Rest is turned on, this is the name of the twist rest control. If Segments is used, the Segments name is added to the name of the control.

Promote Twist Rest

When turned on, promotes the twist rest control. This parameter is available when Use Twist Rest is turned on.

Make Locator

When turned on, converts the twist rest control into a locator. This parameter is available when Use Twist Rest and Promote Twist Rest are turned on.

Parent

If you want to parent controls to other controls in the same segment, you can use the string “{segment}”. For example, if you want to parent the pole vectors of each segment to the tip of the segment, you can set Pole Vector to {segment}Target_ik (if the name of the tip control is Target_ik, set in Tip Name). The value of Segments replaces the string “{segment}”, for example, L_armTarget_ik. See the Driver tab for how controls are named.

Root

The parent of the root control(s). When empty, the root control has the same parent as the root node of the IK chain. To unparent the root control, set this parameter to an underscore (“_”).

Pole Vector

The parent of the pole vector(s). When empty, the pole vector is parented to the tip. To unparent the pole vector, set this parameter to an underscore (“_”).

Tip

The parent of the tip control(s). When empty, the tip is not parented. To unparent the tip control, set this parameter to an underscore (“_”).

Twist Rest

When Use Twist Rest is turned on, this is the parent of the twist rest control(s).

Tags

Root

The tags to add to the root TransformObject nodes created by this component.

Pole Vector

The tags to add to the pole vector TransformObject nodes created by this component.

Target

The tags to add to the target TransformObject nodes created by this component.

Twist Rest

When Use Twist Rest is turned on, these are the tags to add to the twist rest TransformObject nodes created by this component.

Shape

The APEX Configure Controls SOP provides more options for changing the look of the controls.

Shape

The shape of the controls. It can be set to any of the built-in APEX control shapes.

Color

The color of the control shapes.

Scale

The scale of the control shapes.

See also

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

Customizing the animate state

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix