UsdSpecializeSet
Specializes are a composition arc that allows one prim to "specialize" another prim. This means the specializing prim inherits the structure and properties of the prim it specializes, but it doesn't replace or override it. The specializes relationship is a means to establish a "class-like" inheritance mechanism within USD.
Like inheritance, you can create a specialized prim from another prim. However, the overrides on the specialized prim level will always take precedence over any further references. This can be useful to ensure certain aspects are never overridden.
Unlike references, which can replace a prim with content from another USD file, specializes allows one prim to inherit the attributes and children of another without replacing it.
Multiple prims can specialize a single prim, allowing layered inheritance where each specializing prim can further refine or extend the properties of the original.
Specializes are often used to set up a base set of properties or structure that can be shared across multiple prims. Think of it as setting up a "class" in programming, where multiple objects can inherit properties and methods from the class but can also have their unique attributes.
It's a powerful tool in the composition toolkit of USD, allowing for the setup of shared structures and properties that can be extended in a modular and non-destructive manner.
Example: Consider constructing digital models of cars using USD. There's a fundamental "car" prim, which describes generic attributes like having wheels, and seats.
Now, we wish to create specialized versions of this car, such as a convertible and truck. Employing the "specializes" relationship in USD, both the convertible and the truck inherit the foundational attributes from the car prim, ensuring they have wheels, and seats. Yet, they bring in their distinct characteristics like a retractable roof for the convertible and extra space for the truck.
If a modification is made to the basic car prim, such as changing the wheel design, both the convertible and truck automatically incorporate the change while preserving their individual specialties. This approach ensures a consistent base among all car models while allowing each specialized version to express its unique features.
Inputs
Connection Type |
Connection Name |
Function |
input | in | The incoming scene graph data that the node will operate on or modify. |
Controls
Control (UI) |
Default Value |
Function |
primPaths | N/A | Specify locations where specializes are applied. They are generated at each specified path, following the order in which they are listed. |
specializePath | N/A | The path to a Prim you wish to specialize from. |
listPosition | prepend |
Specifies how the specializes are added to the scene. Options are:
For more information, refer to the USD Glossary under List Editing. |