Kurt Foster Reviews the Latest MotionBuilder Release from Autodesk
MotionBuilder caters primarily to high-end 3D character animation. At a suggested retail price of $3,995, or $995 for an upgrade from MotionBuilder 2009, MotionBuilder is targeted at the professional animator. There are many tools available to deal with motion captured performances with dense animation data. Performances are achieved by blending animation from various sources onto a control rig, which drives a skinned character. Traditional keyframe animation is also well supported. Most of MotionBuilder 2010's feature highlights add to the physics-based animation toolset. While there is not room in this review to cover every new feature, I tried to select a few highlights to test drive.
Review Copy Arrives
Installation was cake. Installation on Windows (currently the only supported brand of operating system) was easy via the standard installation wizzard. Upon first launching the program, I was prompted to choose from keyboard shortcuts of other popular highend 3D software. I chose Maya. This permitted me to have instant familiarity with viewport navigation, among other hotkeys.
Known by some as rigid body constraints. MotionBuilder calls this the Physical Joint property. It lets one enjoy physics-based animation, while having the ability to constrain the behavior of objects. For example, the new joint type, "hinge," permits a swing about one axis, complete with the ability to limit rotation angles. The other joint types include: "ball," "hinge-2," "slider," "universal," "spring," and, "motor." Basic stuff for most physics solvers, and with MotionBuilder's current push to support more physics-based animation, a welcome and much needed addition. Just like the rest of the physics package, these solve in real-time. (Of course, 'real-time' depends largely on the hardware you can throw at it. It would probably be better stated, "significantly faster than most other physics solvers on the market.")
To use a physical joint was cake, as all I had to do was drag and drop rigid body property onto my models, create a null (locator) and drag and drop the 'joint' property onto that. From there, a few clicks in the Navigator window to set up a parent-child relation and tweak things like friction and what not, and boom - physical constraint! They work nicely even without any tweaks, but I liked to tinker around a bit.
As fun as it was, all was not peaches and cream. The physics solver and the Undo operation are not on the best of terms. Specifically, "start states," and Undo. After smashing the wall with much joy, I went to click the "Reset to start" button to re-wind the physics simulation, but I accidently clicked the nearby "Set Start State" button. No amount of undo would revert my initial state back to its wall-like glory. I was left with only the scattered bricks of my once-great wall. This behavior is common to other physics simulators, but not as easy to accidentally reproduce. Fortunately, the software development team was contacted as part of the review process and is working on a solution. In the mean time, save your scenes before you destroy them with physics. Be very careful where you click!
Don't be sloppy with your clicking around and you'll be fine. However, accidents do happen.
One of the other major new features of this year's release is Ragdoll Pose Matching. Normally, a character driven by a ragdoll solver would fall to the ground in a heap. The ragdoll pose matching feature makes the ragdoll rig attempt to match guide poses. This lets us control how a ragdoll solves, such as making a specific gesture while falling, or falling to a particular pose. That's the idea anyway.
It was relatively easy to set up. I first created a few key poses of how I wanted my character to fall. I stored these as poses in the pose browser. I then took a rigged character in the default pose and dragged and dropped a ragdoll property from the Asset Browser onto it. I then began to drag and drop poses into the ragdoll's Animation pane and tweak properties. The good news is that this tool does just what you think it does: it lets you influence your ragdoll solves as much or as little as you like. For this, it gets my thumbs up.
Ragdoll Pose Matching in action.
The bad: the interface needs polish. For example, to delete an object in the Navigator window, one simply uses right-click -> delete. This works for ragdoll poses too, but this same concept does not work with the poses list that appears in a ragdoll's Animation tab. I kept finding myself wanting to right click a pose to delete it. Instead, there is a special iconic delete button. In the author's opinion this could be streamlined. Perhaps by associating the ragdoll pose matching properties, with the pose itself (when appearing under the ragdoll object in the navigator list), rather than on the ragdoll object. In this fashion, we could eliminate the need for a duplicate list of poses.
Additionally, having the distinction between 'guide poses,' which merely influence the ragdoll solve, and 'match poses,' which are mandatory poses that the solver must be hit, seems odd. It's odd because 'guide poses' have 'Match Tolerance' property. This begs the question: Wouldn't a 'guide pose' affectively become a 'match pose' if the tolerance was set high enough? If so, why the distinction? Also, when a pose is updated in the Pose Controls window, the pose is not updated in the ragdoll's list of poses. The same holds true of renaming your poses. I'm not sure if this is good or bad, but it is noteworthy.
One of the more interesting features is the ability to have a ragdoll attempt to match the animation of a character. We basically animate a character as per usual. Then we create a ragdoll which tries to match that animation. The ragdoll drives our skinned character. With this, our characters are still capable of being thrown off course via rigid body collisions. For example, we can have a character animated walking on flat ground, then introduce passive rigid body rocky ground to interact with the ragdoll. Result: our character walks along the rocky terrain! There is also a user setable tolerance, that if exceeded, the ragdoll solve takes over. Unfortunately, I didn't have as much time to play around with this feature as I would have liked. Definitely something to check out!
Ragdoll animation matching.
A few other updates worth mentioning in this year's model include a lot of tweaks and bugfixes, as well as an upgrade to Python 2.6.1. This is noteworthy because it's the same version of Python that Maya is using. So, those who code in Python for Maya will now have the same version of Python available in MotionBuilder (Yay!). Speaking of code, the Logger tool - Programmers are now informed of which line, in an offending Python script, results in a MotionBuilder crash. No more sipping coffee while looking at your desktop wondering what went wrong. Other niceties include thumbnails and folders in the pose controls window:
While much improved over the previous version, which did not have thumbnails, it would be nice to be able to browse the Pose Controls window entirely via thumbnails. This would make sense, considering one can do this in the asset browser for files. As it sits, one must first select a pose in order to see its thumbnail. I guess we'll have to wait and see if Autodesk takes note of this.
Other niceties include import filtering. One can now import only specific portions of a file, as specified in the import dialog box:
I crashed MotionBuilder several times during the review process. It was funny because sometimes I could leave it open for a week at a time with no trouble. Then there were days in which I had it crash three times. Mostly, when trying to save a scene with a lot of heavy physics and imported models. I'm not sure if this was MotionBuilder's fault, or a graphics driver issue or what. But, if you ever get the opportunity to crash MotionBuilder, you will be greeted by the crash dialog, asking your permission to send a crash report to Autodesk so that they can fix the problem:
Fortunately, all is not lost as you will also be prompted to save your scene...
...but some days, things just aren't in your favor:
Upon restarting the software, we are helpfully greeted with the following:
Unfortunately, my crash recovery file was empty. Granted, any software boasting major new features is bound to have some bugs to work out. Just as this year's model fixes many bugs that last year's model introduced, the same will be true of the next release. Regardless, it is still quite irritating. Other interesting occurences include:
With the move to incorporate more physics-based animation tools in the past couple of years, MotionBuilder has come a long way. The physics aspects of the program are maturing. The realtime physics engine that drives it all can't be beat. MotionBuilder is useful. While everyone may not agree on various aspects of the software, it remains a useful tool in the arsenal. For anyone who does any action-oriented character animation, whether it be falling down a flight of stairs, to getting struck by large moving objects, the additions to the physics tools are worth an upgrade.
Motion builder is available in two flavors, for 32-bit hardware or for 64-bit hardware. The latter of which can address significantly more memory, but requires compatible 64-bit hardware running a 64-bit operating system. Breaking it down between the two flavors the system requirements are as follows:
32-bit Autodesk MotionBuilder 2010:
Kurt Foster (Modulok) falls somewhere between programmer and visual effects artist. When not sifting through technical manuals, he takes on freelance roles in both programming and visual effects, attempting to create a marriage of technical knowledge with artistic talent. He can be seen helping out on the Renderosity Maya forum, when time permits.
October 26, 2009
Please note: If you find the color of the text hard to read, please click on "Printer-friendly" and black text will appear on a white background.