Houdini 20.5 Nodes Geometry nodes

MotionClip Extract Locomotion geometry node

Extracts the locomotion from a MotionClip and manages its representation.

On this page
Since 19.0

This SOP takes as its input a MotionClip (eg. from MotionClip), computes the locomotion of the MotionClip, and stores it in one of two contexts on the output MotionClip.

The source of the locomotion is determined by the Input Locomotion parameter. With this parameter you can specify if the locomotion of the MotionClip needs to be computed from scratch or if it is already present in the primitive transforms of the packed poses of the MotionClip or in a joint with the name __locomotion__

When the Input Locomotion is set to Compute Locomotion, this node behaves much like the Extract Locomotion SOP. In each pose of the MotionClip, it extracts the locomotion from the given input joint (the joint in the character skeleton that has translation channels that move it forward in space). When Convert to In-Place is enabled, this is used to remove the translation from the character animation to keep it in place. Similarly, the Extract Orientation option can be used to remove the orientation from the specified joint.

The locomotion of the MotionClip is either stored on a joint named __locomotion__ or it is stored in the primitive transforms on the poses of the MotionClip. With both of these options on the input and output, it is easy to switch between these representations of the locomotion.

State

This viewport state allows you to visualize a MotionClip or its evaluated poses over time using a color ramp, and it is available for every MotionClip SOP node that outputs a MotionClip.

MotionClip viewport state interaction

You can select individual joints from the current pose in the MotionClip viewport state. For the selected joints, you can then use the Evaluate Pose mode to view just the current pose, its selected joints, and the motion trails for those joints.

rFoot and lFoot joints selected, Mode = Evaluate Pose, Color = White to Red
MotionClip viewport state toolbar

Mode

Determines the MotionClip information that is displayed in the viewport.

MotionClip

Displays all the MotionClip’s poses.

Mode = MotionClip

Evaluate Pose

Displays a single MotionClip pose at the current time.

Mode = Evaluate Pose

Transparent MotionClip

When turned on, the MotionClip’s poses are displayed as fainter lines, making it easier to see the scene behind the MotionClip, as well as the evaluated pose.

Color

Applies the selected color ramp preset to the MotionClip’s visualization in the viewport. This color ramp helps to visualize changes to the MotionClip or individual poses over time.

Mode = Evaluate Pose, Color = White to Red

Extend Color

Determines how the poses outside of the MotionClip’s defined animation start and end range are visualized in the viewport.

Hold

Holds the color values at the ends of the range.

Mode = MotionClip, Color = Plasma, Extended Color = Hold

Gray

Poses outside the animation start and end range are colored gray.

Mode = MotionClip, Color = Plasma, Extended Color = Gray

Hide

Hides the poses outside the animation start and end range.

Mode = MotionClip, Color = Plasma, Extended Color = Hide

Parameters

Input Locomtion

The source of the locomotion on the input MotionClip.

Compute Transform

The locomotion of the MotionClip will be computed by this node.

Primitive Transform

The locomotion will be obtained from the primitive transforms on the packed poses of the MotionClip.

Locomotion Joint

The locomotion will be obtained from the __locomotion__ joint which already exists in the MotionClip.

Extract Locomotion

If enabled, the locomotion will be extracted from the poses of the input MotionClip.

This parameter is only available when Input Locomotion is set to Locomotion Joint.

Output Locomotion

The representation of the locomotion on the output MotionClip.

Primitive Transform

The locomotion of the MotionClip will be stored in the primitive transform on the packed poses of the MotionClip.

Locomotion Joint

The locomotion of the MotionClip will be stored in a joint with the name __locomotion__. If this option is not selected, the __locomotion__ joint will be deleted from the output MotionClip.

Color

Color of the created __locomotion__ joint.

This parameter is only available when Input Locomotion is set to Locomotion Joint.

Apply Locomotion

If enabled, the locomotion will be applied to the poses of the MotionClip.

This parameter is only available when Output Locomotion is set to Locomotion Joint.

Use Rest Pose as Locomotion Start

If enabled, the rest pose of the MotionClip will be used as the start position for the locomotion rather than using the first pose of the MotionClip.

Compute Locomotion

These parameters are used to extract the locomotion from the MotionClip. They are only available when Input Locomotion is set to Compute Locomotion.

Locomotion Source

The source of the locomotion of the animation.

