Autodesk Maya¶
Overview¶
The NVIDIA Omniverse™ Maya Connector Plug-In offers a robust toolkit for Maya Users to send and live sync their model data to an Omniverse Nucleus. This not only gives Maya users a first class renderer through Omniverse View or Omniverse Create but also the ability to open, edit and sync with any application supporting Omniverse Connect. Now, depending on the use case, Maya users can choose the workflows and pipelines that work best for their needs while maintaining up to date revisions for all downstream consumers of their work.
Package Files: Tutorial Package
Supported Versions¶
The Omniverse Maya connector supports the following versions of Maya.
Version |
Windows |
Linux CentoOS |
Linux Ubuntu |
USD Python Bindings |
Arnold |
---|---|---|---|---|---|
2019.x |
Yes
|
Yes
|
No
|
Python 2.7
|
6.0.3.0
|
2020.x |
Yes
|
Yes
|
No
|
Python 2.7
|
6.0.3.0
|
2022 |
Yes
|
Yes
|
No
|
Python 2.7 & 3.0
|
7.0
|
2023 |
Yes
|
Yes
|
No
|
Python 3.0
|
7.1
|
Note
Known Limitation - Other USD plugins must be uninstalled for Omniverse Maya Connector to function properly. For Maya 2023, Bifrost must also be disabled for compatibility.
Install Instructions¶
Please see Launcher Documentation for Installing Connectors.
User Interface¶
Signing-In¶
Once the plug-in is installed, users must sign into an Omniverse server. Users can do so from two places in the Maya plug-in:

Connections are made to Omniverse via the connection dialog.

Users can take 2 routs to the connection window. 1. From the Omniverse Main Menu drop-down users can go directly to the connect menu. 2. From the Omniverse Shelf you can quickly get to the connect menu.
Menu Items |
Action |
---|---|
Username |
Your Omniverse Username
|
Server Information |
The address to your Omniverse Nucleus
|
Note
The server address field will store and auto-populate known recent servers.
After the NVIDIA Omniverse™ Maya Connector Plug-In has been loaded and signed in to, users can now Live Sync, Open Omniverse Nucleus / Local USD files, and Export USD files to your Omniverse Nucleus.
USD Export File Browser¶
Exporting files from Maya is done through the Export File Dialog.

Ref# |
Menu Items |
Action |
---|---|---|
1 |
Navigation |
Breadcrumbs: Displays the path to the current directory or file the user
has selected. Users can select any part of the existing path
Add Folder: Adds a new folder in your current directory
Search Bar: Contextual search
Directory Browser: Directory list
|
2 |
Export Type Dropdown |
Allows selection of Asset Type
Prop: Standard Static Asset
Prop Animation Clip: Simple translational Animations (.anim.usd)
Skeletal Mesh: A mesh containing skinning information and joints. (.skel.usd)
Skeletal Animation: A mesh containing joint animation and skin clusters. (.skelanim.usd)
Animated Point Cache: Animated “point clouds” (.cache.usd)
|
3 |
Export Options |
Selects what to export
All: Exports everything in the scene
Select: Exports everything selected in the current scene
Sets: Select sets in Maya can be used as an export selection type
Default Prim: Sets the Default Prim of the exported USD, defaults to “World”
Export Visible Only: Exports only visible nodes in combination with the current export selection
Use Animation: Includes animation sequence in export
Enabled: Will Export Animation from timeline
Start Frame: First frame to be exported
from the animation sequence
End Frame: Last frame to include in the export
Step: Allows skipping of frames, use 1 for all frames
Normalize Skin Weights: Transforms the weights
Include Instances : Defines how to handle Maya asset instances on export
None: Do not export instances.
On: Export the Maya scene with instances and maintain the scene hierarchy as is in Maya
On with Hydra: Export the Maya scene with instance structure compatible with Hydra renderer. This may add extra xforms.
Include MDL: Will include all MDLs referenced in the file
Default : Uses global core material path and copies custom materials to user defined directory.
Include Dependencies : Copies all referenced materials to user defined directory.
USD Preview Surface: Will generate a USD Preview Surface and bake textures for export.
Include Cameras: Exports cameras in the scene.
Include Lights: Exports supported lights. see note below.
Up Axis: Allows control over facing direction.
File Operations: Batch Export: Will export each first level node as a unique USD file. Exported files will be re composed into a new by either a Payload or Reference.
Save Maya: Stores a copy of the Maya file on the Omniverse Nucleus
|
4 |
Processing |
Pre Export Script MEL: Runs any scripted functions on scene prior to export.
Post Export Script MEL: Runs any scripted functions on scene after to export.
|
5 |
Additional Exported Files |
Lists all associated files included in the export
|
6 |
Checkpoint |
Creates a checkpoint and optional description. ( for compatible servers only )
|
7 |
File information |
File Name: The name you want the file to be.
File Type: Lists available export types. (See Note Below)
Export: Exports with chosen settings.
Cancel: Cancels the Export
|
Note
You can export to USDA (Ascii) format by hard typing the extension .usda on export if exporting to a local drive (not an omniverse server).
Exporting With Maya¶
Open and Import USD Browsers¶
The open and import USD function allows users to open USD content directly into MAYA.
The import USD function allows users to import USD and merge it with the currently opened USD file.
Options¶

