Houdini 22.0 Nodes Geometry nodes

Rig Pose geometry node

Poses and animates a SOP rig or skeleton.

On this page
Since 18.5

This node is used to modify the pose of a SOP skeleton or rig. It accepts a static or animated input.

Depending on the value specified in Mode, modifications to the pose are either applied in parent space (Post-Multiply), the modified point’s own local space (Pre-Multiply, From Rest Pose), or they completely override any input animation (Override).

Modes and their applications

Pre-Multiply

This is the default mode. It is used to “pick up where you left off” and layer transforms on top of the input. This is the most common mode for modifying the FK rotations of the input.

Post-Multiply

This mode is useful for reproportioning an input skeleton via translating the selected point, thereby changing the offset from the parent for the duration of the animation.

Override

This mode is useful when working with “baked” workflows, where you want to perform edits directly on the animation curves using the animation editor. The values in the transform parameters replace any input animation for the given point.

From Rest Pose

This mode is useful when you want to restore the pose of a given point to that found in the Rest Pose Attribute.

State

Rig Pose viewport state toolbar

Translate

If a joint is selected and you change this setting, the new option is applied to the selected joint. If no joint is selected, applies the current option to the next selected joint.

Enable

Allows you to translate the joint.

Lock

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

Lock and Hide

Locks the Translate parameter for the joint, hides its transform handle in the viewport, and hides its parameter in the parameter editor.

Rotate

If a joint is selected and you change this setting, the new option is applied to the selected joint. If no joint is selected, applies the current option to the next selected joint.

Enable

Allows you to rotate the joint.

Lock

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

Lock and Hide

Locks the Rotate parameter for the joint, hides its transform handle in the viewport, and hides its parameter in the parameter editor.

Scale

If a joint is selected and you change this setting, the new option is applied to the selected joint. If no joint is selected, applies the current option to the next selected joint.

Enable

Allows you to scale the joint.

Lock

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

Lock and Hide

Locks the Scale parameter for the joint, hides its transform handle in the viewport, and hides its parameter in the parameter editor.

Mode

If there are joints selected, allows you to switch between the Mode parameter options. If no joints are selected, sets the Mode for the next selected joint.

Motion Path

When turned on, displays an interactive motion path in the viewport state for the currently selected joint. For more information, see motion path handle parameters window.

Note

Only motion path keyframes (not motion capture or motion clip keys) can be edited from the motion path.

Jump to Keyframe

When turned on, moves the skeleton to the selected keyframe on the motion path.

Move the skeleton to a keyframe location on the motion path

Open Bake Dialog

Opens the Rig Pose Baking dialog window.

Rig Pose viewport state hotkeys

Hotkey

Action

Q

Selects the parent joint of the currently selected joint.

A

Selects the first child joint of the currently selected joint.

Z

Selects the next sibling joint of the currently selected joint.

⇧ Shift + Z

Selects the previous sibling joint of the currently selected joint.

F

Turns on/off enforce transform limits.

⇧ Shift + F

Flips the transform.

Rig Pose viewport state context menu

click in the Rig Pose viewport state to bring up the context menu.

Post Multiply

When turned on, switches the selected joint’s Mode to Post-Multiply. When turned off, switches the selected joint’s Mode to Pre-Multiply.

Hide Rig Whilst Posing

When turned on, the skeleton and any controls are hidden when you are actively manipulating a joint.

Focus Selected in Parameter Editor

When turned on, centers the Transformations multiparm entry for the currently selected joint in the parameter editor.

Filter Selected in Parameter Editor

When turned on, the list of Transformations multiparms in the parameter editor is automatically filtered so that only the multiparm for the selected joint(s) appear.

Enforce Transform Limits

When turned on, if the skeleton has any joints with rotation joint limits (set up by the Configure Joints SOP), you will not be able to rotate those joints past their limits. See rotation limit handle viewport state visualizations for more information. You can also turn this option on or off per joint with the F hotkey.

Flip Transform Limit Guide

When turned on, flips the transform limit guide’s twist axis visualization for the selected joint (the handle’s values remain the same). The twist axis is the first axis in the rotation order. Flipping the transform limit guide can make it easier to see the rotation limits for hinge joints like elbows and knees. You can also turn this option on or off per joint with the ⇧ Shift + F hotkey.

