UsdAttributeSet
In USD, the attributes are essentially the defining properties of the prim. As a simple example, one of the properties of cube prim is “size”, which could appear as follows:
#usda 1.0
def Cube "myCube"
{
float size = 2.0
}
An attribute has a data type (the type is “double” in the example above), name, and value. The value may be numeric, a string, or an array. Unlike metadata, the value of an attribute may be time-sampled, in that the attribute may have several values, each of which is active at a given timecode or frame.
Attributes are one of the two defining properties of a prim, together with relationships.
Note: For more details see Attribute in OpenUSD’s USD Glossary.
Setting and Blocking Attributes
When assigning an attribute to a prim, you can choose between one of three actions:
-
Create/Override - Add a new attribute or override the value of an existing one.
-
Block - Disable the attribute, effectively blocking its effect on the prim.
-
Force Default - Force the attribute back to its default value.
As Block and Force Default don’t require a value, you need only supply the attributeName.
Create/Override requires all the attribute settings including attributeName, attributeType, and value. You also need to set isCustom to indicate if the attribute is pre-defined or a new, custom attribute.
For time-sampled values, set multisample to Yes. For example, say you’re animating a cube to grow in size, the attribute in USD code, could look like this:
def Cube “GrowingCube"
{
float size.timeSamples = {
0: 1.0,
2: 2.0,
3: 4.0,
}
}
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 | The paths to the Prims that you want to assign this attribute to. |
action |
Choose how you want to apply the attribute update.
|
|
attributeName | N/A | Assign a name to the attribute. |
attributeType | Double | Choose from one of the available data types for the attribute. |
multisample | Yes |
Select Yes if the data is time-sampled. Select No if the value should not vary over time. |
isCustom | No | Select Yes if this is a custom attribute. |
value | N/A | Assign a value to the attribute. |