Houdini 20.0 Nodes Geometry nodes

Agent Clip Transition Graph geometry node

Creates geometry describing possible transitions between animation clips.

On this page
Since 15.5

A clip transition graph can be used to control how transitions between animation clips are performed. It provides information about which clips are allowed to transition to each other, and where in the clips those transitions should occur. This can be used to delay clip transitions until an appropriate point in the current animation clip, and smoothly blend into the next clip at a time when the poses are similar. If the source and destination clips cannot directly transition to each other, a sequence of transitions can be performed using the intermediate clips along the shortest path to the destination clip.

Tip

The Test Simulation: Crowd Transition SOP can be used to quickly preview transitions between particular clips before setting up a crowd simulation.

Usage

The clip transition graph geometry can be explicitly provided to the Crowd Object DOP via the Clip Transition Graph parameter, allowing it to be used for any transitions in a crowd simulation.

Alternatively, the clip transition graph geometry can be stored in the agent definition as a shape named __transitiongraph__. This can be configured by using the second output of the Agent Clip Transition Graph SOP, which adds the clip transition graph to the input agent’s shape library.

Storing the clip transition graph in the agent definition avoids the need to carry a separate stream of geometry through the network. It also allows the transition graph to be easily cached to disk along with the agent definition’s shape library. This workflow is required by the Crowd MotionPath Transition SOP, and is also supported by the Crowd Object DOP when the clip transition graph geometry isn’t explicitly provided.

Tip

The transition graph geometry can be retrieved from the agent definition with the Agent Unpack SOP:

  1. Set Output to Rest Geometry.

  2. Set Unpack Shapes From to Shape Library.

  3. To unpack the shape, set Shapes to __transitiongraph__, and Iterations to 2.

  4. Optionally turn off Apply Agent Transform to avoid applying the input agent’s transform to the geometry. To avoid producing duplicate geometry if the input contains multiple agent primitives, turn on Limit to Unique Agent Definitions.

Attributes

Each point in the clip transition graph geometry represents an animation clip, and each two-point polygon represents a (one-way) transition between the clips.

Name Class Type Description
clipname point string

Specifies the name of an animation clip.

agentname point string

This string is matched with the agent’s agentname point attribute to avoid potential name conflicts if a crowd contains multiple agent definitions. For example, two different types of agents may both have a clip named “walk”.

blend_durations primitive float array

For each transition region, specifies the duration (in seconds) of any transitions that start in that region.

sync_points primitive vector2 array

For each transition region, specifies a pair of clip times (in seconds) where the two animation clips have a similar pose.

transition_regions primitive vector2 array

Specifies ranges of clip times (in seconds) for the first animation clip where a transition is allowed to occur.

Parameters

Transitions

Units

The units for which time parameters are specified. This can be Frames (at the Houdini FPS) or Samples (in the clip’s sample rate).

Compute Transition Graph

When turned on, automatically builds a transition graph for the agent’s animation clips. For each pair of clips, this searches for groups of consecutive frames where the agent’s poses are similar.

Tolerance

When Compute Transition Graph is turned on, this specifies the tolerance used when comparing poses to find suitable transition points between clips. A tolerance of 0 requires the poses to be identical, and larger tolerances allow the poses to be less similar.

Blend Frames

When Compute Transition Graph is turned on, this specifies the length of the transitions between animation clips.

Transform Group

When Compute Transition Graph is turned on, the comparison between pairs of poses is limited to this group of transforms from the agent’s rig (such as the lower body).

Filters

Restricts the pairs of clips to search for transition points between. The standard pattern matching syntax (such as that used by the match VEX function) can be used to specify multiple source and destination clips.

For example, to start a transition from a sit_to_stand clip, and only search for transitions to the stand_1 and stand_2 clips, set Clip A to sit_to_stand, and Clip B to stand_*.

If a clip does not match at least one of the Clip A patterns, all other clips are considered as potential clips to use (the same behavior as when no filters are specified). Including a filter where Clip A is set to * and Clip B is empty excludes all transitions except for the ones specified by the other filters.

Clip A Pattern

When Compute Transition Graph is turned on, this is the name(s) of the animation clip(s) to transition from. Can also be a pattern as described in Filters.

Clip B Pattern

When Compute Transition Graph is turned on, this is the name(s) of the animation clip(s) to transition to. Can also be a pattern as described in Filters.

Extra Transitions

The number of additional transitions to set up between pairs of animation clips.

Clip A

The name of the animation clip to transition from.

Clip B

The name of the animation clip to transition to.

Initialize from Computed Transition Regions

Sets the Transition Regions parameters to the values that are computed when the transition graph is built with Compute Transition Graph turned on. This can be used to perform manual edits to the computed transition regions.

Transition Regions

The number of regions in the clip where a transition may occur.

Sync Frame A

Specifies a frame in Clip A where the pose is similar to Sync Frame B in Clip B.

Transition Region

Specifies the range of frames where a transition may begin. This should typically include Sync Frame A.

Sync Frame B

Specifies a frame in Clip B where the pose is similar to Sync Frame A in Clip A.

Blend Frames

Specifies the length of the transition between the clips.

Show Guide Geometry

When turned on, displays guide geometry to visualize the agent’s pose at Sync Frame A in Clip A and Sync Frame B in Clip B. This can be useful to find a pair of frames where the clips are suitably aligned. This parameter is not available when Visualize Sync Frames is turned off.

Guides

Point Separation

When visualizing the transition graph geometry, the points are moved apart according to this radius.

Visualize Clip Name

When turned on, displays the clip name that each point in the transition graph geometry represents.

Visualize Sync Frames

When turned off, disables visualization of the sync frames (overrides the Show Guide Geometry parameter). Since there can be many multiparm entries for Extra Transitions and Transition Regions, this lets you quickly turn off all guide geometry.

Agent Separation

When Visualize Sync Frames is turned on, this controls how far apart the two poses are when visualizing the sync frames.

Inputs

Agent

Agent primitive.

Existing Clip Transition Graph

An existing clip transition graph to add transitions to.

Clip Properties

Geometry describing advanced options for how clips should be played back (from the Agent Clip Properties SOP). Any overrides to the start frame or loop range are taken into account, as well as allowing transitions to be set up for aliased clips.

Outputs

Clip Transition Graph

The clip transition graph geometry that contains the original clip transition graph geometry plus any transitions added by this SOP (overrides any transition regions for the same pair of clips in the original graph).

Agent

The input agent primitive, with the clip transition graph geometry added to its shape library.

Examples

ClipTransitionGraph

This example demonstrates how to use a clip transition graph to provide transition clips for state transitions.

MotionPathTransitionClips

This example demonstrates how to use the Crowd MotionPath Transition SOP to blend between animation clips, including intermediate transition clips defined by a clip transition graph

See also

Geometry nodes