# The Compound Node
Maya Node Type → DG Node
Maya Node Name →
Multiverse allows you to efficiently stream into Maya USD files (and Alembic
too) 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 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.
Reading is also available through the Multiverse Python API:
See the relative API documentation
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 // material overrides by shot [x] - chara_attrib_over.usd // attribute overrides by shot [x] - chara_materials.usd // assignment from lookdev [x] - chara_anim.usd // animated points and normals from animation [x] - chara_uv.usd // UVs from modeling / lookdev [x] - chara_model.usd // t-pose model topology from modeling --------------------------- (bottom)
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 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.
# USD Purpose
USD Purposes allows to selectively display
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.
guides primitives exist, you can selectively
enable/disable them for display in the viewport. Note that
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.
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|
|Asset Time||Maya and USD|
|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.
# 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.
|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.|
|Material||Draw as smooth shaded with USD preview materials (if any).|
|Flat Shaded||Draw as flat shaded.|
|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||Set the display draw mode to proxy (if any).|
|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.|
|Render Stats||Control the standard Maya render Stats|
|Arnold Extension Attributes||Controls the renderer's extension attributes.|
|3Delight NSI Extension Attributes||Controls the renderer's extension attributes.|
|Redshift Extension Attributes||Controls the renderer's extension attributes.|
|Renderman Extension Attributes||Controls the renderer's extension attributes.|
|VRay Extension Attributes||Controls the renderer's extension attributes.|