Ref # |
Option |
Result |
---|---|---|
1 |
Open Materials |
Check to import materials. If Unchecked Materials will be ignored. |
2 |
Prefer Material Type |
Choose the render context for loading and displaying Materials in Maya. MDL: Imported materials will display using MDL. Preview Surface: Imported materials will display using USD Preview Surfaces. |
3 |
Import Lights As |
Choose how lights should be imported. Maya: Imported Lights will be converted to Maya Standard Lights. Arnold: Imported Lights will be converted to Maya Arnold Lights. |
4 |
Object Name Collision |
Choose what to do if there are naming conflicts with Imported Objects. Overwrite: Replace the existing object if in conflict. Skip: Keep the original and discard imported objects if name conflict exists. Modify: Adjusts names of imported object to avoid name conflicts. |
5 |
Material Name Collision |
Choose what to do if there are naming conflicts with Imported Objects. Overwrite: Replace existing materials if in conflict. Skip: Keep the original and discard imported materials if in conflict. Modify: Adjusts names of imported materials to avoid name conflict. |
Omniverse Shelf¶
Added in 100.1
The Omniverse Shelf allows connectivity and quick access to important Omniverse Functions.

Ref# |
Option |
Result |
---|---|---|
1 |
Connect to Omniverse
- Add Connection
- Disconnect All
|
Connect to an Omniverse Nucleus
Allows Additional Omniverse Servers to be added to your server connection list.
Disconnects Maya from all connected Nucleus servers.
|
2 |
Open USD
|
Opens a USD file locally or on a Nucleus
|
3 |
Save USD
|
Save the current USD file.
|
4 |
Import USD
|
Imports a USD file into your current project.
|
5 |
Export USD
- Export All
- Export Selected
|
Exports current project file as a USD.
Exports current project file as a USD.
Exports the current selection of assets as a USD.
|
6 |
Share USD
|
Copies the location of the USD Files, if on nucleus, this link is shareable with other permitted nucleus users.
|
7 |
Live Sync
- Live Sync All
- Live Sync Excluding Materials
- Link Maya to USD file
|
Enables real-time “live” editing.
Enables real-time “live” editing.
Enables real-time “live” editing but DOES NOT update materials.
Links the currently opened scene with a USD file. See Using the Connect USD tool in Maya (Video) for more information.
|
8 |
Create Variants
|
Creates a USD Variant container. See USD Variants in Maya for details.
|
9 |
Plugin Settings
|
Opens the Omniverse Plugin Settings Panel. See USD Variants in Maya for details.
|
10 |
Help
|
Links to this documentation.
|
11 |
About
|
Version and Technical Information about the Plugin.
|
Note
Connect, Export and Live Sync have additional options are in the right click menu.
Omniverse Settings¶
The Omniverse Settings Panel allows access to some optional settings and features.
General Settings¶

Ref# |
Option |
Result |
---|---|---|
1 |
Auto Sign In on Startup |
Signs into previous omniverse connection automatically
|
2 |
Echo Feedback |
Messages and alerts from a nucleus server will be reported in the script editor.
|
3 |
Object Export Path |
Folder Name / Relative Path Option to allow customization of output organization.
Used when exporting assets with the option “split into multiple files”.
|
4 |
Native Light Conversion Scale |
Allows Native Maya light power to be adjusted upon conversion.
|
5 |
Arnold Light Conversion Scale |
Allows Arnold Light power to be adjusted upon conversion.
|
6 |
Destination MDL path |
If un-altered (blank by default) the Destination path will always be the location of the exported
USD file. You can however “hard-code” a common directory where you want ALL exported USD’s to store their MDLs.
|
7 |
Material Template Search Paths: |
If you or your organization have created specialized BASE MDLs, you can select their paths here. Templates and Collections
|
8 |
Material Collection Search Paths: |
If you or your organization has created Variants based on BASE MDLs you can select their locations here. Templates and Collections
|
Live Settings¶

Option |
Result |
---|---|
Selection Mode |
Defines the set of objects that are Live-Update connected
|
Live Transform Edits |
If enabled, transform changes are Live updated
|
Live Material Edits |
If enabled, material edits/assignments are Live updated
|
Live Camera Edits |
If enabled, Camera transforms and parameters are Live updated
|
Live Light Edits |
If enabled, Light transforms and parameters are Live updated
|
Live Timeline Edits |
If enabled, scrubbing the timeline in 3dsMax will send the current frame as the USD file during Live update
|
Live Modeling |
If enabled, modeling changes will be sent during Live Update
|
Usage¶
Connect USD¶
If for any reason a Maya file becomes “detached” with its USD counterpart, it can be very convenient to simply reconnect your local Maya file to its Omniverse USD counterpart and begin live editing. This is where the Connect USD button comes in handy. Avoiding the need to re-Export, this can be very useful for large and imposing datasets however it requires BOTH the Local Maya file AND the Omniverse USD to be in parity.
Using the Connect USD tool in Maya (Video)¶
USD Variants in Maya¶
Maya variants allow for users to create and store variations for a given asset. This can be a very useful tool just in the context of Maya, but when brought to the omniverse can be leveraged in Apps such as View, Create and others.
Creating Variants in Maya¶
Open the Omniverse Panel or Omniverse Shelf to reveal Create Variants button.

