Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm searching for suggestions and resources on the possible ways to design a character animation system. I mean a system built on top of the graphics engine (as graphics engine I use Ogre3D, that provide an animation layer), and in strict contact with the logic of the game.

It's for a sports title, so the question is not easy.

Edit: What I'm searching for are suggestions and resources about the action state mechines (or animation state machines), that is build on top of the animation pipeline already provided by the graphics engine. So, a state-driver animation interface for use by virtually all higher-level game code.

share|improve this question
1  
Step 1) design the feature set you need, Step 2) Implement said feature set. –  Tetrad May 3 '12 at 19:15
    
Step 3) profit. –  Byte56 May 3 '12 at 19:21
1  
There are a lot of things that could be called "animation system." Can you be more specific as to what you want? Is it the part that gets a series of bones from an animation at a particular time? Is it the part that blends sets of playing animations together, and understand where each animation is along its playback? Is it the part that decides which animations are playing on a character based on various game state? –  Nicol Bolas May 4 '12 at 0:02
    
@NicolBolas I've improved the question, I hope it's clearer now. –  Andrea Benedetti May 4 '12 at 9:03
add comment

1 Answer 1

All the mesh objects I have loaded by OGRE3D have the skeletal poses and animations built into them which simply means that using an Ogre::Entity gives me access to all that information. Assuming you're doing the same, an animation system would allow the following:

  1. Allow playing multiple animation with varying weights.
  2. Allow deactivating specific animations
  3. Play a new animation blending it in while fading existing animations out.

With this wrapped up into a subsystem, you can either choose to expose it to the rest of your game logic either through an interface or through some message queue paradigm.

Realize that certain animations may likely have a higher priority than others too. For example, you want movement animations and attack animations to have similiar priorities so that the player gets the illusion of realistic play with no input lag. Conversely, animations such as deflecting an attack, blood spatter from taking damage, or a dodge animation are great effects, but have a much lower priority.

For example, a player takes damage from an attack from a foe but immediately moves but just doesn't move fast enough. You certainly don't want your being hit animation to affect the realism of the player's movement, and so you may opt to ignore the take damage animation entirely and simply strafe as the player's input dictated. Naturally the sound system may still play the attacked sound clip, but doesn't mean animation must play it either.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.