| Since | 19.0 |
This node combines the most common features of the Reference,
Xform, and
Set Variant LOPs into a convenient tool.
Parameters ¶
Destination Primitive
Scene graph path where the referenced asset will be attached.
Primitive Kind
If the prim at Primitive Path doesn’t exist, this node will create it. If it has to create the prim, it will set it to have this kind.
Setting this parameter to Auto will not author a Kind on the leaf primitive where the reference is added. Instead, it will examine the Kind of the prim after setting the reference, and automatically set the Kind of ancestor prims to ensure the leaf primitive is part of a valid model hierarchy. Note that this may result in adding a Kind to ancestor prims that were not created by this node. If the referenced prim has no kind, or is not a model kind, Auto mode will not author Kind on any prim.
Parent Primitive Type
If the prim at Primitive Path doesn’t exist, this node will create it. If it has to create the prim, it will give any intermediate prims it has to create this type.
Make Instanceable
Mark the new or modified prims as instanceable (as in “native instancing”). This saves memory if you reference the same branch into multiple places, but makes the descendants of the referenced prim not editable. If this option is off, the prims are not explicitly marked as not instanceable. Instead, the current instanceable value on each prim is left unchanged.
Reference ¶
Source
The source of the asset being referenced. By default, this node will switch to the second input, when connected, and use File otherwise. Users can also specify which source if they wish.
File
Reference in a prim from an external USD file.
Second Input
Reference in a prim from a this node’s second input.
Second Input if Connected
Reference from the Second Input if connected, otherwise from a file.
Reference File
Click the Open floating file chooser button to load the USD file from disk you want to add as a reference.
Reference Primitive
Reference Automatically Chosen Primitive
If the referenced file has a default primitive set, use that. If there is no default prim, use the first Xform prim at the root. If there is no Xform prim at the root, use the first root prim of any type.
Reference Default Primitive
If the referenced file has a default primitive set, use that. If not, display a warning on this node.
Reference Specific Primitive
Reference in the scene graph path in the Reference Primitive Path parameter.
Reference Primitive Path
Drag a primitive from the Scene Graph Tree to this field or enter a path to the primitive you want to use as a reference.
Time Offset (in Frames)
Offsets all time samples from the file or target primitive on the first input. You can use this to re-time animations in the references file.
Time Scale
Scales all time samples from the file or target primitive on the first input. You can use this to re-time animations in the references file. A value of 1 means normal speed. Values smaller than 1 make animations slower, values greater than 1 make the animation appear in slow motion.
Handle Missing Files
If the reference is to an external file, this controls what the node does if the referenced file does not exist.
Error for Missing Files
The node errors, preventing cooking the rest of the network.
Warn for Missing Files
The node shows a warning, then passes through the first input unchanged.
Ignore Missing Files
The node silently ignores the missing file, and passes through the first input unchanged.
Allow Missing Files on the Stage
Author the reference to the sublayer even if it currently doesn’t exist. This node and the following nodes will probably print warnings from the USD libraries about missing files.
Transform ¶
Transform
How the transform parameters below apply to the primitive. (Because each USD prim can contain multiple transforms, and be affected by parent transforms, there are many different ways to apply new transforms.)
Append
Apply the parameters as a new, most local transform.
Prepend
Apply the parameters as a new, least local transform.
Overwrite or Append
If a local transform exists with the name xformOp:transform, overwrite it with the parameters. Otherwise, apply it as a new, most local transform.
If this replaces an existing transform, that transform’s order in the local transform stack is not affected.
Overwrite or Prepend
Like Overwrite or Append, but least local.
Apply Transform in World Space
Apply the parameters as a new, most local transform. However, prior to applying the transform, it is updated so that the result of the transform appears as if the transform was being applied in world space, before any local or ancestor transformations were applied to the primitive.
Replace All Local Transforms
The transform specified in the remaining transform parameters is always applied as a new transform. Prior to applying this transform, all existing transform operations on the local transform stack are cleared so that only the supplied transform remains on the local transform stack (though ancestor transforms still have an effect).
Apply XformCommonAPI
The transform specified in the remaining transform parameters will be applied as if it were appended to whatever the current transform on the prim is. But the resulting final transform will be expressed using the USD XformCommonAPI specification. Note that this specification cannot express shears, and so cannot express some transforms which may result in unexpected changes to transforms that already have shears.
Apply Extended XformCommonAPI (with Shear + Pivot Rotate)
The transform specified in the remaining transform parameters will be applied as if it were appended to whatever the current transform on the prim is. But the resulting final transform will be expressed using a Houdini-defined extension of the USD XformCommonAPI specification. This extension is accessible through the husd.UsdHoudini.HoudiniXformCommonAPI python class. This class provides a very similar interface to pxr.UsdGeom.XformCommonAPI but allows for shears in the transform, is able to store a pivot rotation value, and can express rotations as a quaternion if the rotations are animated. Using quaternions to express rotations avoids motion blur artifacts that can occur when using Euler angles to express the rotation.
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.
Shear
Amount of shearing. The three values represent shearing in the X direction on the XY plane, in the X direction on the XZ plane, and in the Y direction on the YZ plane, respectively.
Uniform Scale
Scales the object uniformly along all three axes.
Align To Up Axis
When enabled, the reference will be transformed so its up axis matches the current stage.
Pivot Translate
Moves the local origin of the object.
Pivot Rotate
Rotates the local origin of the object after translation.
Variants ¶
Number of Variants
You can perform multiple variant selections in a single Set Variant node. Set this to the number of selections you want to make, or use the plus and minus buttons to add or remove selections.
Primitives
The primitive(s) you want to define as variants of a Variant Set. You can click the Select button beside the text box to select the primitives from the scene graph tree. You can also use primitive patterns for advanced matching.
Variant Set
The name of the variant set to select a variant from.
Variant Name
If not choosing the variant by index, this parameter is the name of the variant that should be selected within the specified variant set. If this value is an empty string, any existing variant selection specified in the active layer will be cleared. This will “reveal” any variant selection opinions authored in weaker layers. If this value is set to the special string <block>, an explicit empty variant selection will be made, blocking any variant selection opinions from weaker layers, leaving the chosen set without any variant selected. If this is set to a list of variant names (space or comma- separated), then this will use the first one that matches a valid variant name in each prim’s variant set.