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

  • APEX graph basics

    Introduction to the APEX graph evaluation framework.

  • APEX graph debugger

    Inspect the values of an APEX graph’s ports within the APEX network view.

  • APEX Script basics for graph building

    An overview of APEX Script, a code interface for building APEX graphs.

  • Graphs for numerical operations

    Example graphs of numerical operations like adding two values, fetching multiple results, and retrieving information from geometry.

  • Graphs for viewport animation

    Example graphs of animate state functionality like creating controls and constraints, and defining joint hierarchies.

  • Graphs for deforming geometry

    Example of a SOP network and APEX graph for deforming a 3-joint tube geometry.

  • Graph metadata

    Information added to graph nodes and ports.

  • APEX path pattern

    A set of rules that allow you to filter and select elements within graphs, skeletons, geometry, and the character folder structure.

  • APEX graph nodes

    APEX nodes provide operations for building up the functionality of APEX graphs, which are used in KineFX to create character rigs and perform other geometry manipulation.

  • APEX updates for H22

    New and updated APEX graph nodes for Houdini 22.

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

  • Animation workflow

    Example networks of adding characters, props, characters, and animation to a scene.

  • Animating in LOPs

    Rig and animate characters and props in the context of a USD stage.

  • Working in the animate state

    Select and manipulate controls, define transform limits for controls, and add skin controls to a character.

  • Animate state menus and HUDs

    Menus, HUDs, toolbars, and options in the animate state.

  • Animate state hotkeys

    Hotkeys available in the animate state.

  • Posing

    Pose characters in the animation scene by using locators, copying and pasting controls, and mirroring poses.

  • Motion paths

    Visualize the motion of controls as curves in 3D space.

  • Constraints

    Create relationships between controls in the animate state.

  • Dynamic motion

    Add physically-accurate projectile motion to your animation in the animate state.

  • Ragdoll

    Add a ragdoll simulation to your animation in the animate state.

  • Full body IK

    Apply full body inverse kinematics to pose the character using high-level targets rather than manipulating individual joints.

  • Secondary motion

    Add physically-accurate effects like lag/overshoot, jiggle, and spring to your animation in the animate state.

  • Control selection sets

    A tree view of controls, selections, and selection sets for the animate state. Allows management of control selection and visibility.

  • Motion mixer

    Combine and edit the animation clips of multiple characters in a timeline-based view.

  • Character picker

    Create a 2D layout with simple buttons for selecting character controls in an animation scene.

  • Animation catalog

    Save, manage, and apply animations and single-frame poses to an animation scene.

  • Animation layers

    Create multiple layers of animation without affecting the original animation.

  • Animation toolbar

    A customizable toolbar consisting of simple slider tools that quickly apply modifications to animation controls and curves.

  • Animation bookmarks

    Frame markers that help organize and identify the different parts of your animation.

Customizing the animate state

SOP-based animation

  • Physics-based motion

    Add physically-accurate motion to your animation using the Projectile Motion and Pendulum Motion SOPs.

  • Ragdoll simulations

    Add a ragdoll simulation to your animation using the Ragdoll Solver SOP.

Deformation

  • Blend shapes

    Create blend shapes using blend shape SOP nodes.

Animation retargeting

Pre-H20

Panes

  • Motion mixer

    A timeline-based view of the animation clips and motion effects of multiple characters.

  • Character picker

    Create a 2D layout with simple buttons to select character controls in an animation scene.

  • Rig tree view

    A hierarchical view of character components, including packed character folders, KineFX rigs, and Object node rigs.

  • Animation editor

    View and edit animated parameters and their transitions between keyframes.

  • Geometry spreadsheet

    Displays details about the geometry selected in the network editor.

Appendix