Flip the transform limit guide

Display Joints

When turned on, displays all the joints in the viewport.

Display Joint Axes

When turned on, displays the X, Y, and Z axes for each joint.

Show Geometry

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

Show Joint Data

When turned on, displays the world and local transformation data for the selected joint in the bottom left corner of the viewport.

Rotation limit handle viewport state visualization

If you used the Configure Joints SOP to set up rotation limits for any of the joints in the skeleton, the transform limits guide visualizes the rotation limits per joint. When using the Rig Pose handle to pose the skeleton, you can enforce these rotation limits per joint by turning on the Enforce Transform Limits option in the viewport state’s context click menu or by pressing F.

Transform limits guide in the viewport state

In the video below, rotation limits have been set on the shoulder joint, Enforce Transform Limits is turned on, and Translate and Scale for the joint is locked:

Pose a shoulder joint with rotation limits

Motion paths

Turn on Motion Path in the top toolbar to display the motion path for the selected joint.

Motion path viewport state hotkeys

Hotkey

Action or Interaction

drag

Selects and moves a keyframe. The rest of the keys along the motion path bend or warp their positions to stay with the moved keyframe.

⌃ Ctrl + ⇧ Shift click

Deletes the selected keyframe.

⌃ Ctrl click

Adds a keyframe to the motion path.

drag

Moves the selected key backward or forward through time along the motion path.

Motion path viewport state context menu

click the motion path to bring up the context menu.

Timeline

The motion path appears as a line with keyframe ticks (from motion capture and manual keyframes) that follows the trajectory or animation path of the currently selected joint.

Note

Only motion path keyframes (not motion capture or motion clip keys) can be edited from the motion path.

Pre/Post

The section of the motion path in front of the joint is dimmed, and the section behind the joint has the default brightness.

Velocity

The colors along the motion path indicate the rate of change in position for the selected joint over time. Cool colors indicate a decrease in velocity, and warm colors indicate an increase in velocity.

Acceleration

The colors along the motion path indicate the rate of change of velocity for the selected joint over time. Cool colors indicate a decrease in acceleration, and warm colors indicate an increase in acceleration.

Show Tangents

When turned on, the tangents of the keys of the active Translate parameter’s channels are displayed on each key. These can be manipulated to change the curve of the motion path between key poses.

Note

Since these are displayed as the tangents of the channels, they are most useful when creating a new animation.

Ribbon Mode

When turned on, displays the motion path as a wide ribbon. To display the ribbon as solid-shaded or wireframe, toggle the Show as Wireframe option.

Ribbon motion path

Limit Number of Frames

When turned on, determines the number of frames that are visible on the motion path before and after the skeleton’s current frame.

Shows 5 frames before and 15 frames after the skeleton

Lock To Current Point

When turned on, locks the motion path to its current joint. When you select other joints in the same skeleton, the motion path doesn’t switch to the new joint.

Make Current Handle Settings Default for Session

Sets the current motion path handle’s parameters as the default for this Houdini session.

Revert Handle Settings To

Session Defaults

Reverts the motion path handle’s parameters to the default values for this Houdini session.

Tip

To copy one motion path handle’s parameters to another motion path, select Make Current Handle Settings Default for Session on the first motion path, and select Revert Handle Settings To ▸ Session Defaults on the second motion path.

Restore Preference Defaults

Restores the motion path handle’s parameters to the values defined in the Houdini preferences (Edit ▸ Preferences ▸ Handles, Defaults tab).

Show Efficiency Warnings

When turned on, displays a warning when you manually alter the network above the current node. The warning provides recommendations for ways to improve the efficiency of the motion path.

Handle Parameters

Motion path handle parameters window

From the motion path context menu, select Handle Parameters. The motion path handle settings are also found in the Houdini preferences, Edit ▸ Preferences ▸ Handles ▸ Defaults tab ▸ Motion Path.

Note

Changing the Houdini preferences will not update the motion path handle for any existing Rig Pose SOPs in a hip file, but new Rig Pose SOPs will take the updated settings. Motion path settings can be reset to those in the Houdini preferences by clicking the motion path handle, and selecting Revert Handle Settings To ▸ Restore Preference Defaults.

