Houdini 20.0 Nodes Geometry nodes

Rig Match Pose geometry node

Conform the rest poses of two skeletons in preparation for retargeting.

On this page
Since 18.5

This node allows you to create a pose on both of the skeletons found in the input geometries which gets stored to a matrix point attribute specified in the Attribute Name parameter. Typically this will be part of the retargeting process where we wish to compute offsets between two skeletons.

By setting the options on the First Output and Second Output parameters you can set whether the pose should be written directly to the geometry, or simply attached as an attribute without modifying the input transforms.

State

Rig Match Pose state toolbar

Translate

If you have a point selected and change this setting, the new option is applied to the point.

If you do not have a point selected, applies the current option to the next joint you click.

Enable

Lets you translate the point.

Lock

Locks the Translate parameter for the point and hides its transform handle in the viewport.

Lock and Hide

Locks the Translate parameter for the point, hides its transform handle in the viewport, and hides its parameter in the Parameter Editor.

Rotate

If you have a point selected and change this setting, the new option is applied to the joint.

If you do not have a point selected, applies the current option to the next point you click.

Enable

Lets you rotate the joint.

Lock

Locks the Rotate parameter for the point and hides its transform handle in the viewport.

Lock and Hide

Locks the Rotate parameter for the point, hides its transform handle in the viewport, and hides its parameter in the Parameter Editor.

Scale

If you have a point selected and change this setting, the new option is applied to the joint.

If you do not have a point selected, applies the current option to the next point you click.

Enable

Lets you scale the joint.

Lock

Locks the Scale parameter for the point and hides its transform handle in the viewport.

Lock and Hide

Locks the Scale parameter for the point, hides its transform handle in the viewport, and hides its parameter in the Parameter Editor.

Mode

If you have a joint selected, let’s switch between the Mode parameter options on the node.

If you do not have a joint selected, sets the Mode for the next joint you select.

Rig Match Pose state pop-up menu

Post Multiply

When on, switches the current point’s Mode to post-multiply. When off, switches the current point’s Mode to pre-multiply.

Hide Rig Whilst Posing

When on, your skeleton and any controls will be hidden when you are actively manipulating a point.

Focus Selected in Parameter Editor

When on, centers the Transformations multiparm entry for the currently selected point in the Parameter Editor.

Filter Selected in Parameter Editor

When on, the list of Transformations multiparms in the Parameter Editor is automatically filtered so that only the multiparm for the selected joint(s) appears.

Display Joints

When on, all the points are shown in the viewport.

Display Joint Axes

When on, all the X/Y/Z axes for each point are shown.

Show Geometry

When on, shows the poly lines that connect the joints into a hierarchy.

Show Joint Data

When on, displays all the world and local transformation data for the selected joint in the top left-hand corner of the viewport.

Parameters

Pose Destination

Attribute Name

The name of the point attribute in which to store the pose. This pose will be stored on both outputs.

First Output

Matched Pose

Store the pose set by the Transformations multiparm on the point attribute specified in Attribute Name and also set this pose as the current pose on the first output.

Pass Through

Store the pose set by the Transformations multiparm on the point attribute specified in Attribute Name but maintain the first input’s current pose or animation.

Second Output

Matched Pose

Store the pose set by the Transformations multiparm on the point attribute specified in Attribute Name and also set this pose as the current pose on the second output.

Pass Through

Store the pose set by the Transformations multiparm on the point attribute specified in Attribute Name but maintain the second input’s current pose or animation.

Match Size

These settings apply when Enable Match Bounds is turned on. When enabled, the node will perform an initial bounding box match for the two inputs, modifying the first input to match the second.

Apply Transform To

Which of the inputs to apply the global scaling to. Depending on the topology of your network you may wish to match the Source Skeleton to the Target Skeleton or vice-versa. This parameter control which of the inputs should be globally transformed.

Transform Delta Attribute

The detail attribute on which we store the 'global' transform we apply to the first input. Typically this will be reversed after the a retarget has taken place to return the character to its original 'space'. See the Transform By Attribute SOP.

Enable Match Bounds

Perform the initial bounding box match.

