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.
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!
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.
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.
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.
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
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!
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