Houdini 22.0 Nodes Geometry nodes

Full Body IK geometry node

Transfers motion to a SOP-based skeleton using a full body inverse kinematics algorithm.

On this page
Since 18.5

The Configure Joints SOP and Full Body IK Configure Targets SOP can be used to set up per-joint properties for the IK solver.

Parameters

Group

The group of points to affect.

Root Constrain

When turned on, specifies the joint on the target skeleton that is constrained to its driver prior to the full body IK solve. This can be useful when retargeting to an animation where the character turns around more that 180 degrees its the rest pose.

Note

The joint you specify needs to be mapped to a joint on the source skeleton for the retarget.

Solver

The full body IK solver to use.

FABRIK (Forward and Backward Reaching Inverse Kinematics)

A very fast and simple full body IK solver. This solver prefers to be densely mapped with a high number of iterations to converge nicely, but can be less stable than the Physical Full Body IK solver. FABRIK is widely used across many platforms, so it can be suitable for applications where compatibility is important or where more physically-based solves may be unsuitable.

Physical Full Body IK (Default)

A sophisticated and robust algorithm for solving the full body IK problem. This solver supports center of mass calculations and can provide an intuitive solve from very few target transforms. This solver prefers to be sparsely mapped with far fewer iterations than FABRIK.

Note

Increasing the number of iterations often requires a higher value to be set in the Damping parameter.

Iterations

The number of iterations of the solve to perform.

Damping

When Solver is set to Physical Full Body IK, this is the damping factor for the solver. Larger values produce more stable results when, for example, a target is unreachable. A value that is too large, however, requires more iterations for convergence. A suitable initial value is around 0.5.

Tolerance

The margin of error for the solver to work within. Once achieved, the solver can exit early from its iterations (setting this to 0 forces the solver to always perform the full number of iterations).

Pin Root

When turned on, pins the translation of the points that don’t have a parent.

Map Using

Specifies whether to use a dictionary attribute on the first input to look up the drivers on the second input, or simply match by an attribute that is present on both inputs. The second option is useful when the second input contains a subset of the first input’s points.

Mapping Attribute

Use an attribute that is present on the first input to look up the drivers on the second input. This attribute is specified in Mapping Attribute Name and is created by the Map Points SOP, but any dictionary attribute matching the following format can be used:

Match by Attribute

Match points on the first input to corresponding points on the second input using the attribute specified in Attribute to Match. For example, if Attribute to Match is set to name, the points on the first input are will be driven by the points on the second input that share the same name.

Mapping Attribute Name

When Map Using is set to Mapping Attribute, this is the name of the dictionary point attribute on the first input that is used for mapping.

Attribute to Match

When Map Using is set to Match by Attribute, this is the name of the point attribute present on both inputs that is used to map points.

Delete Mapping Attributes

When turned on, cleans up the attributes used to configure the solver.

Compute Local Transform

When turned on, recomputes the local transforms after the solve.

Joint Config Attribute

The name of the dictionary point attribute that stores the joint configurations. See the Configure Joints SOP.

Target Config Attribute

The name of the dictionary point attribute that specifies the target skeleton’s behavior when a full body IK solver is applied. See the Full Body IK Configure Targets SOP.

Configure

When turned on, this node uses its internal Full Body IK Configure Targets SOP to create a full body IK configuration attribute. When turned off, this node is slightly optimized as it won’t create the new attribute. If you've already created a configuration attribute using another Full Body IK Configure Targets SOP, you can turn off this parameter.

See the Full Body IK Configure Targets SOP for descriptions of the parameters in this section.

Attributes

The Joint Config Attribute is a dictionary point attribute that stores the joint configurations. For more details on the valid keys, see the jointoptions parameter for solvephysfbik and solvefbik.

The Target Config Attribute is a dictionary point attribute that configures how the joint’s goal transform behaves in a full body inverse kinematics solver. This is only used when the joint has a goal transform (for example, if the joint is mapped to a joint on the source skeleton). For more details on the valid keys, see the targetoptions parameter for solvephysfbik and solvefbik.

Inputs

Target Skeleton

The target skeleton for the full body IK solve. Typically, this is the skeleton you want to transfer animation onto after mapping the two skeletons to each other use the Map Points SOP.

Note

This input doesn’t necessarily have to be static. An animated input can also be modified based on the driver transforms on the second input.

Source Skeleton

The driver transforms for the full body IK solve.

Outputs

Target Skeleton

The skeleton on the first input with the result of the full body IK applied.

Source Skeleton

The unmodified Source Skeleton input.

See also

Geometry nodes