Next, Select a name for the variant.

Note
Variant names should not contain spaces or special characters.
Once accepted, the variant container is created and its properties can be found in the properties panel. Notice the variants list is empty.

Now use the + icon above the variants list and select any objects or object hierarchies you want to be included as variants. If you make a mistake or wish to remove an object, use the X button remove a selection from the list.

Once complete, simply select a variant on the list to auto-hide non-selected variants on your list.

Exporting Variants¶
Once created, USD variants are part of the USD schema and are automatically included when exported to the Omniverse. See instructions within the Omniverse App you are using for instructions on how to exploit variants within the Omniverse.
Materials¶
Understanding MDLs¶
When working with the Omniverse, MDL’s are our shader descriptions. Several come pre-installed with your server and will auto-populate upon connecting however there are some specific things to understand about how Maya and MDL interact.
The object format for Omniverse is Pixar’s USD format. For more information on USD, see documentation here: Introduction to USD
MDLs cannot be directly edited in Maya (but can be created, added to your server and made available in Maya)
MDL materials have basic distilling for rendering into the Maya viewport however for true material feedback and rendering, view the asset in Omniverse Create.
MDL Settings in Maya¶
Working with MDLs is an important part of working on the Omniverse as MDL is the language used to describe shaders to Nucleus, Create and all Omniverse Connect tools. Luckily many/most users will not need to adjust the settings as they will typically find the BASE MDLs that come pre-installed with Omniverse are robust enough to handle 95% of all materials in the real word. However if you have special workflows, are interested in creating specialized shaders or have pre-configured collections you wish to use, the settings panel allows you the ability to adjust some of the ways we can find, use and implement MDL technology.
For more information and access to these settings, please see USD Variants in Maya
Templates and Collections¶
The distinction between a template and a collection is purely semantic. There is no technical difference as they are both a location where MDLs are stored. The distinction is only meant for organization in the Hypershade panel. You should try to adhere to this distinction however because it does in fact offer a bit of convenience to users.
Templates: These are BASE MDLs (Omniverse Shaders) that are either custom or are pre-installed on your Omniverse server. For example, Omni-PBR is a BASE MDL or Template. This BASE MDL can then be used to create a variety of materials like Red Metal, Black Plastic, Copper, Steel, etc.
Collections: Collections are generally created from BASE MDLs and are explicit variants or a BASE MDL. For example a user may wish to have a collection of pre-configured MDLs based on Omni-PBR like Red Metal, Black Plastic, Copper or Steel. The explicit variants can then be stored in a directory and are then considered a “Collection”.
Connecting MDL Templates and MDL Collections¶
MDL templates and collection search paths are simply locations where MDLs are stored on your Omniverse server. If you have access to or have created MDL templates/collections you can specify their paths to grant access to them in the Maya Hypershade Panel. You can designate these paths in Maya under Omniverse > Settings. You can add the paths by selecting the + button next to their respective headings and locating the directories on your Omniverse Nucleus.
Loading External MDL Templates and Collections (Video)¶
MDLs and The Hypershade¶
The Maya Hypershade Panel will be updated with MDL Materials installed with the Connector. From here you can choose from a variety of MDL material types to assign to you objects.

MDL Material Tab
MDL Material List

Select the MDL Tab to Reveal the MDL Material List.
Select the MDL Material Template.
Assign a Name for the Material
Once Created, the material will be displayed in the Scene Material List.
Graph will show the Material and properties can be edited as a normal material in Maya.
Selecting an MDL Material will allow you to edit the properties in the properties Panel like any other material in Maya.

Note
The structure of MDL materials can not be edited in Maya. They can however be created in Substance Designer or Hand Coded and added to your Omniverse Nucleus where they will populate your Maya Hypershade Panel.
Exporting MDLs to the Omniverse¶
There are 2 methods available to export your MDLs to the Omniverse.
Include MDL’s when Sending Model Data¶
The most common way to send MDLs is with your model data. Any MDL attached to a mesh can be automatically exported when you export, enable “Include MDL Files” in the export/sync dialogue. Materials are always included with Live workflow or Save USD.
Send MDLs Without Model Data¶
Users can send their MDLs directly to the Omniverse without sending model data if they choose.
Open the Hypershade Panel and locate an Omniverse MDL material.

Right Click on Any Omniverse MDL Material. Choose “Export MDL”

In the resulting File Browser, choose where you would like your MDL to be stored.

Once stored, this MDL can be applied in Omniverse Create, Omniverse View and other Omniverse Applications.
UDIM Materials¶
Added 2020.1 UDIM materials are supported through the use of a <UDIM>
token in a standard UDIM material sequence name (ie: my_mat_name.0001.jpg)

