Write USD Asset
← Back to main +Documentation

INPUT: Maya objects data
OUTPUT: USD Asset File (.usd/.usdc/.usda/.usdz)

Write Maya objects data (such as geometry primitives, hierarchies, properties…) as a  USD files that represents a Multiverse USD “asset”. You can choose several option to write hierarchy, primitives and properties and use the time settings to output a static or animated or topology varying asset. 

Depending on the selection and the use of mvSet nodes, you can also write out proxies and variants.

  • NOTE — Please be aware that when performing multiple selections for a Multiverse USD Write operation, if you do not have the “Include Parent Hierarchy” option ON, you will create USD files with multiple USD roots.

Input Selection

  • The selected hierarchy of Maya object(s). By default the writer will include any children node from the selection downstream, optionally you can include the parent hierarchies. 

  • NOTE — If Maya geometry is contained in Multiverse Set nodes with the “proxy” and "render” purpose set, then the asset will contain proxies, see +Generating Viewport Proxies.

  • TODO — Docs for writing variants

File Output

By default, when no extension is typed, this will write a single .usd binary file.

You can also explicitly type the extension:
  • .usd binary file — default in case you don't type the extension.
  • .usdc binary file — same as .usd you should not need to specify the .usdc extension, simply use .usd if you want to write binary files.
  • .usda ASCII file — by explicitly specifying the .usda extension in the file dialog. Note that ASCII files should only be used for inspection and for debugging purposes. 
  • .usdz — this will write a single .usdz archive file. We call this an “AR asset”.

Typically you will read it back in Maya via the Multiverse Read USD (or via the Multiverse Python API) to be used as-is or to be written out again as part of a “composition” via the Multiverse Write USD Composition.

Alternatively you can read this USD file in any other USD-enabled DCC application such as Houdini | Solaris. 

  • NOTE — In a multi-stage worklflow you can, for example, write model, animation, material assignment USD files separately, and then layer them in a Multiverse Compound.

Typically .usdz is used for augmented reality in iOS/macOS, see the relative docs: +Multiverse — USDZ output for AR. You can also read back USDZ fees in Maya using the Multiverse Read USD (or via the Multiverse Python API).

Sparse Overides and Layering

You can write a USD file containing e.g. only certain type of data, such as only UVs, or only animated positions, or only transforms… and then layer them up in a Multiverse compound. This workflow is typical of large studios where different departments are responsible for different data. Such strategies allow for e.g:

  • model artist writes a new USD file containing UVs only which a lookdev artist needs: the lookdev artist will simply layer this UV-only cache in Multiverse Compound and automatically get the new UVs in a non destructive manner.
  •  animator writes a new USD file containing animated point positions only which shot artist needs: the shot artist will simply layer this animated P only cache in Multiverse Compound and automatically get the new animation on top of the older one or on top of a T-Pose in a non destructive manner.
  • layout writes a new USD file containing animated transform positions only which scene assembly artist needs… 
  • etc.

Static / Animated Assets

Using the Time Settings you can either write:

  • a static asset — This is a single USD file, with a single frame containing a single  “sample” of data (at the current frame in Maya) which will persist through time.
  • an animated asset — This is a single USD file, with multiple frames (for a frame range you can specify) each containing either a single “sample” of data per frame, or multiple “samples” of data per frame.