Animation in DirectX 9

Started by
2 comments, last by Matias Goldberg 11 years, 11 months ago
I am using key frames in 3Ds Max to create multiple animation presets for a character for DirectX 9 (C++).

Here are the animation names in the .x file that I have created so far:
walk
run
die
shot

The problem is SWITCHING between different animation, for example: "shot" animation preset make the character point his weapon towards the player.

The character could die while walking or running or shooting.

Switching between walk to die or run to die or shot to die will cause that his arms and body position to change ALL of sudden to the arms and body position that appears in "die" instead of "walk"

so if the character while dying put his arm down, while shooting he point his whole arm towards the enemy.

So basically, switching between walk shot and die for example will NOT appear realistic.

How can I make the character switch from different animation by MOVING HIS BODY TO THE SECOND ANIMATION, NOT by switching SUDDENLY which will cause sudden positioning of the body?
Advertisement
Simplest method requires to do some blending between the animations, so that you positions don't change unrealistically.

So let's say that you character is walking and then he dies, you would blend over some time from the walking animation to the die animation. The blending time doesn't have to be long.

Of course, cases such as dying you'll need to think if it is possible to have any other animations going on. People usually don't try to aim when dying.

There are other cases too, such as partly blending animations (like, different kind of animations with hands when running, walking, staying in the same place).

Blending poses can be done with quaternion slerp for example, especially if you store your rotations as quaternions.

Best regards!
What I have seen in commercial games is that the "shot" animation is only applied to arms and upper body while legs are not moved at all. So you can add two animations like walk+shoot or stand+shoot without having the two interfere with each other. You do this by using different animation tracks and weighing them.
Google "skeletal animation blending"
http://wtomandev.blogspot.com.ar/2010/05/character-animation-part-3-animation.html
www.ogre3d.org/tikiwiki/AnimationBlender

This topic is closed to new replies.

Advertisement