On this page | |
Since | 18.0 |
Overview ¶
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.
Tips ¶
-
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.
Parameters ¶
Source Primitives
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 /path/to/prim.collection:‹name›
).
Note
This parameter needs to be exposed in order for the transform handles to be context-aware. Without it, the handles may not be positioned properly.
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.
Total Number
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.
Destination Primitives
When Separate Source and Destination Paths is on, this is the path to the parent prim for the duplicates.
Duplicate Name
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:
@copy
($CY
is deprecated)
Which copy number is being created.
@numcopy
($NCY
is deprecated)
Total number of copies that will be created.
@src
($SRC
is deprecated)
Which source primitive index is being copied.
@numsrc
($NSRC
is deprecated)
The number of source primitives that are being duplicated.
@srcname
($SRCNAME
is deprecated)
The name of the source primitive being duplicated.
@srcpath
($SRCPATH
is deprecated)
The path of the source primitive being duplicated.
Reference Type
The type of composition arc used to connect the duplicates to the original. Use the default (“Reference”) unless you have a specific reason to choose Inherits or Specializes.
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).
Make Instances
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.
None
Set the prim to have no kind.
Automatic
Automatically choose a kind based on the parent and child kinds.
Assembly
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).
Group
Mark this prim as a group of models.
Component
Mark this prim as a “leaf” model.
Sub-component
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.
Collection Primitive
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.
Collection Name
If you want to create a collection of the duplicates, set Collection primitive, and set this to the name of the collection.
Promote Collections
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 /Geometry/orig
to /Geometry/dupe1
and /Geometry/dupe2
, if orig
had a collection named lights
containing /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 lights
containing /Geometry/dupe1/lamp
and /Geometry/dupe2/lamp
.
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/dupe1/lamp
and /Geometry/dupe2/lamp
, but also the original contents of the pre-promoted collection, /Geometry/orig/lamp
.
Transform Cumulative
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.
Transform order
The order in which Houdini applies translates, rotates, and scales, and the order in which it applies rotation.
Translate
Movement amount along XYZ axes.
Rotate
Degrees rotation around XYZ axes.
Scale
Non-uniform scaling along XYZ axes.
Uniform scale
Scales the object uniformly along all three axes.
Pivot translate
Moves the local origin of the object.
Pivot rotate
Rotates the local origin of the object after translation.