C++ Mathematica CMake Python Other
Clone or download
Failed to load latest commit information.
cmake Updated cmake files (removed unused) Jun 13, 2018
docker Refactored to seperate code into 'layers' of source code Feb 9, 2018
docs address robs comments Jul 5, 2018
doxygen Removed Qt dependency Apr 30, 2018
lib Manually bump up patch version in Version.h Jul 10, 2018
mayautils fixed up build warnings in opensource build Jul 5, 2018
plugin fixed up build warnings in opensource build Jul 5, 2018
samples Initial commit Jul 28, 2017
schemas Add ALFrameRange openSource schema Jul 10, 2018
translators Add test for the fix for over-decref transform chain issue Jul 10, 2018
tutorials Add ALFrameRange tutorial Jul 10, 2018
usdmayautils fixed a number of build wanrings on the OSS linux build Jun 19, 2018
usdutils fixed a number of build wanrings on the OSS linux build Jun 19, 2018
utils allowed certain event types (those with Text Name ID) to have callbac… Jul 5, 2018
.gitignore Initial commit Jul 28, 2017
ALUsdMayaConfig.cmake.in Initial commit Jul 28, 2017
AL_USDMaya_Corporate_CLA.pdf Initial commit Jul 28, 2017
AL_USDMaya_Individual_CLA.pdf Initial commit Jul 28, 2017
CHANGELOG.md Update change log Jul 10, 2018
CMakeLists.txt Warnings as errors (Windows build) Jul 5, 2018
LICENSE.txt Initial commit Jul 28, 2017
NOTICE.txt Initial commit Jul 28, 2017
PULL_REQUEST_TEMPLATE.md Update oss PR template Jan 14, 2018
README.md Updated Animation Video link Aug 14, 2018
build_docker_centos6.sh Dockerfile updates and internal build automation. Aug 28, 2017
build_docker_centos7.sh Initial commit Jul 28, 2017
build_lib.sh Initial commit Jul 28, 2017
setup_environment.sh Initial commit Jul 28, 2017


What is AL_USDMaya?

Represent Maya data in Maya, and USD data in USD - for example, we use AL_USDMaya to allow native Maya entities such as complex maya referenced rigs (and other assets not easily represented in USD) to be embedded in USD scenes and imported into Maya in their native form. The plugin maintains a "live" connection between the USD and Maya scene, and can respond to various events, keeping the Maya and USD scenes in sync. This affords a dynamic user experience which allows artists to swap in and out different representations of objects in their scene (e.g Rigs for Geometry Caches, different levels of detail etc). Additionally, heavyweight scene elements such as sets/crowds can be represented in OpenGL in the Maya viewport, and manipulated either with USD or Maya tools and UI components.


Why did we need an alternative USD Maya Bridge to the USDMaya plugin that comes with USD?

Pixar's USDMaya plugin was originally designed for quite a specific (Set Dressing) workflow using Maya's Scene Assembly Feature. Maya is our most important DCC app, and while, like in the Pixar plugin, we try and avoid representing most of our data (particularly large and complex things) in the Maya native data model, we do use it as the hub of our Scene Building and artist workflow - our Layout Artists, Animators, Set Dressers and Lighters work mostly in Maya, so it made sense to try and implement something that was more tailored to the way we work at Animal Logic. We played with the idea of modifying/forking the existing Pixar USDMaya, but in the end we diverged so much that it didn't make sense. In the end, we think the two plugins complement each other.


We have a google group for discussion and technical assistance: https://groups.google.com/forum/#!forum/al_usdmaya-discussion. For CLAs or to contact us directly, use email usdmaya@al.com.au.


We have some videos explaining some of the workflows we support. We are hoping to add to this as we go:

Detailed Documentation

Developer Documentation

Source code documentation

How is the repository layed out?

The important parts:

Location Description
lib The core AL_USDMaya Library
plugin maya plugin and test plugin
samples mixed bag of test inputs
schemas Schemas - Maya specific schemas for which we have translators
translators Reference Schema Translator Plugins
tutorials a few tutorials
utils For now just contains the event System (AL_EventSystem)
mayautils a library of code which depends on Maya only (AL_MayaUtils)
usdutils a library of code which depends on USD only
usdmayautils a library of code which depends on USD and Maya (AL_USDMayaUtils)


Package Library Folder Hierarchy Namespaces Major Dependencies
AL_EventSystem AL_EventSystem.so utils/AL/event AL::event
AL_MayaUtils AL_MayaUtils.so mayautils/AL/maya/utils AL::maya:utils Maya
AL_USDUtils AL_USDUtils.so usdutils/AL/usd/utils AL::usd::utils USD
AL_USDMayaUtils AL_USDMayaUtils.so usdmaya/AL/usdmaya/utils AL::usdmaya::utils USD, Maya

The core AL_USDMaya library

Best to have a look here but a quick summary here:

Location Description
lib/AL_USDMaya/AL/usdmaya/cmds Maya MpxCommands
lib/AL_USDMaya/AL/usdmaya/fileio File Import/Export code including some general purpose USD<->Maya interchange utilities e.g DGNodeTranslator DAGNodeTranslator
lib/AL_USDMaya/AL/usdmaya/nodes Maya MpxNodes such as the proxy Shape