Appearance

Handle Color

The default RGB color for the motion path. The default color is only visible when Visualization is set to Timeline.

Visualization

Timeline

The motion path appears as a line with keyframe ticks (from motion capture and manual keyframes) that follows the trajectory or animation path of the currently selected joint.

Note

Only motion path keyframes (not motion capture or motion clip keys) can be edited from the motion path.

Pre/Post

The section of the motion path in front of the joint is dimmed, and the section behind the joint has the default brightness.

Velocity

The colors along the motion path indicate the rate of change in position for the selected joint over time. Cool colors indicate a decrease in velocity, and warm colors indicate an increase in velocity.

Acceleration

The colors along the motion path indicate the rate of change of velocity for the selected joint over time. Cool colors indicate a decrease in acceleration, and warm colors indicate an increase in acceleration.

Velocity Ramp

Sets the Velocity visualization color scheme for the motion path. This option is available when Visualization is set to Velocity.

Ribbon motion path with Velocity Ramp visualization set to Infra-Red

Acceleration Ramp

Sets the Acceleration visualization color scheme for the motion path. This option is available when Visualization is set to Acceleration.

Ribbon motion path with Acceleration Ramp visualization set to Two-Tone

Show Keyframe Numbers

When turned on, the frame numbers for the motion clip keyframes appear next to their corresponding keys on the motion path.

Keyframe numbers visible on the motion path

Highlight Current Frame

When turned on, an arrowhead is displayed at the position of the current frame.

Current frame marked by an arrowhead
Ribbon

Show Wide Path

When turned on, displays the motion path as a wide ribbon. To display the ribbon as solid-shaded or wireframe, toggle the Show as Wireframe option.

Ribbon motion path

Show as Wireframe

When turned on, displays the ribbon motion path as a wireframe. This option is available when Show Wide Path is turned on.

Wireframe ribbon motion path

Path Width

The width of the ribbon motion path in Houdini units. This option is available when Show Wide Path is turned on.

Left image with path width = 10; right image with path width = 20
Frames

Limit Number of Frames

When turned on, determines the number of frames that are visible on the motion path before and after the skeleton’s current frame.

Shows 5 frames before and 15 frames after the skeleton

Cycle Frames

When turned on, the displayed frames of the motion path loops the playbar’s range instead of being truncated. This option is available when Limit Number of Frames is turned on.

Frames Before

The number of frames on the motion path that appear before the skeleton (past frames) during its animation. This option is available when Limit Number of Frames is turned on.

Frames After

The number of frames on the motion path that appear after the skeleton (future frames) during its animation. This option is available when Limit Number of Frames is turned on.

Show Frame Ticks

When turned on, all the keyframe ticks appear on the motion path. You can turn this off if you only want to see the motion path keyframes and not the ticks from the input motion capture or motion clips. This option is available when Show Wide Path is turned off.

Left image with Show Frame Ticks on; right image with Show Frame Ticks off

Tick Size

The length (height) of the keyframe ticks. This option is available when Show Frame Ticks is turned on.

Frames Between Ticks

The density of the keyframe ticks. This option is available when Show Frame Ticks is turned on.

Variable Tick Size

When turned on, the length of the keyframe ticks depends on their proximity to the skeleton during the animation.

Variable Tick Size is on

Falloff Distance

The distance (in Houdini units) from the skeleton at which the keyframe tick size is at its smallest. This option is available when Variable Tick Size is turned on.

Increasing and decreasing the Falloff Distance

Sample Between Frames

When turned on, the motion is sampled at times in between frames to generate a smoother curve for the motion path.

Number of Samples

The number of times the motion is sampled per frame. This option is available when Sample Between Frames is turned on.

Left image with Number of Samples = 1; right image with Number of Samples = 5
Tangents

Show Tangent Handles

When turned on, the tangents of the keys of the active Translate parameter’s channels are displayed on each key. These can be manipulated to change the curve of the motion path between key poses.

Note

Since these are displayed as the tangents of the channels, they are most useful when creating a new animation.

Motion path how-to

To...Do this

Add or remove a keyframe from the motion path

