Help - Search - Members - Calendar
Full Version: Actions applying on different models
Hash, Inc. Forums > Technical Direction and Development (Learning Animation:Master) > A:M Tutorials and Demonstrations > Animation > Reusable Motion
Reikster
Hi,

I'm wondering a little bit about what goes on under the hood for actions if anyone knows. How does AM store actions?
I can understand the rotations of bones being stored and applied one to one, but when bones or nulls start out in different positions...is the movement simply scaled to the different model? perhaps based on the resting positions of the parts in question?
(Note, I looked at an action file with Notepad and while I didn't spend tons of time, the answer didn't jump out at me).
The reason I'm wondering is so that I might get some insight on how to build actions that apply better to multiple models.
For instance, compare Keekat with let's say the knight. Keekat has much shorter legs and a proportionately much larger foot. If you have an action that looks perfect with the knight, chances are that keekat's feet will go through the floor. Conversely, one that looks good with keekat will look like the knight is high stepping or being goofy.
I'm wondering if there's a way to make it so both look reasonable, or is that maybe too much wrangling to be worth the effort?

eric
martin
It's a sure bet that reusing Actions on the same character is a winning idea. As for using Actions on different characters, consider this: there's a lot of work that goes into an Action. A good animator will spend hours adjusting the anticipation and followthrough. Just the timing takes forever. When using an existing Action from a different character, even if you do have to adjust the feet to make sure they don't go through the ground, or you have to move the Nulls to get the knees to bend right, it's still A LOT BETTER than starting from scratch!
luckbat
QUOTE
I'm wondering if there's a way to make it so both look reasonable, or is that maybe too much wrangling to be worth the effort?


There is a way to do what you're considering. But the nulls will mess up the equation. Consider two models, a pixie and a giant. If you animate the pixie using a lot of null translations--say, for the footsteps--and reuse her actions for the giant, the giant will barely move. Twenty centimeters may be a big leap for a pixie, but for the giant it's barely a shuffle.

Rotations, on the other hand, are another matter. If an action causes a pixie to raise her right arm 120 degrees and bend her elbow 60 degrees, then it'll make the giant raise his right arm 120 degrees and bend his elbow 60 degrees.

I have a model that I've had to shorten the arms on twice. Each time, afterwards, I check out my previous animations using the new model. As expected, all the FK movement (rotations only) looks pretty much the same, while the IK movement (translations & rotations) goes completely out of whack.

So basically, all the bone rotations in your action will scale to any model with a similarly structured skeleton. All the translations will have to be re-done. So if you want to do a lot of re-using of actions, you'll have to build a rig that uses a minimum of translations. Which means no nulls (unless they're constrained to a bone or something), and no IK.
Reikster
Martin:

Sooooo....ummmmm.....hmmm.

I'm reading between the lines and guessing you're suggesting that:

1) Actions will only work best when applied to the same character

2) You can still use them on other characters, but your best bet is to load them onto the new character and tweak them and save it as a new action specific to that character.

3) don't worry about how actions translate from one model to the next.


eric
Reikster
QUOTE (luckbat @ Dec 10 2004, 09:48 PM)
QUOTE
I'm wondering if there's a way to make it so both look reasonable, or is that maybe too much wrangling to be worth the effort?


So basically, all the bone rotations in your action will scale to any model with a similarly structured skeleton. All the translations will have to be re-done. So if you want to do a lot of re-using of actions, you'll have to build a rig that uses a minimum of translations. Which means no nulls (unless they're constrained to a bone or something), and no IK.

Okay....hmmm....seems to me there was some kind of bake IK function somewheres....I thought :-/
That would make actions more scalable, although you'd still have some minor foot issues....or any time you needed to directly interact with an object..

eric
martin
QUOTE
Actions will only work best when applied to the same character

Generally yes, but consider how many characters derive from the same basic character - all of those will work great.
QUOTE
You can still use them on other characters, but your best bet is to load them onto the new character and tweak them and save it as a new action specific to that character.

Do the modifications as Chor Actions. You don't have to save them unless you plan to reuse the modified Action.
QUOTE
don't worry about how actions translate from one model to the next.

You're right, BUT as rigs evolve, some rigs will "reuse" better than others, and new rigs will be judged on how well they reuse. I anticipate a next generation of rigs - I've already seen hints of them in this forum.

pleavens
QUOTE
All the translations will have to be re-done. So if you want to do a lot of re-using of actions, you'll have to build a rig that uses a minimum of translations. Which means no nulls (unless they're constrained to a bone or something), and no IK.

There's a feature in 11.1 that looks to be designed to deal with this very issue.

With "advanced properties" turned on, one of the action properties when you are editing an action is "reusable actions scale method"

Here's an example of a VERY simple null/constraint driven action that's applied to first the "knight" model and then the "keekat" model". (reversed on the "keeKat" model)

Scaled action movie


By using the "hips" null as the position value for the scale, we end up with the same action on two very different sized characters.

Phil

luckbat
I swear, I learn something new every day on this forum...
KenH
Wow. This thread grew over night.

I see what you're saying Eric.

You're wondering if instead of the action telling the legs bones to move down a certain ridgid distance......could it tell them to move only the distance that it takes to reach the ground.

Kind of letting the ground plane be the marker. Of course to program this might be pie in the sky. biggrin.gif
Also, what indicator would be used for the arms.....maybe distance from the body?
Reikster
QUOTE (KenH @ Dec 11 2004, 03:27 AM)
I see what you're saying Eric.

You're wondering if instead of the action telling the legs bones to move down a certain ridgid distance......could it tell them to move only the distance that it takes to reach the ground.

Ken,

It would be neat to do things along those lines, but I was mainly wanting to get an idea of the how so that you can create re-usable actions that are closer to working on multiple models.
Armed with Phils revelation and assuming that the center point of scaling for translation keys is going to be whatever you select as the target bone/null in the scale method, I can make things at least close and know what is going to be off.

For instance, if the hip null is the center of scaling, then you'll get exactly what Phil showed. If you're trying to be a perfectionist, the height of the foot nulls and their rotation will be off a little bit, but they'll be pretty close.

"THEORETICALLY", you could create a rig with relationships and constraints that took this all the way to way. I think it would be incredibly complicated (ie not worth the effort), but you could make a stand in skeleton that was the same dimensions for all models and had some kind of "fancy-ness" for lack of a better word that converted the action to exactness. Okay..that's starting to sound weird, but if you've followed me this far you probably know what I mean...and that it's really complexicated.


eric
pleavens
QUOTE
If you're trying to be a perfectionist, the height of the foot nulls and their rotation will be off a little bit, but they'll be pretty close.

Don't forget you can always apply a choreography action in additive mode to take care of the small differences.

For instance if a foot goes into the ground during the action, it is possible to just add a small change that positions the foot correctly with the choreography action, without modifying the base action itself.

Phil
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.