Houdini 20.0 Nodes Geometry nodes

Agent Clip 2.0 geometry node

Adds new clips to agent primitives.

Since 17.0

This adds additional animation clips to an agent primitive’s definition for driving its skeleton.

When loading a clip from a CHOP or a file, the channels within the clip should be of the form transform_name:channel_name where transform_name is a string matching the values found by calling the agenttransformnames() VEX function and channel_name is one of tx, ty, tz, rx, ry, rz, sx, sy, or sz. The channels starting with t denote translation, r denote rotation, and s denote scale. The resulting transforms will be treated as local transforms, such as those returned by the agentlocaltransforms VEX function (ie. they are relative to the corresponding parent transform in the agent’s skeleton).



The agent primitives in the input geometry that should be modified.

Set Current Clip

Changes the current animation clip of the agent. This can be useful for previewing new clips.

Set Clip Time

Sets the current time of the agent’s animation clip.

Clip Time

The current time for the agent’s animation clip.

Apply Clip Locomotion

If enabled, applies the clip’s __locomotion__ transform so that you can easily test locomotive clips.

Create Locomotion Joint

When enabled, this will create an extra joint named __locomotion__ which serves as a placeholder for factored out locomotion animation when Convert to In-Place Animation is enabled.

Locomotion Node

Name of the transform in the hierarchy that controls the locomotion of the character (i.e. the node that has translation channels that move it forward in space).

Locomotion Orient

Optional name of a transform in the hierarchy, which is used to extract an overall rotation using the vector from the Locomotion Node to this transform. If this transform is the same as the Locomotion Node, its orientation will be directly extracted.


Reloads the clips.


The number of clips to add.


The name to identify the clip. All clips in an agent definition must have unique names.


The source to use for the clip to add.

Character Rig

Creates an animation clip from a character subnetwork/asset in the scene.


The disk path to an FBX file. As with the Agent SOP, a clip is created for each take in the FBX file. The ${FBX_TAKE_NAME} and ${FBX_TAKE_INDEX} local variables can be used with the Name parameter to generate clip names based on the take name and index from the FBX file.


The disk path to a .clip or .bclip to use. As with the Agent SOP, the ${CLIP} local variable can be used as a * placeholder to load a set of files. The name of the clip is inferred by substituting the string matched by ${CLIP} for ${CLIP} in the Name parameter.


The path to a CHOP to load the clip data from.


Creates an animation clip from one or more USD Skeleton primitives. The source USD stage can be a file on disk or a LOP node. The ${USD_PRIM_NAME} local variable can be used with the Name parameter to generate clip names based on the USD primitive’s name. The animation clip’s frame range is determined from the stage’s startTimeCode and endTimeCode metadata, which can be modified using the Configure Layer LOP.


Creates the clip from a MotionClip, provided via the second input. The clip’s name, sample rate, and length are determined from the geometry’s clipinfo attribute, but the name can be optionally overridden using the Name parameter. Multiple clips can be imported by packing each clip and enabling Treat Packed Primitives as Inputs.


Specifies the CHOP node to load the clip from.


Specifies whether the source USD stage is from a LOP node or USD file on disk.

LOP Path

Specifies the path to a LOP node. The agent definition will be constructed from a UsdSkel character in the USD stage output by this node.

USD File

The path to a USD file on disk.

Skeleton Primitives

The Skeleton primitive(s) to import animation from. You can also use primitive patterns for advanced matching, including matching all prims in a collection (using /path/to/prim.collection:name).

If a SkelRoot primitive is specified instead, the animation will be imported from its first skeleton binding. If the pattern is empty, the first Skeleton prim in the stage will be used.


Specifies the file to load the clip from, when Source is File or FBX.

Keep External Reference

When Source refers to a filename on disk, this boolean flag indicates whether the external reference should be maintained when the geometry will be saved. If the reference is maintained, then the original source of the clip needs to be available when the saved geometry is used. Otherwise, a copy of the clip will be inlined when saving out the geometry so that the original clip is no longer needed.

Delay Load

If enabled, clips will only be loaded from disk when their data is needed. This can improve load times and memory usage for large clip catalogs, but errors from loading clips may not be reported immediately.

Take Name

Specifies which take(s) in the FBX file to import animation from. This supports the standard pattern matching syntax to specify multiple takes. If empty, all takes will be loaded.

Convert Units

Specifies whether to convert to Houdini units when importing the FBX file.

Minimal Nodes

Only include animation for nodes whose display flags are on. If you turn this off, all nodes in the hierarchy are included in the clip.

Keep Transforms for Deforming Shapes

When Minimal Nodes is enabled, specifies whether channels for nodes containing deforming geometry are included in the clip.

Override Sample Rate

Specifies whether to use the value of the Sample Rate parameter instead of the sample rate stored in the FBX file. This is useful if the application that exported the original FBX file did not set the sample rate correctly.

Sample Rate

Sample rate to use for the clip when Override Sample Rate is enabled.

Treat Packed Primitives as Inputs

Creates a clip from the contents of each packed geometry primitive in the second input’s geometry. This can be used to procedurally import several MotionClips.

Character Rig

Path to the object subnetwork containing the character rig.

Traverse Outputs

When enabled, the Character Rig path is used to specify which nodes to import by traversing its outputs instead of its children.


Pattern used to limit which nodes should be imported. Patterns using usual opglob syntax along with @bundle references are accepted.


Relative paths specified here are relative to this node, not to the Character Rig.


Optional mask to further restrict which object node types will be imported. Disable the toggles to prevent baking particular types.


The range of frames for the clip (start frame, end frame, and increment), inclusive.

Convert to In-Place Animation

Specifies whether to convert the animation to an in-place clip in addition to recording the locomotion transform.

Project Positions on Dominant Axis

When creating the animation of the Locomotion Node, project the positions along the dominant axis of motion in the XZ plane. If the clip will be used as an in-place clip with the crowd solver, enabling this option can help to maintain hip swaying in the motion.

See also

Geometry nodes