# The Compound Node

Maya Node Type → DG Node
Maya Node NamemvUsdCompoundShape

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

# 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:

[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

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 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.


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.

# 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.
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.
Last Updated: 6/6/2021, 5:51:02 PM