USD Omni Playback Schema#

This extension provides USD schema definitions for controlling animated texture playback in Omniverse Kit.

Contents#

  • OmniPlaybackAPI - Multiple-apply API schema for texture animation control

  • C++ library: OmniPlayback

  • Python module: omni.Playback

Overview#

omni.usd.schema.playback defines a USD Applied API Schema designed for controlling animated textures and video playback on shader inputs. This extension enables developers to configure texture animation properties directly on USD prims, allowing these configurations to be serialized, loaded, and shared across different applications and workflows.

Key Components#

OmniPlaybackAPI#

OmniPlaybackAPI is a multiple-apply schema that adds playback controls to asset inputs on UsdShade prims (Material, NodeGraph, and Shader). The schema is applied once per texture asset input that requires animation control.

Application#

For a texture input like inputs:diffuse_texture, the schema is applied as:

  • OmniPlaybackAPI:inputs:diffuse_texture

This creates namespaced properties like:

  • inputs:omni:playback:inputs:diffuse_texture:rate

  • inputs:omni:playback:inputs:diffuse_texture:sourceStart

  • inputs:omni:playback:inputs:diffuse_texture:sourceEnd

  • inputs:omni:playback:inputs:diffuse_texture:playbackStart

  • inputs:omni:playback:inputs:diffuse_texture:before

  • inputs:omni:playback:inputs:diffuse_texture:after

The property namespace is prefixed with inputs: so the properties are passed through to the render delegate via HdMaterialNode.

Properties#

Rate Control

  • rate (float, default: 1.0) - Controls the playback speed of the video. For example, 0.5 plays at half speed, 1.5 plays 50% faster.

Source Range

  • sourceStart (double, default: 0.0) - Defines, in seconds, the start of the range within the video clip that should be played.

  • sourceEnd (double, default: -1.0) - Defines, in seconds, the end of the range within the video clip that should be played. A negative number indicates the full length of the video should be played.

Timeline Mapping

  • playbackStart (timecode, default: 0.0) - Defines the timecode in the stage at which the video clip should start playing.

Boundary Behavior

  • before (token, default: “loop”) - Defines what is returned when the stage timecode maps to a time before the start of the clip. Options:

    • loop - Loops the video

    • black - Returns a value of 0 for all channels

    • hold - Returns the frame defined by sourceStart

  • after (token, default: “loop”) - Defines what is returned when the stage timecode maps to a time after the end of the clip. Options:

    • loop - Loops the video

    • black - Returns a value of 0 for all channels

    • hold - Returns the frame defined by sourceEnd

Schema Application#

The schema can be applied to the following USD prim types:

  • Material - For material-level texture animation

  • NodeGraph - For node graph texture inputs

  • Shader - For shader texture inputs

All properties are marked with connectability = "interfaceOnly" and are organized under the “playback” display group for consistent property panel presentation.