|On this page|
This node references in prims from disk and attaches them to prims in the scene graph tree. This is the same function as the Reference LOP, however this node provides a custom interface to make it easy to reference in many files and interactively place them in the tree.
Referencing in many files at a time is often part of a layout workflow, where you start to build a scene by importing available assets and organizing them into a meaningful hierarchy.
Working in a single layer
Because of the way that USD stages are composed, it is not generally possible to perform arbitrary rearrangement of a scene graph hierarchy. However a single layer can be modified in this way, copying, moving, and deleting primitives.
You are always looking at and manipulating a single USD layer, not a composed stage. (This is why the contents of the referenced files do not appear in the stage manager tree. Only primitives that exist in the active layer are represented in the tree and can be manipulated by this node.)
You can only freely rearrange prims that you created in this node.
Flattening an input stage
In addition to creating new primitives, the Stage Manager can manipulate pre-existing primitives. But because it only works on a single layer, it must flatten all incoming layers into a single layer before you can edit incoming hierarchy. This can be very destructive to a standard layer structure. Be careful if you decide to feed an input stage into this node.
It’s probably better (or at least, less prone to mess up layers) if you use this node without an input, to build up a layer that references in the files you want with the hierarchy you want, and then Merge the output of this node into the layer stack of your stage.
Stage Manager has a custom Qt-based user interface that takes over the parameter editor when this node is selected. You can switch between the custom interface and the regular parameters by clicking the Show/hide parameters button in the Parameter editor’s toolbar.
The following instructions describe how to use the custom interface.
Create a new
You can use this create new levels of hierarchy to organize the assets you reference in.
Reference in a file
Delete a prim/reference
Explicitly specify which root prim to reference
Usually a file specifies a “default” prim to reference. If the file doesn’t have a default prim, or if you want to reference a different root prim, find the row that references in the file, and double-click in the “Reference Primitive” column. Type the name of the root prim to reference.
You can choose variants on top level referenced primitives, and apply transforms.
In some cases, the stage manager can be very useful for performing manipulations on the active layer in a procedural manner using expressions in the actual parameters, rather than using the custom panel interface. For example, Edit Target Layer uses a Stage Manager node to move a primitive known to exist in the active layer to a different location in that layer.
You can use a Stage Manager node to rename prims in a USD layer on disk.
Reference in the layer you want to edit.
Wire the output into a Stage Manager node. In the stage manager, use the parameter UI to rename prims in the layer.
Wire the Stage Manager output into a USD ROP and use it to write out the results.
You can switch between the custom interface and the regular parameters by clicking the “Show/hide parameters” button in the Parameter editor’s toolbar.
Flatten Input Layers
When this is on (the default), Stage Manager will flatten any incoming layers into a single layer so that it can edit the entire scene graph hierarchy. When this is off, the incoming layers are passed through, but are not editable or visible in the custom interface.
New Primitive Type
Specifies the USD Primitive type of any new primitives created by this node. Choices are
Scope can both create a valid USD model hierarchy, and the choice between them will depend on your preferred conventions. Choosing
None allows the USD primitive type to be defined by the type of the primitive being referenced in from an external file.
Number of Changes
Each edit performed by this node is recorded as an instance of this multi-parm. The node usually these out automatically as you work in the custom interface, but you can also create them manually.
There are five different operations that can be performed by this node. Each one acts on a single primitive, but many of them will implicitly affect all descendants of that primitive.
Creates a new primitive at a particular location. Ancestor primitives will be created automatically if they don’t already exist. Standard edit operations such as setting a transform or choosing variants can be applied in the same operation.
Copies a primitive from one location to another. The original primitive is unaffected. Ancestors of the destination location will be created automatically if necessary. Standard edit operations can be applied to the destination primitive in the same operation.
Modifies an existing primitive. Any or all of the supported modifications can be applied in a single operation.
Similar to Copy, but deletes the primitive in the original location. Ancestors of the destination location will be created automatically if necessary. Standard edit operations can be applied to the destination primitive in the same operation.
Deletes the primitive at a particular location (along with all its descendants).
The scene graph path of the USD primitive that will be affected by this operation. Depending on the Change Type, this primitive may or may not need to exist prior to the operation being applied. If an operation requires a primitive to exist, but it isn’t found, a warning appears on the node. Only a single primitive path can be entered in this parameter (patterns are not supported).
For the Copy and Move operations, the destination scene graph path.
File path to a USD layer on disk which will be added as a reference on the specified USD primitive.
Reference Primitive Path
The name of the root primitive to import. If this is blank, the node uses the file’s default primitive. If the file has no default prim, it uses the first prim with a transform. If that doesn’t work, it takes the first root prim. If the file has no root prim (that is, it’s empty), this node doesn’t reference in the file at all.
Reference as Payload
Reference this file in as a payload.
When this is on, apply a transform to the referenced primitive. This replaces any other transform operations in the referenced primitive’s
xformOpOrder attribute. So, this transform effectively replaces any other transform that might have been set on this primitive.
The order in which Houdini applies translates, rotates, and scales, and the order in which it applies rotation.
Movement amount along XYZ axes.
Degrees rotation around XYZ axes.
Non-uniform scaling along XYZ axes.
Scales the object uniformly along all three axes.
Moves the local origin of the object.
Rotates the local origin of the object after translation.
Number of Variants
You can choose which variant of the root primitive is selected when the prim is referenced in. Since primitives can have multiple variant sets, this node allows you to make multiple variant choices.
The name of the variant set to choose a variant from.
The name of the variant to select.