USD Plugin for Maya: Fundamental Pillars

In the previous entry to this series, USD Plugin for Maya: An Overview , I talked a bit about what USD is, where it came from, why you want to be using it, its history in Maya, as well as our plans for its future in Maya. In this post, I will be discussing specifics on how we plan to deliver our vision for Maya USD and give you a sneak peek at our progress.


The Four Pillars of Maya USD

Identifying assembly and layout as our focus helps define our initial scope, but the task at hand remains large. We want to make sure we get it right. To execute, we chunked the work out into four main buckets.


Unify USD for Maya

The first bucket holds the tasks around unifying USD in Maya. That work began with our joint announcement at Siggraph 2018. At Siggraph 2019 Autodesk, Pixar, and Animal Logic, with the addition of Luma Pictures and Blue Sky Studios, delivered on the promise of the prior year’s announcement by opening the new open-sourced repo on GitHub that serves as the home for USD in Maya.


Will Telford, article - USD Plugin for Maya: Fundamental Pillars

This is the first time we're trying to ship production software using an open-source/collaborative development model. As part of our continued efforts to support and accelerate the adoption of open standards, we feel it’s important for us to take responsibility for the plugins formerly hosted by our friends, which will serve as a baseline for USD in Maya going forward. Our ultimate goal is to ensure a consistent yet modifiable way to use USD within Maya.

For this project, we have chosen to adopt the Academy Software Foundation Development model of using a Technical Steering Committee, or TSC. Autodesk, Pixar, Animal Logic, Luma Pictures, and Blue Sky Studios, in their role as TSC members, are tasked with repository management, helping to define our branching and merging strategies, as well as perform code reviews and testing. 

Visitors to the GitHub hosted Maya USD repository will notice that several branches currently exist. As development progresses, this branching model will look more traditional with feature branches and hotfixes.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

In the master branch, you will find copies of the Pixar plugin and Animal Logic plugin from their repositories. This branch is meant to set a very low bar for the adoption of the new repository for users coming from the two existing plugins. In fact, with Pixar's release of USD 19.11, they have deprecated support within their repository of their Maya plugin in favor of their plugin in the new Autodesk repository. Likewise, Animal Logic has stopped taking pull requests in their repository and is directing users to the new shared repository.

The sandbox branch contains a common translation framework proof of concept as well as VP2 support for USD data. The sandbox branch is in the process of being merged into the dev branch feature by feature. Upon the completion of that merge, future development should happen in the dev branch with stable releases being merged back in to master.

[Updated Feb. 28, 2020: The sandbox branch has been fully merged in to dev and deleted from the repository. Please refer to the dev branch moving forward.]


Bring USD into Maya

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

The second bucket, "bring USD into Maya", is all about the translators or rather, the import/export process. This work will let you take USD data on disk and import it as native Maya data in memory, or to take native Maya data in memory and export it to USD data on disk. This step allows existing USD pipelines to start using Maya to generate USD data right away. Above you can see a work-in-progress tree-view interface for performing selective import on USD data and below you can see an import in progress.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

Work with USD in Maya

With the third bucket, we want to enable you to "work with USD in Maya". This is where things start to get interesting. This is where we start to gain access to some of USD's power. This work provides the ability to reference in a USD stage and have it persist as USD data in memory. With this work, we can visualize USD right alongside Maya data in a natural native way in the viewport, in the outliner, and even in the attribute editor.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

In the image below, you can see the now-famous Pixar USD kitchen dataset. Looking in the Maya outliner, you can see the kitchen's hierarchy under a proxyShape, you can see the kitchen set drawn in the viewport, and in the attribute editor you can see the selected object's properties. The coffee cup on the counter is selected in the outliner and selection highlighting is shown in the viewport.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

There is no Maya data in this screenshot, it is pure USD, yet it feels natural and native to Maya. This means you get all the benefits of USD: the insanely fast load times, the fast playback , as well as the flexibility of Hydra. The viewport can now leverage Hydra to allow runtime switching between multiple hydra delegate backends.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

To further integrate the viewport experience we have implemented a Viewport 2 (VP2) Hydra render delegate which brings with it full-screen effects like depth of field, screen-space ambient occlusion, motion blur, and fog. This VP2 support means that USD data and Maya data can now co-exist seamlessly in the viewport and its editors.


Edit USD in Maya

The last bucket will enable you to "edit USD in Maya". This is where Maya becomes a complete tool for USD functionality. This is where we support native prim and layer editing. To do this, we are enabling editing for USD natively in the attribute editor, the outliner, and in the viewport using manipulators. In the image below you can see USD data being directly manipulated in Maya's VP2 viewport. All edits are made directly on the active USD layer.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

To fully support USD's system of layers, we are implementing a USD layer editor as well. Below you can see a work in progress design mockup for what that may look like.

Will Telford, article - USD Plugin for Maya: Fundamental Pillars

Wrapping Up

Maya USD is a game-changer and getting it right is a priority for Autodesk. We are working closely with Pixar (the creators of USD), countless industry partners and the open-source community at large. Come join us and make Maya USD the best that it can be. We can't wait for you to try it out and tell us what you think.


Resources

Tools
Maya
Maya
Industries
  • Animation
  • Creative Finishing
  • Game Development
  • VFX
  • Visualization

Keep exploring

Mar 8, 2022

Welcome to the All-New AREA by Autodesk

Article
Modeling Mkali

Apr 21, 2021

Modeling Mkali

Article
Get to know the artists | Phil Radford

Oct 15, 2021

Get to know the artists | Phil Radford

May 29, 2017

Boldly into virtual reality: The Molecule’s rise with VR

Jul 26, 2017

POV: The Mill's Boo Wong – ON VR

Article
POV: James Jensen's hyper-real vision for The VOID and the future

Oct 10, 2017

POV: James Jensen's hyper-real vision for The VOID and the future

Oct 20, 2017

Joel Pennington: How AR and VR impacts design

Article
POV: Nathaniel Dirksen on the breakneck pace of "visceral" VR

Nov 17, 2017

POV: Nathaniel Dirksen on the breakneck pace of "visceral" VR
© Copyright 2024 Autodesk Inc. All rights reserved