In the Rig Pose viewport state:

  • Add a keyframe - ⌃ Ctrl click a location on the motion path.

  • Remove a keyframe - ⌃ Ctrl + ⇧ Shift click the motion path keyframe.

Add and remove a keyframe from the motion path

Move a keyframe in time

drag the keyframe forward or backward in time.

Note

If the input skeleton is animated, this will move the keyframe along the motion path as well as shift the keyframe in time.

Move a keyframe along the motion path

Move a skeleton to a keyframe on the motion path

  1. In the Rig Pose state toolbar, turn on Jump to Keyframe.

  2. Click the motion path keyframe you want to move the skeleton to.

Move the skeleton to a keyframe location on the motion path

Transform a keyframe to manipulate the motion path’s trajectory or orientation

  1. Select the motion path keyframe you want to transform.

  2. Drag the keyframe to move its position. The rest of the motion path will warp with the moved keyframe.

  3. To change the orientation of the selected joint, use the motion path handle’s rotation manipulators to rotate the keyframe.

Move a keyframe along the motion path

Parameters

Pose

Modify Attribute

When turned on, reads and writes to the specified attribute on the input skeleton. The attribute stores a pose on the skeleton, and turning on this parameter allows you to modify the pose in place. Raises an error if the attribute doesn’t exist on the input geometry.

Guide Color

When Modify Attribute is turned on, allows you to visualize and set the color of the skeleton pose specified in Modify Attribute.

Bake

Opens the Rig Pose Baking dialog window.

Bake To

The path to the Rig Pose SOP to bake the animation to.

Bake From

When turned on, specifies the path to the animation source to bake. This can either be an animated skeleton whose topology matches that of the target Rig Pose SOP or a MotionClip created from an animation. When the source of the animation is a MotionClip, the behavior of the Bake Range button changes so that baked keyframes are only created for the poses present on the MotionClip.

Note

This can be useful when used in combination with MotionClip processing SOPs such as MotionClip Extract Key Poses.

When turned off, the Rig Pose SOP’s input is used as the source of the animation to bake.

Choose Node Output

The output of the Bake From node that contains the animation to bake.

Joint Group

The joints to add keyframes to.

Transform Order

The transform and rotation orders for the baked parameters.

Use Joint Config

When turned on, the bake operation uses the specified dictionary attribute to set the transform and rotation orders for the baked parameters. See the Configure Joints SOP.

Bake From Rest Pose

When turned on, the input animation is baked into new Transformations multiparms for all the frames in the range currently set in the timeline. All the created channels will be animated relative to the rest pose specified by the target Rig Pose SOP’s Rest Pose Attribute. This parameter also sets the Mode for each multiparm to From Rest Pose.

Use Frame Range from Playbar

When turned on, Bake Range adds keyframes on the entire frame range of the playbar timeline. When turned off, Bake Range adds keyframes between Frame Start and Frame End.

Frame Start

When Use Frame Range from Playbar is turned off, this the start frame of the frame range.

Frame End

When Use Frame Range from Playbar is turned off, this the end frame of the frame range.

Bake Range

Bakes the animation into the current Transformations multiparms for the frames determined by Use Frame Range from Playbar. If Bake From Rest Pose is turned off, this sets the Mode for each multiparm to Override.

You can also select the interpolation function used by the bake operation.

constant()

Input animation curves are interpolated by a constant function.

linear()

Input animation curves are interpolated by a linear function.

bezier()

Input animation curves are interpolated by a bezier function.

cubic()

Input animation curves are interpolated by a cubic function.

Bake Current Pose

Saves a snapshot of the character’s current pose to a keyframe and bakes it into the current Transformations multiparms for the current frame. This is helpful when you want to keep the pose animation separate from the existing animation on the multiparms.

You can also select the interpolation function used by the bake operation.

constant()

Input animation curves are interpolated by a constant function.

linear()

Input animation curves are interpolated by a linear function.

bezier()

Input animation curves are interpolated by a bezier function.

cubic()

Input animation curves are interpolated by a cubic function.

Set All Transformations to Default

Returns the Translate, Rotate, and Scale parameters for all the Transformations multiparms to their default values, regardless of whether the parameters are animated. This does not delete any of the existing Transformations multiparms.

