Skip to content

AL_USDMaya and pxrUSDMaya Feature Sets

Eoin Murphy edited this page Aug 7, 2019 · 2 revisions

This is heavily biased towards AL_USDMaya - someone with deeper knowledge of the Pixar plugin should add more detail here

Standalone Utility Libraries

Feature Feature Detail Notes Future?
Utilities
Event System used heavily by USDMaya
MayaTest
Test framework used heavily by USDMaya see docs
Maya Utilities We could probably extract these to a new AL OSS Library? (need to think how this would work
Common macros for shortening the amount of boilerplate code we need
CommandGuiHelper Automatically generate a simple UI from MpxCommands
DGNodeHelper get/set types on DG Nodes
FileTranslatorBase macros and templates to help automate the boiler plate setup of Maya import/export plugins
MenuBuilder generate Menu entries for an entire Plugin
NodeHelper various utility functions for adding static/dynamic attributes to an MpxNode
USD Utilities This lib is probably too small to exist on it's own
DiffCore diffing utilities
SIMD
USD+Maya Utilities
USD to Maya Diffing, Conversion, Attribute Manipulation

Import/Export to File

Feature Feature Detail AL_USD PxrUSD Notes Future Support
Export to File Priority #1 for ADSK plugin?
Transforms yes yes
Camera yes yes
General
Duplicate Instances yes yes see AL_USDMaya docs
Merging Transforms yes yes see AL_USDMaya docs
Time Samples yes needs investigation pxr seems to have no compression flags
Frame Samples / Sub-Frame Export yes yes see AL_USDMaya docs
Animated Visibility yes yes
Instancing yes yes
Dynamic Attributes yes yes
Metadata / extra attrs yes yes
Lights no yes Pixar only supports RfM Lights. AL todo: Include Reference Translator for Maya Lights
Mesh
UVs yes needs investigation pxr seems to have no compression flags
Topology and Point Positions yes yes
Varying Topology no yes
Indexed UVs yes yes
Color Sets (by default RGBA and faceVarying) yes yes AL_USD requires colorSet to be called displayColor ( displayOpacity is also supported ). See AL_USDMaya docs. pxrUSD has the same displayColor set requirement, however it handled the missing 'flood data' elegantly. multiple colorSets have not been tested yet*
Subdivision Edge and Vertex Creases yes yes
NurbsSurface no yes
NurbsCurve yes yes Note: Not currently renderable in Hydra
BasisCurve no no Note: Renderable in Hydra
Particles no yes OriginalForce may be adding support in AL_USDMaya? (eoinm)
Shaders yes yes (RfmShaders) via ExtraData Plugin
Skin/Joints no yes PxrUsd has basic USDSkel support
Import from File Priority #1 for ADSK plugin?
Lights yes yes PxrUsd only supports RfM Lights, AL_USD has reference DistantLight importer
Supported Animation yes yes through time1 connection
"AlembicMaya" style Animated Geometry Cache yes yes see docs
Load Part of Stage yes yes yes, each plug-in has it's own way of importing 'fast' (ie: proxyShape), then diving down into transforms to interact with / update the usd stage (visible in the viewport )
Shaders no yes PxrUsd only supports RfM Shaders
Custom Shapes, Transforms yes - enumerate special features ?

Extension Points

Feature AL_USD PxrUSD Notes Future Support
UsdAdaptor no yes The rationale behind this was to make it easier to adapt an existing UsdSchema into and out of Maya. It's not something user-facing.. rather, if you're writing tools/scripts to work with data, this would help transfer data between Usd and Maya in a consistent manner.
Custom Blind Data no yes If a maya node has some extra "user" attribute that we want to export, the "User Exported Attributes" interface helps with this. It lets users tag nodes and get them exporting to Usd. Users can choose to export as normal attributes, or primvars
Chasers no yes This is similar to the "post-export" jobs that some other file format plugins have.
Extra Data Plugins yes no see https://github.com/AnimalLogic/AL_USDMaya/blob/master/docs/extraDataTranslatorPlugins.md
Events yes no https://github.com/AnimalLogic/AL_USDMaya/blob/master/docs/events.md to the existing events documentation

Interactive Workflows (Proxy Shape)

Feature Type Feature Description AL_USD PxrUSD Notes Future Support
Hydra Integration
Hydra GL Support yes, via USDImaging yes, via custom code Path (optimised for multiple shapes) Consolidate
Support other Hydra Render Delegates yes ?
Selection
Partial Stage Selection yes yes
VP2 Selection of Stage yes no/ip see AL_USDMaya PR
UFE Selection yes see PR
VP2 Selection from Stage to Outliner yes under investigation AL_USD has extra selection management going on, and hooks into it's ProxyShapeImportTransforms command. PxrUSD selection ( back to native dag nodes of some form) might not be possible this is being investigated
Live/Interactive Workflows
Constraint Based Workflows yes limited AL_USD has bi-directional constraint support, including access to constrain to individual elements of the USD Stage. PxrUSD has limitations due to the Assembly node and not having 'connect to prim' capability (out-of-the-box, might be possible through scripting and such )
Interface with Native USD no* no* not natively, but through custom commands / plugins ( pxrUsdReferenceAssembly or AL_usdmaya_Transforms or a proxyShape node to each USD Stage )
Variant Switching yes no A
Variant Switching of MayaReferences yes no AL_USD has a schema for MayaReferences to allow to switch out to rig representations.
Selective Translation USD to Maya yes no Can select prim hierarchy in USD, translate to Maya
Selective Translation Maya to USD yes no Can select USD translated data in Maya, modify, Translate Back. This is a key feature, and very powerful. It does a diff of the converted maya data to work out what's changed, so "overs" can be generated
"Live" Maya Nodes yes no AL_USDMaya uses maya's "storage=internal" to allow creation Cameras, Lights and other MPxNodes which directly drive a USD equivalent, storing values in USD
Layer-based Workflows
Layer Management yes no AL_USD serializes 'live layer data' so when artist re-opens maya session it opens the usd stage, then your local edits. Once task is complete, layer can be saved out and merged back to the usd stage/file ). PxrUSD seems to require full import / export from usd -> maya nodes, which can impact Maya performance