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:
OmniPlaybackPython 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:rateinputs:omni:playback:inputs:diffuse_texture:sourceStartinputs:omni:playback:inputs:diffuse_texture:sourceEndinputs:omni:playback:inputs:diffuse_texture:playbackStartinputs:omni:playback:inputs:diffuse_texture:beforeinputs: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 videoblack- Returns a value of 0 for all channelshold- 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 videoblack- Returns a value of 0 for all channelshold- Returns the frame defined by sourceEnd
Schema Application#
The schema can be applied to the following USD prim types:
Material- For material-level texture animationNodeGraph- For node graph texture inputsShader- For shader texture inputs
All properties are marked with connectability = "interfaceOnly" and are organized under the “playback” display group for consistent property panel presentation.