This sequence <UDIM>
token can be put into any Omniverse Material Texture Input slot (ie: OmniPBR, OmniGlass etc.)

Simply replace the number with <UDIM>
Note
If you want to expedite this process, the small button to the right of the file input can be used on any UDIM formatted material and it will auto insert the <UDIM> tag into your sequence.
Live Sync¶
Maya can live sync with Omniverse.
To live sync with Maya, turn on the Live toggle in on Omniverse shelf. When live sync session is enabled changed to the scene in Maya are sent to Omniverse as well as receives changes to the file from Omniverse.
When Live syncing a file, the most recent settings on the Export panel are honored. For example, if you had cameras and light toggled off and then then toggled on live sync with a USD file that has cameras and lights, then cameras and lights would not subscribe to live sync.
Note
Live is disabled if the target USD has animation or a different up axis than the Maya file.
Maya Live Sync with Skeletal Mesh¶
Lights¶
Lights are exported and converted to compatible USD Lights. When a USD file is opened, USD Lights are converted to Native Maya OR Arnold Lights. This is an option on the USD Open/Import dialogs.
Note
Not all parameters are mapped, only what is compatible with USDlux is converted.
Note
Intensity does not always convert accurately between Maya and USD
Here is the current list of support lights.
Light Group |
Light Type |
USD Light Type |
---|---|---|
Standard Lights |
Directional
Area
Point Light
Spot Light
Ambient Light
Volume Light
|
- PxrDistantLight
- PxrRectLight
- PxrSphereLight
- PxrSphereLight
- PxrEnvDayLight
- PxrAovLight
|
Arnold Lights |
Skydome Light
Area Light
|
- PxrDomeLight
- PxrRectLight
|
Rendering¶
Arnold - Scenes from Omniverse can be rendered with the Arnold renderer in cpu mode.
Note
Known Limitation - Arnold rendering is not supported with Arnold in gpu mode.
Point Cache¶
Prop + Vertex Cache¶
It is now possible to export a point cache that matches a static prop asset. This allows the actual point cache to be smaller in size.
To do this:
Start with a Maya file that has animation on it.
Export as a file type Prop
Export again, but this time as type Point Cache. Set the option Vertex Only to On.
In Create, add the prop as a layer, and then the vertex cache export as the next layer

Scripting¶
USD Python Binding¶
USD Python Bindings are available with the installation of the Maya Omniverse Connector.
Note
Known Limitation - Other USD plugins must be uninstalled for this to work.
Maya Plugin Script APIs¶
Loading the Plugin¶
Besides loading the Maya Omniverse plugin via the Plugin manager dialog, users can also load the plugin via this script.
loadPlugin "OmniverseMayaLoader.mll"
Connect to an Omniverse Server¶
Check Connection Status¶
int $nvConnect = `optionVar -q omniverse_connection_state`;
The omniverse_connection_state is a Maya option variable. You can remove it with the following command.
optionVar -remove omniverse_connection_state;
And you can modify it with this command
optionVar -iv omniverse_connection_state 1;
Note
Generally speaking, Users should use string or integer types for option variables as Maya does not use boolean variables.
OmniExtraCmd - clientLogLevel 0;
0 - Debug
1 - Verbose
2 - Inform
3 - Warning
4 - Error
Set User Name and Log in¶
To make sure that you log in to right server you can call the following script command step by step.
Set up user name:
optionVar -sv "omniverse_user_name_var" dduka;
Set up available servers¶
Creates a list of servers to connect to.
optionVar -sv omniverse_server_urls "localhost:3009;my-server:1234;my-other-server:4321"
Set Up Current Server¶
Set’s up the server you wish to log-in to.
optionVar -sw omniverse_server_url "my-server:1234";
Update Status¶
Make the relative UI showing correct status after log-in.
nvOmniUpdateConnectionMenu();
nvOmniUpdateConnectionUI();
Export USD¶
Export a USD to Omniverse
OmniExportCmd -file "/Example/Users/aatest/tt.usd";
Note
there is a prefix “/Omniverse” with the URL.
Setting up Export Mode types¶
Optional variables control how you export a scene. As an export can take form in various ways, you need turn on/off some variables before calling the export command.
Prop¶
optionVar -iv omniverse_export_objecttype 1;
Skeletal Mesh¶
optionVar -iv omniverse_export_objecttype 2;
Export/Live-Sync All¶
optionVar -iv omniverse_export_collectiontype 1;
Export/Live-Sync Selected¶
optionVar -iv omniverse_export_collectiontype 2;
Export/Live-Sync Visible¶
optionVar -iv omniverse_export_collectiontype 3;
Always Export GeomSubsets¶
optionVar -iv omni_always_export_geosubset 0;
optionVar -iv omni_always_export_geosubset 1;
Other exporting options:¶
Turn on “Use Animation”¶
optionVar -iv omniverse_export_useanimation 1;
Set Animation Start-Frame¶
optionVar -iv omniverse_export_ani_start 1;
Set Animation End-Frame¶
optionVar -iv omniverse_export_ani_end 200;
Set Animation step¶
optionVar -iv omniverse_export_ani_stride 1;
Normalize Animation range¶
This option renumbers the exported frame range starting from a given base number. It will also adjust the timecode of the usd file to reflect the range.
NormalizeFrameRangeOnExport -onflag true -basenumber 0;
Normalize Skin Weights¶
optionVar -iv omniverse_export_normalizeskinweights 1;
Bake Skin Bind position¶
optionVar -iv omniverse_skin_use_finalmesh 0;
Include MDL¶
optionVar -iv omniverse_export_includemdl 1;
Embedded MDL option¶
optionVar -iv omniverse_embed_materials 1;
Include Cameras¶
optionVar -iv omniverse_export_includecamera 1;
Include Lights¶
optionVar -iv omniverse_export_includelight 1;
Live Sync¶
For Live Sync, it cannot work with USD Animation on. So, you need run two script commands to turn it on.
optionVar -iv omniverse_export_useanimation 0; // turn off Use Animation
optionVar -iv omniverse_export_livesync 1; // turn on Live Sync
nvOmniUpdateConnectionUI(); // this is optional. But if you want to see right Live Sync checkbox status, you need call it.
Import USD¶
Imports a USD file on Omniverse
OmniImportCmd -file "/Omniverse/Users/aatest/tt.usd";
Note
there is a prefix “/Omniverse” to the URL.
List Command¶
List Command can be used to list the files and sub-folders in an Omniverse folder. The return value of this command is a string array which has data grouped by 3.
string $ffs[] = `OmniListCmd -la "/Omniverse/Users/aatest/"`;
Note
the string should end with ‘/’ as well as starts with the prefix ‘/Omniverse
Show File/Folder Name¶
Shows each folder/file full name
int $m = 0; for($m = 0; $m < 3; $m++) { int $idx = $m * 3; print ($ffs[$idx] + "\n");}
Show Folder/File Modify Date¶
int $m = 0; for($m = 0; $m < 3; $m++) { int $idx = $m * 3 + 1; print ($ffs[$idx] + "\n");}
Show Each Folder/File Author¶
int $m = 0; for($m = 0; $m < 3; $m++) { int $idx = $m * 3 + 2; print ($ffs[$idx] + "\n");}
Cache¶
Check Cache Status¶
maya.cmds.optionVar(q='OmniAuth_enableCaching')
Enable Caching¶
maya.mel.eval('OmniEnableCachingCmd -enable 1')
MDL Materials¶
Python Scripts relating to MDLs
List MDL Materials¶
Python Script to show all of MDL materials
import maya.cmds as cmds
mdls = cmds.mdlShaderCmd(q=True,listHyperShadeItems=True)
for module in mdls:
print module
Result
[u'adobe::annotations',
u'adobe::convert',
u'adobe::mtl',
......
u'Users::kkantiev::Hardskin_Test::t1OmniPbrTest',
u'Users::lileo::Maya::initialShadingGroup_lambert',
u'Users::lileo::Maya::lambert1']
Alternative List MDL¶
mdls = cmds.mdlShaderCmd(q=True,listHyperShadeItems=True)
Result .. code-block:: python
[u’L/Library/MDL/Base/OmniGlass/OmniGlass’, u’L/Library/MDL/Base/OmniPBR/OmniPBR’, u’L/Library/MDL/Base/OmniPBR_Opacity/OmniPBR_Opacity’]
Upgrade MDL Materials¶
Note
This feature will be deprecated in upcoming releases as it is not needed any longer. This tool specifically addresses a material change that was done from 2019.2 to 2019.3. The menu entry has been removed, however is still available as a MEL script command if needed.
nvOmniMenuUpgradeMaterials_command().
Record Time¶
Record Time of Server Connect and Load¶
maya.cmds.timer(s=True);
maya.mel.eval('optionVar -sv "omniverse_user_name_var" "my-user-name"')
maya.mel.eval('optionVar -sv "omniverse_server_url" "my-server:1234"')
maya.mel.eval('nvOmniMainConnectivity')
t = maya.cmds.timer(e=True);
print t
Record time to load templates¶
maya.cmds.timer(s=True);
maya.mel.eval('optionVar -sv "Omniverse_Library_Materials_Templates_SearchPaths" "/Omniverse/Library/Materials/Templates;"')
maya.mel.eval('syncMDLSearchPath')
t = maya.cmds.timer(e=True);
print t
Record time to load Collection¶
Collection Path is supported the same way as template path in plugin. So, there is should be no difference. But adding more path should cost more time.
maya.cmds.timer(s=True);
maya.mel.eval('optionVar -sv "Omniverse_Library_Materials_Collections_SearchPaths" "/Omniverse/Users/aatest/ani;"')
maya.mel.eval('syncMDLSearchPath')
t = maya.cmds.timer(e=True);
print t
Pick one file name¶
User may want to pick and get a file name without exporting or importing a USD. Here the things to do. You need define a mel function nvOmniPickCallback in which you define what you do with the file name. Now you can call mel function nvOmniPickAFile() to start the file pick dialog. Once you pick a file and close the dialog, nvOmniPickCallback is called.
global proc nvOmniPickCallback(string $filename)
{
print("nvOmniPickCallback " + $filename + "\n");
}
nvOmniPickCallback is read only. You may want to export a new USD. Then you can call nvOmniAddAFile(). And you also need define a call back function, nvOmniAddAFileCallback, to handle the file name.
global proc nvOmniAddAFileCallback(string $filename)
{
print("nvOmniAddAFileCallback " + $filename + "\n");
OmniExportCmd -file $filename;
}
Loading the Plug-In¶

Once the Maya Omniverse Plug-In is installed, navigate to the Plug-in Manager.
(Windows > Settings/Preferences > Plug-in Manager)
Look for OmniverseMayaLoader.mll and load/verify the plug-in is loaded/working. Select auto load if Maya should load this plug-in automatically.
Supported & Unsupported Features¶
Supported Features¶
USD¶
- Geometry
Static Meshes
Skeletal Meshes (usdSkel)
Animation
Point Cache
- Lights
Maya Native Lights
Arnold Lights
- Cameras
Maya Native Cameras
- Materials
MDL render context
USD Preview Surface render context
Instances
Model Variants
Other¶
Open, Import, and Export USD files
Save USD only saves the delta from the last state of the USD file, preserving the unchanged parts of the USD.
- Live Mode
Live Transforms
Live Edit Mesh
Cameras edits
Lights edits for supported types
Materials
- Animation
Pose Live: Pose a usdSkel while working in live mode.
Unsupported Features¶
USD¶
Load an animation clip only onto an existing open usd file
USD Layer control
USD Blend-Shape is limited support
Scope Nodes
Opening USD Point instance is not supported yet
Materials¶
Most common native materials are supported on export via Universal Material Map, however, not all material have targets.
MDL node editing is not supported
General¶
Configurable Export paths
Release Notes¶
103.3¶
Added Support for Maya 2023
Client Library 1.17.5
Known Limitation - In Maya 2023, Bifrost now references USD, for 2023 only, Bifrost must be turned off to run the Maya Omniverse Connector. A future release of the Maya Omniverse Connector will have better compatibility.
NOTE - Maya 2019 support will be removed in Maya Omniverse Connector 104 and above.
103.2¶
Updated Client Library to 1.17.3
103.1¶
Updated Client Library to 1.17.2
Renamed export option “Split USD to Multiple Files” to “Batch Export”
Added Payloads as an option to Batch Export
Added Prevent Maya connector from installing if Maya is not detected.
Added Add post fix names to export.
Added tooltips to Omniverse dialogs through out.
Added command to normalize frames on export, example NormalizeFrameRangeOnExport -onflag true -basenumber 0; see :ref: maya_normalize_anim_range script reference.
Added Arnold 7 support
Fixed OM-43113 pivot issue when object had frozen transforms not at origin.
Fixed OM-30884 Crash with specific Skel Mesh asset
Fixed OM-42510 MDLs not honoring viewport texture control.
Fixed OM-42214 Camera filmback not exporting correctly
Fixed OM-41829 USD imported and Save USD command have unexpected result
Fixed OM-42323 Transforms are not saved on a group if group is not saved first.
102.4¶
Updated Client Library to 1.16
Fixed OM-41919 Parameters not showing up for MDL
Fixed OM-41973 Material Parameters do not export from referenced Maya
Fixed OM-42012 Textures not exported from FBX Material
Fixed OM-37426 Renaming Material Live doesn’t replicate
Fixed OM-41791 Adding Material to scene in Create causes mesh to disappear (related to instances)
Fixed OM-38538 After losing connection fo server during Live, Maya doesn’t reconnect.
Fixed OM-41697 Resetting Light value to default from Create Duplicates in Maya
102.3¶
No longer support Maya 2018
Added Animated Point Cache export option, Vertex Only. See documentation here.
Added Live Update options on Setting panel
Added Blendshape support for export type Skelmesh Animation Clip
Added checkpoint of auxiliary files
Improved Live Update performance with timeline scrub, and transforming objects
Updates are now on Mouse Release
Improved material conversion feedback
Improved usdSkel processing
Improved material handling for dds textures
Updated Prop vs Skelmesh export. Skinned meshes should be exported as type SkelMesh now.
Updated Core Materials
Fixed OM-37227 MDL Links broken
Fixed OM-39093 Render results do not match Arnold
Fixed OM-34496 Crash if export with name “light shape” or “camera shape”
Fixed OM-34609 Checkpoint Texture not usable in Maya
Fixed OM-37142 Omnisurface materials do not render in Arnold
Fixed OM-38668 Materials do not replicate until reapplied
Fixed OM-37267 Progress bar goes away while files are still being uploaded
Fixed OM-37383 Export core materials map fail with include dependencies
Fixed OM-38534 During Live update, assigning existing materials do not replicate
Fixed OM-38708 Light not creating in Live
Fixed OM-38727 Maya did not receive delete events from Create
Fixed OM-39089 text color not being applied
Fixed OM-39091 Assigning gold preset gets stuck
Fixed OM-39319 Pathing textures to non existent folder
Fixed OM-39320 Grouping instances creates erratic behavior
Fixed OM-39440 Doesn’t export texture files when re-exporting usda
Fixed OM-40378 Timeline Scrub with skelmesh causes prim type to be lost and geo to disappear
Fixed OM-30555 Live move of variant causes undesired duplicate
Fixed OM-26734 Exporting large scene and then re-opening causes crash
Fixed OM-35479 Making hierarchy changes by grouping and parenting have unexpected results
Fixed OM-33529 UDIM maps are visible in the viewport based on sequence
Fixed OM-34305 On file i/o operations, Maya should respect visibility flag
Fixed OM-34329 Deleting objects causes live sync to stop in second applied
Fixed OM-35456 Viewport freezes during live sync to Create
Fixed OM-36715 Fail to load UV sets on assets containing more that one
Fixed OM-37219 Skel Anim Clip export does not work with out Default Prim specified
Fixed OM-37382 Live edit with Create, changing texture from TIF to PNG doesn’t update in Create
Fixed OM-37420 Saving to read only location, user is not alerted
Fixed OM-37562 Selecting MDL shader removes previously made material
Fixed OM-14929 texture files attributes not registered in file path editor
Fixed OM-38434 Instancing Object while live in Maya doesn’t replicate to Create
Fixed OM-39328 Import file with MDL loses MDL Connections
Fixed OM-40619 In Live Edit, RGB values don’t always replicate 1:1
Fixed OM-41016 Point Cache doesn’t export for file with blend shapes
Fixed OM-36017 Open Point cache has wrong framerate
Fixed OM-41479 during Live Sync making an instance of an xform with a mesh child causes Maya to crash
102.2.3¶
Add Client Log Level script command OmniExtraCmd - clientLogLevel
Add Upload & download status to log file
Fixed bug exporting OmniSurface Preset materials
Fixed Crash on Marbles scene
Fixed OM-29272 Reexport of an existing USD broke some materials
Fixed OM-30555 Live object move with Variant caused duplicate
Fixed OM-34879 fix and set plug registration for Linux
Fixed OM-35172 UDIMs do not export for specific file
Fixed OM-35381 Variants has unexpected behavior on Export and Live
Fixed OM-35396 Export selected have wrong skeletal errors
Fixed OM-35428 Linux Connector won’t load USD Preview Surface
Fixed OM-30555 Live object moved caused undesired duplicate
Fixed OM-34558 Variant Crashed on Export
Fixed OM-34934 Exported incorrect inbetween blendshapes
Fixed OM-35381 Variant had incorrect visibility
Fixed OM-35462 Linux MDL templates and collections fail to load
Fixed OM-35546 CentOS MDLs fail to export to disc
Fixed OM-35548 CentOS MDLs are not immediately visible in Hypershade
Fixed OM-35956 Materials don’t load from Blender export
Fixed OM-36009 stage hierarchy wrong on load
Fixed OM-36520 Save USD didn’t save upaxis change
Fixed OM-36559 UV’s are broken for some assets
Fixed OM-36066 Export Selected Exported ALL material
Fixed OM-36070 Live object move doesn’t submit to server
Improved Export Selected with type Skel Mesh - Now selecting a bound mesh will automatically pick up the joints, eliminating the need to select the joints manually
Improved Animation Clip export by removing unused options
Improved support for the Create MDL Graph
Updated UMM and license
Updated test cases
Updated Client Library and Client Wait call
Updated Core material Library
102.1¶
Added Maya 2022 support. Must unload other USD plugs first.
Added Arnold 6.2 support for Maya 2020 / 2022
Added auto skel root generation for files that don’t meet usdSkel requirements
Added scripted export options for Skin bind position.
Added USD Python Bindings, using Python 2.7, + USD 3 for Maya 2022. ( Other usd plug ins must be completely uninstalled to not have a conflict)
Added initial support for materials created by Create Material Editor / USD Shade
Added Checkpoint support ( replaced Snapshots), for supported servers
Added OmniSurface materials to Core MDL materials
Improved Material Export support
Improved instance Export
Improved Live Sync
Improved resolving default prims on import USD
Improved icons on the Omniverse Shelf
Fixed animation transforms if animation is exported at a different up axis than the source.
Fixed an Omniverse Connection issue
Fixed Default Prim when export a Prop Animation Clip
Fixed a variety of Windows and Linux specific Bugs
Changed Export Option - Normalize Skin removed from UI and default to on. Script command available to control it.
Changed Export Option - Embedded MDL removed from UI and default to on. Script command available to control it.
101.1¶
Added - Universal Material Map framework for exporting native Maya material to MDL
Various bug fixes
Updated client library and core material library
100.3.0¶
Added - When Glass material is applied to objects, USD is written with a flag for it to not cast shadows when loaded in Create/View
Fixed - Bug where Live sync could cause incorrect light properties or double lights in some case
Fixed - Bug where not all Live material changes were received in Maya
Fixed - Bug where viewport would not update in some cases until MDL attributes were touched
Improved Plug in Installation
Improved loading of samples
100.1.26¶
Save USD - Save the delta of the open USD file
Import USD - Merges usd files together
USD Preview Surface - Improved by opening USD preview Surface via render context on Open USD
Model Variants Added
Replaced Omniverse Panel with Omniverse Shelf
Moved documents storage to Users/Omniverse/Maya. previously was Users/.omniverse/Maya
Improved Instance handling - Can now write out instances based on Hydra compatibility or not
Optimize texture uploading
Support USD files with indexed normals
Upgrade Client Library
Upgrade Core materials
2020.2.2 Hotfix¶
- Client Library Updated
Fixed a bug that would sometimes (very rarely) cause data loss.
2020.2 Hotfix¶
- Client Library Updated
Fixed a bug that would sometimes (very rarely) cause data loss if you got a disconnect while uploading a file.
Fixed a bug that would fail to download a file if it was an exact multiple of 1MB
Fix to some live mode bugs caused by generating dif on usd open
New sign in dialog removes username field
2020.2 Point Release¶
File Support¶
Export local files with native Maya file browser
Animation¶
Skin Bind improvements
Animation curve filtering improvements on USD Open
Materials¶
Material stability improvements
Render MDL with UDIM in Maya viewport
Updated Omniverse Core Materials
Export MDL Materials from hypershade as .mdl
Lighting¶
Exposed Light conversion algorithm
Other¶
Set mel script functions on Pre and Post export
Customize Default Prim on Export
Export Visible option improved
2020.1 Point Release¶
General¶
Performance improvements
General UX improvements
Support for Omniverse read only Mounts
Materials¶
Upgraded MDL handling. This is a breaking change for files authored in older versions of the plug in. This change allows materials to be saved into the Maya file offline and allows for cleaner forward looking upgrades. uisers of old file can upgrade their materials from the main menu/Omniverse/Upgrade Materials
MDL materials can be embedded inside USD files eliminating floating mdl files as an option.
Bug fixes¶
A variety of bug fixes with materials to enable a more robust experience
UDIM export/import for Omniverse materials. Known limitation these will not render in Maya viewport.
Improved USD Preview Surface handling
Sub Divided Surface support with creasing
Arnold CPU support for Maya 2020
Animation¶
Animations clips exported as overs
Soup morph target support, if Soup is also installed
Lights¶
Arnold Sky Light support
Exposed Light conversion scale in settings
New namespace handling options
2019.2¶
General¶
Supported versions of Maya
Windows
Maya 2018.0, 2018.3, 2018.4, 2018.5
Maya 2019.0
Linux CentOS 7
Maya 2018.3
Maya 2019.0
Polished up UX with more meaningful naming for export types and options
Export options moved to Export browser, this are initiated by export from menu and Omniverse Panel
Omniverse snapshot on Export.
Snapshots can be filled in on export from Maya through the export panel.
Supports exporting to Y and Z up axis.
Namespaces are stripped on USD export,
�:� are replaced by _�
Maya Cache is moved to users…/.omniverse/Maya
Display folders in Omniverse file browsers
Added USD file options to Omniverse Panel
Added Settings Panel
Enable cache moved here.
Informs users of mdl search paths
Materials and MDL¶
Material Type change menu added
Maya native materials are mapped to OmniBasic.mdl on export
Load USD files with material assignments from Ov servers
Textures are not downloaded from Omniverse on demand, previously they were all downloaded upfront
MDL warning moved to script editor instead of pop up window
Material attribute changes, Live out is supported
Export option for MDL absolute/relative
Copy MDL template to location
Live¶
Support scrubbing the timeline for live update
Material assignment changes
Material value changes
Camera(See below)
Lights (See below)
USD Skel joint poses (See below)
Light Support¶
Lights are mapped to USD Lux lights.
Native Area, Spot, Point, and Directional lights are supported.
Arnold Area Light is supported.
Exported Lights map to USD Lux light and can be opened in Create.
Imported Lights - when opening a USD Stage, supported lights are mapped to Maya /Arnold Lights
Area Light is determined by preference on settings panel.
Live Sync is bi-directional for transform and supported attributes. In Maya male sure Live and include Lights is enabled.
Camera Support¶
Cameras are mapped to USD cameras
With the exception of Perspective, and Orthographic cameras, these are not synced
Import and Export of camera attributes that are supported
Live Sync is bi-directional for transform and supported attributes. In Maya male sure Live and include cameras is enabled.
USD Skel Export Support¶
Skeletal Mesh export type option is of USDskel.
Checks if scene is set up and compatible with USD Skel
Normalize Skin Weights for USDSkel added
Animation export
Live Skel pose update
Local Workflow¶
Local USD
Open Local USD
Save to Local Drive
Limitation - Materials still require being connected to server.
Local MDL
Hypershade import an mdl from you local disk to Hypershade
Limitation - Exported materials based off this will not work on server because template is being copied to server. Therefore feature might be pulled from release if the follow up stories don’t pan out.
Roadmap¶
Future features we are currently thinking about are as follows and in no particular order.
Payloads
Improved Light support
Refined collaboration with other Omniverse Tools
Python pre and post script support
File meta data
Refine Animation toolset and support