Maya Ragdoll Page 3

Dynamic Rigging Tutorial (Aug 2003)

Getting there...you are about to witness the power of the new constrain in Maya and so far my favorite tool -- PARENT CONSTRAIN!!

Step 5: Apply Rag-doll to Model!
Set up your skeleton and make it like the proxy skeleton you laid out. Skin it as you please and paint weights or set memberships till you are satisfied.

Bone it -- :D

Now parent constrain (not constraint) the proxies to the bone they represent by selecting the proxy first, then the bone and then going to under Animation module, Constrain > Parent. Constrain, the leader or driver comes first then the bone. This is the beauty of parent constrain versus parenting; if you did parenting you'd destroy the bone structure. But with parent constrain, all is well! Wazza!

Parent constrain!

Now repeat. When you are all done parent constraining the bones to the proxies. Go ahead and run it. If you run into issues where the body parts fly off, it could mean something went wrong with the rigging process. Maybe the bones need to be re-oriented. Maybe the painting of weights wasn't mirrored. Any errors here will most likely lead to rigging issues.

How you do the torso


We are now at a point where the dynamics-driven proxies drive the bones that move the model.
Here's a playblast. Post-mortem: Shoulda include neck and feet...Anyway, now we are at a point where we can have a blast!! Time for recipes!

Recipe 1: Projectile
Make a projectile, set passive rigid body properties to it and key it going thru the rag-doll. Playblast!

Recipe 2: Explosion Impact
Have the proxies get affected by a keyed Air field and a very high Newton field affecting proxy part of impact. Playblast!

Recipe 3: Hanging Zombie
You can add constraints like Nail to the proxy objects. So you can suspend a character by their hand and have 'em dangle! Sorry no playblast...

Apply your imagination. Combine stuff! Tweak stuff! This is just the start!

>> Take things to the next level
Now this is just a rag-doll but it would be great to have it blend from keyframe to rag-doll and back and forth and so on. For this I have a temporary solution where you duplicate the skeleton and have it drive the proxies via more parent constrains. This creates pairBlends which designate whether an object can be run by keyframe/dynamics or the constrain or blend both. Use MEL expressions and create rag-doll active attributes that specify whether its Input 1 or Input 2. It's not perfect but it's my current solution till I figure out a better one. If you do come up with a better one, please tell me! Thanks!

>> Drawbacks
Using geometry for restriction is a little bad. Mainly because the objects' collision boxes are already in contact, causing more calculations to be run. Thanks for that one, Papa of DT. Also, a bit of time is spent tweaking the proxy geometry to get it functioning right. Another drawback is that the rag-doll look is very much there. You might need to go and keyframe over your proxies to get the look you want.

>> Side notes
To move the rag-doll, group the constraints and the proxies and move that group. BUT BEFORE YOU MOVE IT, make sure you play it once or twice. If you don't and you move stuff, the constraints get left behind. Also, sometimes they will rotate continuously. If either does happen, rapidly undo and play and then move it again. Assumption is that the Rigid Solver needs to register the new values of the constraints; so by playing it you refresh it.
Getting the rag-doll working right might take some practice but once you get it down, it's your ticket to quickly animating motions like falling, floating, hanging, etc.

I hope you had fun with this tutorial. Any questions, queries, comments, suggestions, feedback are appreciated. Just email them! Thanks for going thru this tutorial!

Back to Tutorials