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.

  • 1
    \$\begingroup\$ Step 1) design the feature set you need, Step 2) Implement said feature set. \$\endgroup\$
    – Tetrad
    May 3, 2012 at 19:15
  • \$\begingroup\$ Step 3) profit. \$\endgroup\$
    – House
    May 3, 2012 at 19:21
  • 1
    \$\begingroup\$ 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? \$\endgroup\$ May 4, 2012 at 0:02
  • \$\begingroup\$ @NicolBolas I've improved the question, I hope it's clearer now. \$\endgroup\$
    – enigma
    May 4, 2012 at 9:03

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.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .