Tuesday, June 29th, 2010 Article by Leonard Teo

Product Focus: Maya 2011

I was recently approached by Autodesk to write a review of Maya 2011. I’m generally reluctant to write reviews because no matter how much a reviewer can say good (or bad) things about a software, it’s ultimately up to the individual to try it out and make an informed decision himself. I agreed only because I happened to be using Maya quite a bit at Gnomon and wanted to try the new release. That said, my “review” is more of a series of thoughts about the new release. By all means, I recommend that you head over to the Autodesk website to download a trial version of the software and make your own decision about it. If you’re a student, you may be eligible for a free 1 year license over at the Autodesk Education Community.

So, about Maya 2011. In a nutshell, this is a significant release. In fact, one of my realizations as I started writing this article is that there were so many new features that I couldn’t cover each one exhaustively. The 3D community seems to take Autodesk to task quite a bit for the lack of innovation, but I think that Maya 2011 is actually a significant step forward in terms of where the company can go with the software. Despite this, however, Maya 2011 in its current state (at the time of writing) does seem to be buggy enough that users (at least the ones that we speak to regularly and on the 3D Pro mailing list) are holding off implementing it in production. As these issues are resolved, I have no doubt that users will welcome to additions to the software and it will continue to be a mainstay in the industry.

The new Maya 2011 interface uses QT for all its widgets and UI elements. Thanks to Gnomon student Daniele Volpe for the scene.

Hologram head scene and animation produced by Gnomon student Daniele Volpe.

QT – Interface

Possibly the most recognizable “feature” of Maya 2011 is the “enhanced user interface”. In order to truly appreciate the significance of this, we need a short history on software development in our industry.

Back in the day when Alias|Wavefront made Maya 1.0 (released in 1998), the dominant professional computer graphics platform was the Silicon Graphics workstation, which ran the Irix operating system (a flavor of Unix). Microsoft owned Softimage and that development team was focused on delivering XSI on Windows NT (hence the name “XSI”, acronym for “DirectX SoftImage”). 3D Studio Max also hit the scene for Windows NT (former 3D Studio was on DOS).

At the time, companies generally bought “solutions” and they were expensive (it wasn’t unheard of to spend in excess of $50,000 for an SGI loaded up with 3D software), so the respective applications were built to run on specific platforms. Because each operating system has its own graphics and UI application programming interface (API), it can get quite complex to create a true cross-platform application that looks and feels the same across different operating systems. In fact, it goes beyond the UI. One has to consider the libraries and software architecture that the software is compiled on. For example, if you create an application on Windows, relying on the Microsoft Windows API, it would not be a trivial exercise to port that application over to another platform. Although some solutions exist such as running the software on a virtual machine or compiling against some libraries which attempt to translate the native function calls, these can be messy solutions (and also suffer performance degradation) as opposed to building a true, cross-platform application right from the start.

Writing a cross-platform application is not an impossible task. It’s just more complex because the code will be different for each platform that you want to support. If you want to support Windows, Linux and Mac OS X, you’d need to have native software libraries built specifically for each, and write common software components on abstracted layers (which need to be compiled natively on each platform). This is actually a LOT of work, which is why many applications that have a legacy of being single-platform, haven’t ended up being ported yet — it’s just far too much effort for the potential revenue gain (in fact, business-wise it may result in a loss).

Today, with the wide adoption of Mac OS X and studio insistence on continuing to use Linux, cross platform development is becoming more important than ever. Software is also much more affordable and accessible (free Maya for students, anyone?). The days of the high-end 3D solutions which came pre-installed on hardware seem to be over, and we’ve moved towards desktop, software-based solutions. It’s not unheard of that a user may have a Linux workstation at work, a Mac laptop on the go and a PC workstation at home, and want their software to run on all three platforms.

Enter, Qt (not to be confused with QuickTime). Qt is a cross-platform application and UI framework that is developed by Nokia. It provides a good set of C++ libraries that enable an application to be developed once, and deployed to multiple platforms such as OS X, Windows, Linux/X11, even mobile phones. In the past, languages such as Java have tried to be the “write once, deploy anywhere” solution and Java has made a lot of progress in the business world, but for high performance applications such as 3D, it’s preferable for the software to be compiled and run natively as opposed to running on a virtual machine. Qt is an amazing piece of technology because it gives developers who want to develop high performance software the ability to write once and deploy on multiple platforms natively.

So….why am I telling you all this? Because Maya now uses Qt. Basically, the UI has been replaced with a Qt UI. Autodesk has ensured that the user interaction remains the same, so if you already know Maya, it hasn’t really changed. It just means that there are many minor enhancements to the UI. As far as marketing is concerned, the new UI features have ended up quite understated, because it’s boring to say that Maya has a new color picker and file browser. The addition of Qt, however, is somewhat significant — the back-end of the user interface has been replaced, and this opens up a lot of exciting possibilities.

