|On this page|
There are many ways to make “copies” in USD, and how to integrate the copies into the scene graph tree. This node can perform many of them.
You can specify more than one source prim. In that case the node will duplicate each source prim (and its descendants) in turn.
You can apply a transform to each copy. For example, for prims holding geometry, you can add a translation to move the geometry copies apart from each other.
If this node generates duplicate paths where intermediate prims don’t exist, it will automatically create them. Use the Parent primitive type to set the type of the created intermediate prims.
You can create a USD collection of the duplicates using the Collection primitive and Collection name parameters.
You can promote collections inside the copied prim onto another prim.
The primitive(s) the node should operate on. You can drag primitives from the scene graph tree pane into this textbox to add their paths, or click the Reselect button beside the text box to select the primitives in the viewer, or ⌃ Ctrl-click the Reselect button to choose prims from a pop-up tree window. You can also use primitive patterns for advanced matching, including matching all prims in a collection (using
Modify Source Primitive
What to do with the original source prim.
Deactivate Source Primitives
Do not include the source primitive in the duplicates, and set the source prim to “inactive”.
This is the default, and allows each duplicate of the source to be treated separately. Overrides of attributes on any individual duplicate prim will not affect any of the other duplicates. It also prevents changes from being made to the source primitives (which would affect all of the duplicates).
Hide Source Primitives
Do not include the source primitive in the duplicates, and set the visibility of the source prim to “invisible”.
The source prim (and its descendants) will not appear in the view, but you can still edit it and those changes will affect the duplicates.
Source Primitives Are First Duplicates
Treat the source primitive as one of the duplicates, so the number of duplicates created is actually the specified total number minus one.
Changes to this “first duplicate” will affect all the other duplicates. But changes to the other duplicates will not affect each other.
Source Primitives Are Classes
Assume that the source primitive is a class primitive (see USD documentation for more information about the class specifier). This means the source primitive is not included in the duplicates, and the node doesn’t set the visibility or activation values of the duplicates.
Source Primitives Are Deactivated
Assume the source primitive is currently deactivated. This means the source primitive is included in the duplicates, and the node sets the activation of the duplicates to true.
The total number of copies of the source object that should exist (and be active) after the duplicate operation. The Modify source primitive setting affects whether this includes the original or not.
Separate Source and Destination Paths
By default, the copies are children of the same parent as the original. Turn this option on if you want to put the copies under a different parent prim.
When Separate Source and Destination Paths is on, this is the path to the parent prim for the duplicates.
Enter a string expression (remember to enclose the expression code in backticks) to compute the name for each duplicate prim. Each name must be unique among its siblings. The default expression adds an underscore and a number (starting at zero) to the name of the original. You can use the following local variables:
$CY is deprecated)
Which copy number is being created.
$NCY is deprecated)
Total number of copies that will be created.
$SRC is deprecated)
Which source primitive index is being copied.
$NSRC is deprecated)
The number of source primitives that are being duplicated.
$SRCNAME is deprecated)
The name of the source primitive being duplicated.
$SRCPATH is deprecated)
The path of the source primitive being duplicated.
Note that there is also a “Copy” option. This is not a USD composition arc but, rather, is a mode that explicitly copies (reauthors) the source prim(s) data into the duplicate location(s).
When this is on, each of the duplicates is marked as an instanceable prim. This means they will be “aliases” to an implicit shared “master” prim. The advantage is that instances take a very small amount of constant space. The disadvantage is that while you can edit attributes on each instanced prim (for example, give each instance its own transform), you can’t edit any of its descendants.
Parent Primitive Kind
The Kind to set on the parent prim.
Set the prim to have no kind.
Automatically choose a kind based on the parent and child kinds.
Mark this prim as an “important” group of models (for example, if a prop is made up of smaller moving parts, the top level of the prop would be an Assembly, and the sub-parts would be Groups and/or Components).
Mark this prim as a group of models.
Mark this prim as a “leaf” model.
Mark this prim as a subordinate part under a Component model.
Parent Primitive Type
If this node generates duplicate paths where intermediate prims don’t exist, the node will automatically create them. This sets the type of the created intermediate prims.
If you want to create a collection of the duplicates, set the path to a prim to attach the collection to, and set Collection name.
If you want to create a collection of the duplicates, set Collection primitive, and set this to the name of the collection.
If the source prim or any of its descendants have a collection that match this pattern (or space-separated list of patterns), the node authors a copy of the collection on the Collection primitive. If the source(s) have multiple collections with the same name, the contents of the new authored collection contains the union of their contents.
For example, when this is on, if you duplicate
orig had a collection named
/Geometry/orig/lamp, the collection will be “promoted” onto the common parent (
/Geometry) and the contents will be rewritten to be relative to the duplicates. So
/Geometry would have a collection
Promote Source Collections
See the help for Promote collections. If promote collections is on and this is on, the original contents of the collection that gets promoted is included in the promoted collection, along with the paths that were rewritten to be relative to the duplicate prims.
Continuing the example from the Promote collections help, if this is on, the “promoted” collection on
/Geometry would not only contain
/Geometry/dupe2/lamp, but also the original contents of the pre-promoted collection,
The transform below is applied cumulatively to each copy. For example, when this is on, and Rotate X is
5, the X rotation of the first copy is
5, the second copy is
10, the third copy is
15, and so on.
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.