Houdini 20.5 Nodes Geometry nodes

Rig Mirror Pose geometry node

Mirrors a SOP skeleton’s pose.

On this page
Since 18.5

This node mirrors a SOP skeleton’s pose.

Parameters

Group

The points to modify using the corresponding transform of the matched point stored in Point Mirror Attribute.

Operation

The mirroring operation to use.

Mirror Pose

Mirrors the input pose.

Compute Mirroring

Computes the mirroring on the input skeleton without modifying any transforms. The created attribute can be consumed by downstream mirroring operations.

Point Mirror Attribute

The name of the created attribute that contains the mirroring information. This is a dictionary attribute with the following key-value pairs:

  • reference: Its value is either ptnum or the name of the attribute to reference (for example, name).

  • value: If reference is ptnum, this is the point number of the mirrored point. Otherwise, this is the value of the attribute specified in the reference key.

  • flipaxes: An integer value that stores how the points are mirrored (By Scale or By Rotation)

Compute Mirroring

When Operation is set to Mirror Pose, turning this on computes the mirroring of the input skeleton. You could turn this off if you have already computed or configured mirroring for the skeleton.

Compute Mirroring Options

These parameters are available when Operation is set to Mirror Pose, or Compute Mirroring is turned on.

Reference Attribute

The attribute used by downstream operations for matching the mirrored points. This attribute is stored as the value of the reference key in the Point Mirror Attribute dictionary. If left blank, the point number is used.

Rest Pose Source

The rest pose to use when mirroring.

Frame

Uses the pose at the Rest Frame.

Attribute

Uses the pose defined by the Rest Pose Attribute.

Rest Frame

When Rest Pose Source is set to Frame, this is the frame that contains the rest pose to use when mirroring.

Rest Pose Attribute

When Rest Pose Source is set to Attribute, this is the matrix attribute that contains the rest pose to use when mirroring.

Symmetry Axis

The axis to use as the mirror plane. For example, if your character’s rest pose faces along the Z-axis, you may want to set this parameter to X. On the other hand, if your character is facing along the X-axis, you may want to change this parameter to Z.

Method

The method of searching for the mirror points.

Position & Name Similarity

Searches for the mirrored point using a combination of proximity and name similarity using the Levenshtein Distance. The results of this method are controlled by the Name Similarity Threshold and Position Threshold.

From Names

Searches for the mirrored point by matching names using the Match and Mirrored tokens.

Name Similarity Threshold

When Method is set to Position & Name Similarity, this is the maximum number of single-character edits on the point’s name to get the mirrored point’s name. The number of single-character edits is returned by the Levenshtein method.

Position Threshold

When Method is set to Position & Name Similarity, this is the maximum distance to search for a point from the mirrored position.

Token Position

When Method is set to From Names, this is the position in the point name to look for the tokens in Match and Mirrored. For example, if the point names follow the pattern left_upperarm, left_lowerarm, left_hand, etc., set this parameter to Start. If the point names follow the pattern upperarm_left, lowerarm_left, hand_left, etc., set this parameter to End.

Match

The token on one half of the skeleton that corresponds to the Mirrored token on the other half.

Mirrored

The token on one half of the skeleton that corresponds to the Match token on the other half.

Compute Flip Axes From

Specifies how to determine the axes to flip when mirroring:

User Defined

The axes to flip are set in Flip Axes for Unmirrored Points and Flip Axes for Mirrored Points.

Rest Pose

The axes to flip are inferred from the rest pose. This is useful when the input skeleton has an inconsistent arrangement of joints, as this method inspects each mirrored pair individually instead of grouping them coarsely as mirrored and unmirrored points.

Flip Axes for Unmirrored Points

When Compute Flip Axes From is set to User Defined, this is the axis to flip for unmirrored points.

Flip Axes for Mirrored Points

When Compute Flip Axes From is set to User Defined, this is the axis to flip for points that have a corresponding mirrored point.

Mirror Plane

Reflect Using

Specifies the plane that the input transforms are mirrored across.

Mirror Plane

Mirrors the input transforms across the plane defined by Direction and Origin.

Mirror Point

Mirrors the input transforms across the plane defined by Reference Point and Reference Point Axis.

Direction

When Reflect Using is set to Mirror Plane, this is the direction to perform mirroring, visualized as the normal of the plane in the viewport.

Origin

When Reflect Using is set to Mirror Plane, this is the origin of the plane used for mirroring.

Reference Point

When Reflect Using is set to Mirror Point, this is the point on the input that defines the plane used for mirroring.

Reference Point Axis

When Reflect Using is set to Mirror Point, this is the axis of Reference Point that is the normal of the mirroring plane.

Inputs

Skeleton

The skeleton whose pose to mirror.

Outputs

Skeleton

The mirrored skeleton.

See also

Geometry nodes