Maya 2011 Interface - New Hypershade and Color Picker

The user interface of Maya is generally built at run-time using MEL and Python commands that create the UI elements such as buttons, sliders, input fields, etc. Before Maya 2011, these user interface elements were implemented using platform-specific UI toolkits such as Motif (Linux) and Carbon (Mac OS X). Because Maya 2011 utilizes Qt, UI widgets are now implemented using Qt for all platforms, which ensures consistency and parity across the platforms. The “loadUI” command also offers the ability for developers to use the Qt Designer Tool to create a custom user interface and have it loaded in Maya.

What does this mean for artists? On a superficial level, the UI is much nicer to work with. You can now dock and undock menus. You can manually resize UI elements by dragging along their dotted edges (no more pressing bizarre “<<” and “>>” buttons to resize the channel box). It basically feels like it’s been updated to current UI standards.

The addition of Qt is a win-win-win situation. Artists get a better UI. Tools developers find it easier to build quality UI’s that are cross-platform. Autodesk developers have a 3rd party UI library that they don’t have to maintain, and can focus on features.

So…enough about Qt….

Better Integration with Mudbox

If you are using Mudbox 2011 (Autodesk wants you to), there is a nice workflow enhancement in the form of the menu item “Export selected to Mudbox…”, which performs a one click transfer of a mesh over to Mudbox for editing. Basically what it is doing behind the scenes is exporting an FBX file (Autodesk’s interop file format) which is loaded up in Mudbox. Mudbox 2011 has the same functionality to bring the object back into Maya.

Maya 2011 - Mudbox 2011 integration. One click will bring your model over to Mudbox...

After editing your model, one click will bring it back into Maya

Improved Skinning Workflow

For character rigging, one of the welcome improvements in Maya 2011 is the interactive skin bind mode. When binding a skeleton to geometry, selecting interactive skin bind gives you a volume manipulator for each bone. This enables you to quickly set up initial weights for the mesh.

Of note is also the inclusion of Dual-Quaternion skinning method on a smooth bind. The name might be somewhat scary (see if you can wrap your head around this Wikipedia article), but lucky for us who just use the software, it’s not. The dual quaternion method basically preserves the volume of an object, which makes it ideal for tricky parts of a rig where bones are twisted or extremely bent. For example if you were to twist a bone, you would see the mesh collapse on itself with a standard linear blend mode but DQ gives us a nice preservation of volume.

HumanIK Retargeting

You might not have heard of HumanIK before. It’s an animation middleware (a software library) originally started by Kaydara, which was subsequently acquired by Alias, then Autodesk. The idea behind HumanIK is that it does real-time procedural motion adaptation and it is currently being developed and sold as a video game run-time library. HumanIK works by taking your skeleton at every frame update and repositioning each of the joints in a bio-mechanically correct manner to a target pose. This has two uses: making a video game character interact in an environment in a more realistic way at run-time, and live retargeting.

In the context of Maya 2011, the HumanIK middleware has been integrated, so that it enables you to perform a live retargeting from one rig to another. This is useful if you have animation data that is for one character, and you want to retarget it onto another character rig, even with different proportions. Because HumanIK works at run time, there’s no need to bake out the animation. This is very useful for working with motion capture animation data.

3D Editorial

Of interest to those of you who want to be able to integrate storyboarding and the actual 3D layouts, Maya 2011 has included a Camera Sequencer. This enables you to import an EDL file from Final Cut Pro, which will then automatically create the cameras and bring in the movie, audio and timecode information.

Assets and File Referencing Workflow Enhancements

As far as managing production assets and working in teams are concerned, Maya 2011 has some good improvements here. Of note is the ability to reference a Maya scene, make edits without affecting the original file, and have those files act as reference edits that can be imported and applied. It’s difficult to try to explain the concept it in words, so here’s a video.

Parting words

This has been a quick overview of Maya 2011 and is by no means exhaustive. As mentioned earlier in the article, I think that Maya 2011 is a significant release with many new features that make an already capable software even better. At the time of writing, Autodesk has released two Hotfixes which are available to download from the website (they are, annoyingly, the entire software download as opposed to patch files).

Probably the best thing that you could do if you’re interested in looking into Maya 2011 is to try it out for yourself. The Documentation also contains a lot of information specifically on the new features, so that’s a good starting point.

http://www.autodesk.com/maya

About Leonard Teo

Leonard Teo is the Chief Technology & Marketing Officer for Gnomon School of Visual Effects in Hollywood, CA. In previous roles, Leonard has worked as Product Marketing Manager for Autodesk and Softimage. Leonard was the founder of CGSociety.org and Ballistic Publishing. He was the conference chair for 3D Festival in Copenhagen in 2003-2004, and currently serves on the Advisory Board for Montreal International Game Summit. Leonard has published 16 books and written many articles on computer graphics, visual effects and games.