Houdini 22.0 Nodes Geometry nodes

Biped Retarget geometry node

Transfers animation from one skeleton to another using full body IK.

On this page
Since 22.0

This node is designed to solve the most common cases for retargeting a human skeleton (typically mocap animation) to another. It requires various data like biped groups and T-pose attributes on both the source and target skeletons. This data is generated by the Biped Setup SOP, which should be run on the source and target skeletons upstream of this node.

Tip

The APEX Retarget to Rig recipe provides an example use of the Biped Setup and Biped Retarget SOPs.

Biped retargeting network

Note

If Source Method is set to Attribute on the Biped Setup SOP, you’ll need a rest pose attribute on the character. If the character doesn’t have a rest pose attribute, you can use the Rig Stash Pose SOP to store a pose.

Internally, this node uses full body IK solvers for different parts of the body to prepare the skeleton before solving the whole target in one swoop. This often gives better and more predictable (non-jittery) results than the traditional retargeting framework that uses the Map Points SOP and a single full body IK solver.

The default full body IK weight values, based on empirical analysis, works well for most cases.

Tip

Use the viewer state to pose the characters relative to each other to get the desired retargeting result. Posing is done based on the T-Pose, so if you want to adjust the skeleton’s T-Pose beforehand, you can use the Rig Stash Pose and Rig Pose SOPs.

Note

The parameter sections are listed in execution order, so sections further down the list are used later. For example, parameters in the Body Part Size Match section are executed before those in the FBIK Weights section.

State

The viewer state allows you to adjust the bind poses between the source and target skeletons. You can pose the characters using the different options listed in the Viewer State section, but they all modify the same Match Pose Transforms parameters.

The workflow is the same as the Rig Match Pose SOP, and the interactive settings are the same as the Rig Pose SOP.

Match the T-poses of the source and target skeletons

Parameters

T-Pose Attribute

The point attribute that contains the T-pose to use for matching the two input skeletons. This is used for scaling the skeletons (see the Match Pose section) and setting up the relative relationships between the IK targets (see the viewer state).

Copy ClipInfo

When turned on, copies the clipinfo detail attribute from the source skeleton to the target skeleton.

Remap

Target: Treat Ball as Foot

When turned on, remaps the ball joints to foot joints on the target skeleton. This can be helpful when a skeleton has an animal-type leg where foot planting is done on what is typically the ball joint on humans.

Source: Treat Ball as Foot

When turned on, remaps the ball joints to foot joints on the source skeleton. This can be helpful when a skeleton has an animal-type leg where foot planting is done on what is typically the ball joint on humans.

Guide

Show Guide

When turned on, displays a guide of the source skeleton when the display flag is active on this node.

Offset

When Show Guide is turned on, this is the guide’s offset in world space.

Color

When Show Guide is turned on, this is the color of the guide.

Match Pose

Match Size Group

When turned on, matches the size of the source skeleton with the target skeleton based on the specified biped group. For example, if the biped group is biped_lowerbody, this matches the pelvis, legs, and feet of the source and target skeletons. Uses the T-Pose Attribute when scaling.

Match Scale

The scale offset of the source skeleton.

Match Pose Transforms

This multiparm stores the adjusted pose for the target skeleton. These values should be modified in the viewer state.

Group

The point group that this multiparm instance is applied to.

Mode

Specifies how the transformation described by this multiparm instance is applied to the input.

Pre-Multiply

The transformation is applied on top of the input pose. This is analogous to treating any input local transformations as an object node’s pre-transform.

Post-Multiply

The transformation is applied between the input point’s parent transform and its local transform. This is analogous to modifying the pre-transform of an object node. This mode is useful if you want to reproportion an animated input using simple translations without compromising the input motion, effectively moving the pivot for the point’s animation.

Override

The transformation completely overwrites any input local transforms on the points. This is useful if you want to 'zero out' any input animation.

Transform Order

The left menu specifies the order in which the transforms are applied (for example, scale, then rotate, then translate). This can change the position and orientation of the object in the same way that going a block and turning east takes you to a different place than turning east and then going a block.

The right menu specifies the order to rotate around the X, Y, and Z axes. Depending on the character, certain rotation orders can make character joint transforms easier to use.

Translate

The translation along the X, Y, and Z axes.

Rotate

The degrees rotation about the X, Y, and Z axes.

Scale

The non-uniform scaling about the X, Y, and Z axes.

Pivot

Pivot Translate

The pivot translation along the X, Y, and Z axes.

Pivot Rotate

The pivot rotation about the X, Y, and Z axes.

Body Part Size Match

These parameters scale the source skeleton’s body parts to match the size of the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales the body part to the target skeleton size. This happens before retargeting is performed. Let’s say the source skeleton’s arm is 5 meters long and the target skeleton’s arm is 3 meters long. If *Arm is set to 0, the source arm remains 5 meters long. If *Arm is set to 1, the source arm is scaled down to 3 meters. The body part will keep its ratio, so the upper and lower parts of the arm will be scaled proportionally.

