# The Compound Node
Maya Node Type → DG Node
Maya Node Name → mvUsdCompoundShape
Multiverse allows you to efficiently stream in Maya any USD data (as well as
Alembic) by encapsulating their contents into Multiverse Compounds (nodes of
type mvUsdCompoundShape
). No actual geometry actually exists in Maya, and Maya
files remain lightweight, open quickly and operate at fast FPS in the viewport
for manipulation operations, overrides and playback.
The result of a Multiverse Read operation on the shelf, is the creation of a Multiverse "Compound" node encapsulating the content of the file(s) being read.
Compound nodes can be re-arranged int the Outliner to form any hierarchy by using Maya transform nodes, then the whole hierarchy of Compounds can be written out as a Composition. You have options to selectively specify how the Compound should be written: as a "usd reference" or as a "usd payload" (aka a delayed reference). See Write Composition.
TIP
Reading is also available through the Multiverse Python API:
multiverse.CreateUsdCompound
See the relative API documentation
# Layering
You can read data in Compounds as multiple layers, the result being always the "composition" of all layers. When sparse overrides on matching hierarchy are present, the layers will be composed in a top-down fashion, with the top layers winning on the bottom ones.
As an example, here's what a typical animated character may be composed of in terms of layers:
(top)
---------------------------
[x] - chara_attrib_over.usd // override write: material overrides by shot
[x] - chara_attrib_over.usd // override write: attribute overrides by shot
[x] - chara_materials.usd // override write: assignment of maya or usd materials from lookdev
[x] - chara_anim.usd // asset write (sparse): animated points from animation
[x] - chara_uv.usd // asset write (sparse): UVs from modeling / lookdev
[x] - chara_model.usd // asset write: t-pose model topology from modeling
---------------------------
(bottom)
2
3
4
5
6
7
8
9
10
TIP
As of Multiverse 7, it is possible to write material shading networks in USD files for either interchange purpose or rendering (3Delight NSI only). These materials can be assigned as overrides in MEOW and are identified by the blue color (while green is reserved for assignment to material shading networks stored in Maya).
Layers can be optionally muted using each layers' own check-box in the UI: note that muted layers are not written when writing compounds into larger compositions.
Note
Note that Compounds will remember all their overrides even if the layers are removed from the UI, so even if the Compound is empty from any layer.
Continue reading about layering in the dedicated Layering documentation.
# Draw Mode
The Draw mode allows you to strategically choose how to draw each individual compound for better drawing performance in the viewport. The draw mode can also be chosen before reading an asset both from the UI and from the Python API. This allows you to overcome viewport limitations with very complex assets.
Additionally you have two fine grain controls:
- Instance Draw Mode: choose a different draw mode for instances
- Instance Draw Ratio: choose the % ration of how many instances to draw
# USD Purpose
USD Purposes allows to selectively display render
, proxy
and guides
primitives which were written as such by Multiverse Asset Write or by another
USD toolset such as Solaris in Houdini.
By default USD primitives are tagged with the default purpose, in such case they are displayed in the Hydra render delegates, such as Storm and NSI, and they will be rendered procedurally by all of the Multiverse supported renderers.
In case render
, proxy
and guides
primitives exist, you can selectively
enable/disable them for display in the viewport. Note that proxy
and guides
are never rendered, while render
obviously is rendered.
# Time Control
It is possible to re-time, offset and in general control the timing of the data contained in a Compound using the timing controls.
Timing controls applies to all layers.
Note
When consolidating compounds into Compositions, please note that not all timing controls can be encoded in USD, this is because USD itself does not yet have support for them:
Timing Control | Exists in |
---|---|
Time | Maya |
Asset Time | Maya and USD |
User Time | Maya |
Speed Multiplier | Maya and USD |
Frame Offset Time | Maya and USD |
Before User Time | Maya |
After User Time | Maya |
# Render Control
This section offers controls for scaling the velocities (for velocity and acceleration-based motion blur), the and the points / curves size without the need to rewrite those quantities. These are very useful with FX data typically coming from Houdini and Solaris.
It is also possible to disable embedded USD materials for the whole compound, this will effectively ignore USD materials and their assignments to primitives.
# Rendering Extension Attributes
Extension attributes are available for each of the supported renderers and are automatically added to the Compound when each renderer's translator plugin for Maya is loaded.
# Render Stats
Maya "Render Stats" visibility attributes are added by Maya to the Compound.
# Reference
Section | Parameter | Description |
---|---|---|
Layers | Layer Enable/Disable | Whether a layer is enabled or disabled. |
Layer Name | The filename of the USD layer. | |
Asset Path | The relative or absolute path to the asset. | |
Add Layer [button] | Adds a layer. | |
Remove Layer [button] | Removes a layer. | |
Move Up Layer [button] | Removes a layer. | |
Move Down Layer [button] | Removes a layer. | |
Merge All USD Layers [button] | Pops up the Write USD Composition UI to merge into a single composition all Layers. On writing the Composition will be auto-synced into the compound and the content refreshed. | |
Reload All [button] | Reload all layers. | |
Draw Mode | Smooth Shaded | Draw as smooth shaded. |
Maya | Use the Maya material assigned to the compound. | |
USD Preview | Draw as smooth shaded with USD preview materials (if any). | |
Auto Color | Use a flat color set randomly assigned to primitives. | |
Point Cloud | Draw as point cloud. | |
Bounding Box | Draw as bounding box. | |
Bounding Boxes | Draw as multiple bounding boxes. | |
Skip | Skip the display draw. | |
Proxies - DEPRECATED | This mode is deprecated. | |
Instance Draw Mode | Inherit | Draw instances and point instances using the main draw mode. |
Point Cloud | Draw instances and point instances as point clouds. | |
Bounding Box | Draw instances and point instances as bounding box. | |
Instance Draw Ratio | 100 (%) | Jow many instances and point instances to draw in percentage. |
Display Purpose | Proxy | Display USD primitives set as "proxy". |
Render | Display USD primitives set as "render". | |
Guide | Display USD primitives set as "guide". | |
Write Mode | As Reference | When writing a “composition”, write this compound as a USD reference. |
As Delayed Reference ("payload”) | When writing a “composition”, write this compound as a USD payload (aka “delayed reference”). | |
Time Control | Time | The actual time of this asset. |
Asset Time (Starts/End) | The actual start and end times for this asset. | |
User Time | The user time for this asset, typically is set to the same value of asset time, or a section of it. | |
Speed Multiplier | Re-timing option to speed up or slow down your asset animation. | |
Frame Offset time | Offset the start time of the asset animation. | |
Before User Time | Behavior before the start of the user time. Note that this information is not written to USD as it does not yet exist in USD itself. | |
After User Time | Behavior after the end of the user time. Note that this information is not written to USD as it does not yet exist in USD itself. | |
Render Control | Velocity Scale | Scale the velocity attribute of this asset, used for velocity blur or acceleration blur. |
Point Scale | Scale the point size values, will effectively make points larger or smaller. | |
Curve Scale | Scale the curve control point size values, will effectively make curves thicker or thinner. | |
Scale Mode | Whether you should “scale” or explicitly “set” the above velocity/point and curve values. | |
Ignore Usd Material | Ignore any Usd Shading network and assignment. | |
Render Stats | Control the standard Maya render Stats | |
Extension Attributes | 3Delight | Controls the 3Delight NSI extension shape attributes. |
Arnold | Controls Arnold extension shape attributes. | |
Redshift | Controls Redshift extension shape attributes. | |
Renderman | Controls Renderman extension shape attributes. | |
VRay | Controls Vray extension shape attributes. |