physx-variant-metadata#
Code |
RV.003 |
|---|---|
Validator |
|
Compatibility |
open-usd |
Tags |
🔑 |
Summary#
The PhysX variant set must be documented in customLayerData.SimReady_Metadata.Variants.Physics.PhysX, declaring its prim, variantSetName, and activateOption.
Description#
When an asset authors the PhysX variant set (see physx-variant-set RV.001), the root layer must carry a matching descriptor so tooling can discover and activate the variant without traversing composition. The descriptor lives at:
customLayerData → SimReady_Metadata → Variants → Physics → PhysX
The PhysX entry is a dictionary with:
prim(string): the prim path that owns the variant set (the asset root, e.g./RootNode).variantSetName(string): the variant set name,PhysX.activateOption(string): the option that turns PhysX on, i.e.Enabled.
The variantSetName must name a variant set that actually exists on the referenced prim.
Why is it required?#
Lets pipelines enumerate and activate PhysX from metadata alone, without opening and traversing variants.
Keeps the declared runtime contract (metadata) and the composed structure (variant set) in sync and cross-checkable.
Provides a stable, machine-readable description of which prim and option activate PhysX.
Examples#
# Valid: metadata documents the PhysX variant set
customLayerData = {
dictionary SimReady_Metadata = {
dictionary Variants = {
dictionary Physics = {
dictionary PhysX = {
string prim = "/RootNode"
string variantSetName = "PhysX"
string activateOption = "Enabled"
}
}
}
}
}
# Invalid: PhysX variant set authored but no PhysX metadata entry
dictionary Physics = {
}
# Invalid: entry missing required keys
dictionary PhysX = {
string prim = "/RootNode"
}
How to comply#
Add a
Variantsdictionary underSimReady_Metadatain the root layer’scustomLayerData.Under
Variants.Physics, add aPhysXdictionary.Set
primto the default prim path,variantSetNametoPhysX, andactivateOptiontoEnabled.Ensure the
variantSetName/primpair points at a real variant set.