Neck

Scales the neck to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

Spine

Scales the spine to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

L Arm

Scales the left arm to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

R Arm

Scales the right arm to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

L Leg

Scales the left leg to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

R Leg

Scales the right leg to match the target skeleton. A value of 0 keeps the source skeleton size, and a value of 1 scales to the target skeleton size.

Reach

These parameters tell the IK solver to reach toward the source skeleton and ignore the offset in size and position. You can set a reach value between 0 (doesn’t reach) and 1. Increasing the weight of the body part in the FBIK Weights section allows you to better see the effects of the reach.

Head

The extent to which the head reaches toward the source skeleton’s head. Increase the weight of the head in the FBIK Weights section to better see the effect of the reach.

Spine

The extent to which the spine reaches toward the source skeleton’s spine. Increase the weight of the spine in the FBIK Weights section to better see the effect of the reach.

Pelvis

The extent to which the pelvis reaches toward the source skeleton’s pelvis. Increase the weight of the pelvis in the FBIK Weights section to better see the effect of the reach.

L Hand

The extent to which the left hand reaches toward the source skeleton’s left hand. Increase the weight of the left hand in the FBIK Weights section to better see the effect of the reach.

R Hand

The extent to which the right hand reaches toward the source skeleton’s right hand. Increase the weight of the right hand in the FBIK Weights section to better see the effect of the reach.

L Foot

The extent to which the left foot reaches toward the source skeleton’s left foot. Increase the weight of the left foot in the FBIK Weights section to better see the effect of the reach.

R Foot

The extent to which the right foot reaches toward the source skeleton’s right foot. Increase the weight of the right foot in the FBIK Weights section to better see the effect of the reach.

FBIK Weights

These parameters tell the IK solver to prioritize different parts of the body. For example, if you want the right hand to match the source pose, but the left hand is pulling the body in the other direction, you can increase the value of R Hand to give the right hand a higher priority.

Head

The priority of the head.

Spine

The priority of the spine.

Pelvis

The priority of the pelvis.

L Hand

The priority of the left hand.

R Hand

The priority of the right hand.

L Foot

The priority of the left foot.

R Foot

The priority of the right foot.

L Ball

The priority of the left ball joint.

R Ball

The priority of the right ball joint.

FBIK Solvers

Extra Limb Solve

When turned on, the solver performs an initial per-limb solve to help place the skeleton in a good position in preparation for a full body IK solve.

Final FBIK Solve

When turned on, the solver performs a final full body IK solve.

FBIK Solvers

When Final FBIK Solve is turned on, this is the number of full body IK solvers to use.

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).

Stride Match

Stride Blend

The extent to which the target skeleton’s stride matches the original prescaled source skeleton. For example, if the target skeleton is an average human and the source skeleton is a tiny goblin, a Stride Blend value of 1 would give the human tiny steps to match the exact feet positions of the goblin.

Stride Blend Vertical

The extent to which the target skeleton matches the pelvis of the original prescaled source skeleton. This is an offset in Y and has some rare use cases, for example, climbing up and over a wall.

Blends

Blend Fingers

The extent to which the fingers are retargeted using FK. A value of 0 uses the input fingers.

Root

When turned on, performs the root blend.

Root Group

The joint to treat as the root joint.

Root Source Group

The joint used to place the root joint. If Maintain Offset is set to 0, the root joint is placed at the ground position of this joint.

Maintain Offset

If set to 0, keeps the root on the floor. If set to 1, maintains the root’s distance from Root Source Group.

Clamp to Floor

When turned on, the root never goes below 0. This would prevent the case where the root would be pushed below the floor if a character crouches and Maintain Offset is set to 1.

Blend Rotation

The amount of rotation to use between Root Group and Root Source Group. A value of 0 uses the rotation from Root Group, and a value of 1 uses the rotation from Root Source Group.

Viewer State

Deform Node

When turned on, displays the specified SOP node in the viewer state when doing the retargeting. This is usually the result of a Bone Deform SOP.

Show T-Pose World

When turned on, shows an interactive T-pose at the world origin. The interactive results modify the Match Pose Transforms values.

Show T-Pose Follow

When turned on, shows an interactive T-pose that follows along with the retargeted skeleton. The interactive results modify the Match Pose Transforms values.

Show Post Retarget Pose

When turned on, shows an interactive pose placed on the retargeted skeleton. The interactive results modify the Match Pose Transforms values.

Show Lines

When turned on, shows lines that map between the source and target skeletons.

Offset

The offset of the interactive skeletons.

Inputs

Target Skeleton

The target SOP skeleton to transfer animation to.

Source Animation

The source SOP skeleton to transfer animation from.

Outputs

Output Skeleton

The modified target SOP skeleton.

See also

Geometry nodes