Joint

A joint in the input skeleton will be used as a reference for extracting the locomotion.

Center of Mass

A joint for the center of mass of the skeleton will be created and used as a reference for extracting the locomotion.

Locomotion Joint

Name of the joint in the input skeleton to use as reference for extracting the translation and orientation.

COM Joint

Name of the COM joint in the input skeleton to use as reference for extracting the translation and orientation.

Configuration Attribute

The name of the configuration point attribute from which to read the mass and local_com attributes from. See /nodes/sop/kinefx__configurejoints.html.

Translation

Method

Specify which method to use when creating the __locomotion__ joint. See below for details on the parameters for each of these options.

Project On Ground Plane

Create the __locomotion__ joint at the same position as the joint provided in the Locomotion Joint parameter and then project it on the ground plane specified in the Ground Plane parameter.

Use Joint Position

Create the __locomotion__ joint at the same position as the joint provided in the Locomotion Joint parameter.

Ground Plane

Specify which plane acts as the ground plane.

Shift To Origin

Translate the character so that the __locomotion__ joint, of the Rest Skeleton if As Translation Reference is enabled, sits at the origin.

Shift To Origin

Choose on which axis to shift the __locomotion__ joint, of the Rest Skeleton if As Translation Reference is enabled, towards the origin.

Convert to In-Place

Convert a moving character animation to an in-place animation.

Convert to In-Place

Choose on which axis to extract the translation from the character animation. Selecting an axis will remove the translation on that axis from the character animation and add it to the __locomotion__ joint.

Orientation

Method

Specify around which axes to extract the orientation. See below for details on the parameters for each of these options.

None

Do not extract orientation.

Around Up Axis

Extract the orientation around the Up axis of the character. The Up axis will be deduced from the viewport orientation option.

Around All Axes

Extract the orientation around all axes of the character.

Custom

Customize which axis and which method for extraction you want to use for factoring out the orientation of the character.

Up Axis

Specify which method to use when extracting the orientation around the Up axis.

Use Joint Orientation

Extract the orientation by pulling out the Euler angles from the Locomotion Joint and using those to extract orientation data around the chosen axis.

Direction Vector Between Joints

Extract the orientation by specifying an extra joint and drawing a direction vector between the Locomotion Joint and the Look At Joint. This direction vector will be projected on the relevant plane and used to extract orientation data around the chosen axis.

Look At Joint

Specify an extra joint that will act as the tip of the direction vector.

Rotation Order

Specify which rotation order to use when extracting out the orientation from the character animation.

X Axis

Specify which method to use when extracting the orientation around the X axis. See the Up Axis above for details on the parameters for each of these options.

Y Axis

Specify which method to use when extracting the orientation around the Y axis. See the Up Axis above for details on the parameters for each of these options.

Z Axis

Specify which method to use when extracting the orientation around the Z axis. See the Up Axis above for details on the parameters for each of these options.

Extraction

Factor Out Translation

Choose which joint to factor out the translation from. See below for details on the parameters for each of these options. The translation will be extracted from the selected joint as well as from all the children of the selected joint.

Locomotion Joint

Use the same joint provided in the Locomotion Joint parameter for the extraction.

Custom Joint

Use a custom joint for the extraction.

Factor Out From Joint

The custom joint for the translation extraction.

Factor Out Orientation

Choose which joint to factor out the orientation from. See Factor Out Translation for details on the parameters for each of these options. The orientation will be extracted from the selected joint as well as from all the children of the selected joint.

Extraction Pivot

Choose which joint to use as the pivot while the orientation is being extracted.

This parameter is only available when Factor Out Orientation is set to Custom Joint.

Locomotion Joint

Use the same joint provided in the Locomotion Joint parameter as the pivot.

Orientation Joint

Use the same joint provided in the Factor Out Orientation parameter as the pivot.

Custom Joint

Use a custom joint as the pivot.

Tip

When the Locomotion Joint is a member of the same skeleton as the joint provided in the Factor Out Orientation parameter, the Locomotion Joint option should be used. Otherwise, the Orientation Joint option should be used.

Pivot Joint

The custom joint which is used as the pivot during the extraction of the orientation.

Inputs

MotionClip

The MotionClip from which the locomotion will be extracted.

Outputs

MotionClip

The MotionClip with the new representation of its locomotion.

See also

Geometry nodes