Set Pivot from Bounds

When Enable Match Bounds is enabled, set the pivot, used when you transform the skeleton globally, from the bounding box. You can further adjust the pivot translation using the Scene Pivot parameter.

Target Group

The point group on the first input that will be used to perform the match. This can useful if you wish to exclude root points, or points for props that protrude from the main skin of the character.

Reference Group

The point group on the second input that will be used to perform the match. This can useful if you wish to exclude root points, or points for props that protrude from the main skin of the character.

Rest Frame for Target

Read the reference frame from the clipinfo detail attribute on the first input geometry or set a custom range.

Target Reference Frame

The frame of the target skeleton at which we perform the bounding box match. Useful if the Target Skeleton input is animated.

Rest Frame for Source

Read the reference frame from the clipinfo detail attribute on the second input geometry or set a custom range.

Source Reference Frame

The frame of the source skeleton at which we perform the bounding box match. Useful if the Source Skeleton input is animated.

In addition to, or instead of, the initial bounding box matching we can globally transform the skeleton using the Scene Transform parameters or the corresponding handle in the viewport.

Scene Translate

Translation along XYZ axes.

Scene Rotate

Degrees rotation about XYZ axes.

Scene Pivot

Pivot translation along XYZ axes.

Scene Uniform Scale

Uniform scaling about the XYZ axes.

Tweak Pose

The two sets of multiparms here are where any changes to the poses on both inputs are stored. These multiparms provide the same options as found on the Rig Pose SOP.

Destination Geometry

Transformations

This multiparm stores the pose for the skeleton on the left-hand input, see Rig Pose for details. In a typical retargeting workflow this will be the skeleton whose motion we wish to match to that found on the right-hand input.

Group

The point group to which this multiparm instance will be applied.

Mode

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

Pre-Multiply

The transformation will be 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 will be applied in 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 especially useful if you want to reproportion an animated input using simple translations without compromising any input motion, effectively moving the pivot for the point’s animation.

Override

The transformation will completely overwrite any input local transforms on the points. This is useful if you want to 'zero out' any input animation, or if you are working with the Bake options on the Rig Pose node.

From Rest Pose

The transformation will behave like Pre-Multiply, but any input animation will be replaced by the pose specified in the Rest Pose parameter. This is useful if you want to revert a points transform to a 'rest pose' rather than simply zero out the local transform as is done in Override.

Transform Order

The left menu specifies the order in which 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 in which 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

Translation along the X, Y, and Z axes.

Rotate

Degrees rotation about the X, Y, and Z axes.

Scale

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.

Source Geometry

Ref Transformations

This multiparm stores the pose for the skeleton on the right-hand input, see Rig Pose for details. In a typical retargeting workflow this will be the animated skeleton whose motion we wish to apply to the left-hand input’s skeleton.

Group

The point group to which this multiparm instance will be applied.

Mode

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

Pre-Multiply

The transformation will be 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 will be applied in 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 especially useful if you want to reproportion an animated input using simple translations without compromising any input motion, effectively moving the pivot for the point’s animation.

Override

The transformation will completely overwrite any input local transforms on the points. This is useful if you want to 'zero out' any input animation, or if you are working with the Bake options on the Rig Pose node.

From Rest Pose

The transformation will behave like Pre-Multiply, but any input animation will be replaced by the pose specified in the Rest Pose parameter. This is useful if you want to revert a points transform to a 'rest pose' rather than simply zero out the local transform as is done in Override.

Transform Order

The left menu specifies the order in which 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 in which 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

Translation along the X, Y, and Z axes.

Rotate

Degrees rotation about the X, Y, and Z axes.

Scale

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.

Inputs

Target Skeleton

In a typical retargeting workflow, the skeleton that the animation is transferred onto.

Source Skeleton

In a typical retargeting workflow, the animated skeleton whose motion to transfer to the skeleton on the first input.

Outputs

Target Skeleton

The skeleton on the first input with the pose stored. The output pose depends on the setting in the first input.

Source Skeleton

The skeleton on the second input with the pose stored. The output pose depends on the setting in the second input.

See also

Geometry nodes