If the current frame is at an existing keyframe on the timeline, the animated values on that keyframe are replaced with the default transform values.

World Space

When turned on, poses joints directly on its world space transforms while ignoring the FK hierarchy. This is analogous to Child Compensate mode in the Skeleton SOP.

Warning

Changing this when you have existing edits on your pose will likely produce erratic results. If you want to perform a mix of local and world space edits, you must use separate Rig Pose SOPs for each operation.

Rest Pose Attribute

The name of the matrix point attribute to refer to when Mode is set to From Rest Pose.

Transformations

This multiparm stores any adjustments made to the pose in the viewport.

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, or if you are working with the Bake options on the Rig Pose SOP.

From Rest Pose

The transformation behaves like Pre-Multiply, but any input animation is replaced by the pose specified in the Rest Pose Attribute parameter. This is useful if you want to revert a point’s transform to a 'rest pose' rather than zero out the local transform as in the Override option.

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.

Settings

Enable Multithreading

When turned off, sends the point transforms to a single core for processing. For most rigs, single threading is faster than multithreading. This is turned off by default.

When turned on, sends the point transforms to all the available cores for processing. This is useful if you have a complicated character rig (for example, a centipede) that has a large number (thousands) of point transforms to compute.

Preserve Input Shears

When turned on, any shears present on the input local transforms of the points modified by this node are preserved when applying the parameter transform. When turned off, raises a warning that the shears have been discarded when updating the point’s transform.

Parameter Attributes

Parameter Translates

When turned on, outputs the Translate parameters as vector attributes on the points.

Parameter Rotates

When turned on, outputs the Rotate parameters as vector attributes on the points.

Parameter Scales

When turned on, outputs the Scale parameters as vector attributes on the points.

Parameter Pivot Translates

When turned on, outputs the Pivot Translate parameters as vector attributes on the points.

Parameter Pivot Rotates

When turned on, outputs the Pivot Rotate parameters as vector attributes on the points.

Internal Attributes

These parameters output the transforms computed internally, allowing advanced users to consume this data downstream without the overhead of recomputing.

Local Transform

When turned on, outputs the localtransform attribute computed internally.

Input Local Transform

When turned on, outputs the inputlocaltransform attribute computed internally.

Effective Local Transform

When turned on, outputs the effectivelocaltransform attribute computed internally.

Rig Visualizer

Configurations

This multiparm allows you to create and manage multiple visualization setups for the same input skeleton.

Group

A space-separated list of joints that use the visualization settings from the multiparm. This field accepts the @name joint name syntax, for example, a single joint like @name=rFoot or a list of joints like “@name=rFoot @name=lFoot @name=rKnee @name=lKnee”. If you leave this field empty, all the joints and control objects on the input skeleton will use this multiparm’s visualization settings.

Joint Display

These parameters determine the input skeleton components that are visible in the viewport.

Show Joint

When turned on, the joints and their links for the specified Group joints are visible in the viewport.

Show Polygon Lines

When turned on, the poly lines for the specified Group joints are visible in the viewport.

Show Packed Geometry

When turned on, the control objects linked to the specified Group joints are visible in the viewport.

Link Scaling

These parameters determine the width of the input skeleton’s joint links based on their length. This is a mapping of the link length (distance from parent to child) onto the range in the Width Low and Width High parameters.

For any link whose length falls between the Length Low and Length High values, its width will be scaled by the corresponding value between the Width Low and Width High values. Any link with their length outside this range will have their width clamped to the Width Low or Width High values.

These parameters are available when Show Joint is turned on.

Adjust the link scaling width

Length Low

The lower bound for the link length used for width scaling. Any links whose length is equal to or less than this value will have their width clamped to the Width Low value.

Length High

The upper bound for the link length used for width scaling. Any links whose length is equal to or greater than this value will have their width clamped to the Width High value.

Width Low

The width of any links whose length is equal to or less than the Length Low value.

Width High

The width of any links whose length is equal to or greater than the Length High value.

Inputs

Skeleton

The SOP skeleton to pose.

Outputs

Skeleton

The input SOP skeleton with the pose applied.

See also

Geometry nodes