Animadead 2.0 Released

Animadead provides game developers with an easy to use interface for implementing skeletal animations in a game. Release 2.0 is significantly restructured and has many new powerful features.

The most major change for Animadead was the way orientations and locations of bones are stored internally. Animadead 2.0 now uses quaternions internally to store local transformations instead of using matrices for world transformations. Details about the transformations used can be found here: http://animadead.sf.net/faq.shtml#transformations

Animadead 2.0 now uses skeletal hierarchies since bones now use local transformations. Skeletal hierarchies keeps bones connected they way they should be and prevent the skeleton from coming apart, or dislocating, during animation. This is especially useful in rag-doll physics.

Blends are new this release and are used to calculate a pose, usually from two other poses. One type of blend is an animation player, which is used to keep track of the current time in the animation and can generate a skeletal pose at that time (between two frames). Another type of blend is a blend between blends. When this blend is calculated, it first calculates the two blends its blending, and then blends those together with a user-defined weight. Since this is a recursive definition, blends can in fact be setup in a hierarchy, and the user only needs to call the top level calculate function.

Another new feature to Animadead 2.0 is bone selection masks, which are a selection of a subset of the entire skeleton. The hierarchy is used to make the selection process simpler. Essentially, all bones are the same selection state as their parent, unless set directly. Details on how this works can be found here: http://animadead.sf.net/docs.shtml#selection

In addition to being able to calculate a pose from a complex system of blends, the calculate function can be given an optional bone selection mask, which limits the calculations done for that blend to only the subset of bones defined by the selection. This allows you to calculate different parts of a skeleton with different animations.

Another significant change was the method in which models are drawn. Now, no mesh data is manipulated in the library. Instead of providing a calculated mesh to draw, a final set of calculated world matrices are generated which can be easily used as parameters to a vertex-shader, or used to manipulate the mesh directly.

The exporter for Maya has been updated and now builds a File-Translator plug-in, which uses Mayas built-in File | Export feature.

The file formats have been changed to accommodate the new internal structures used, and for now use text mode for readability and debugging purposes.

A full list of detailed features can be found here: http://animadead.sf.net/features.shtml

This release of Animadead includes Configure and Makefile scripts for Linux/Unix like operating systems, and Dev C++ and Visual Studio .NET 2003 project files for Windows operating systems and can be downloaded here: http://sourceforge.net/project/showfiles.php?group_id=103436

Posted by John Butterfield 2005-02-09