Friday, January 20, 2006

Interaction between Characters and Objects

When your characters interact with objects, you often need to figure out methods to make the animation process comfortable. During the last years I used several methods.

Scene: "character picks up a bottle from the table"

How I used to do it long time ago (don't do it like that!):
Example 01: "simple parenting and keying the visibility attribute"
The hand moves towards the bottle. When the hand grabs the bottle, you simply duplicate the bottle and parent it to the palmbone of the hand. On exactly the same frame, you set the visibility of the bottle on the table to 0 and set a key. You leave the visibility of the parented bottle at 1 and set another key.
Then go one frame back and do the opposite. Set the visibility of the bottle on the table to 1 and the parented bottle to 0. Now you have a invisible switch of two bottles.

-When you adjust the timing of the animation you have to move the visibility keys as well. And when you change the pose of the character sometimes you have to readjust the bottle in the hand.

-When the character has to put the bottle back on the table you'll have to do that duplicating process all over again.

- Some renderers doesn't support the visibility attribute and your objects will be visible the whole time.

Example 02: "Parenting and scaling"
You can do the same thing as in example 01, keying the scale attribute of the object instead of the visibility. That way any renderer will render it correctly. Still not the best solution cause you have to duplicate the objects...

Example 03 "Parent Constrain Object":
A realatively new feature is the parent constrain. You can constrain the target object to the hand and blend the weighting between 0 an 1. If the weight attribute of the parent constrain is set to 0 the object will stay on the table. When you set it to 1, the object will be parented to the hand. This works pretty well and you have to key only one attribute to let the character interact with the object.
I used this option for most of my animations. A big plus is that you don't need to duplicate the objects anymore!

Example 04: "Parent Constraining Hand"
A fellow artist gave me the hint to constrain the hands to the object (not the object to the hand). That is a really good solution especially when your character has to interact with an object with both hands. For example when he is lifting a box. You simply parent constrain the right hand to the box and do the same for the left. Now you only have to animate the box itself. Fingers and hands are still movable.

I think the last two solutions are pretty comfortable when characters interact with objects.

No comments: