Adventures in XNA 3: The XNA Animation Component Library

Mawg close-upI've mentioned the XNA Animation Component Library in passing in my last two posts on XNA, so I wanted to take a moment to direct you toward the XNA Animation Component Library.

I will confess: there is a reason it took me a while to launch myself into XNA.  The original challenge I'd set myself was to re-create my old brain-controlled game, Mind Balance.  But Mind Balance uses a type of animation for its creatures called skinned mesh deformation, during which the character is deformed by using weights associated with the "bones" of its skeleton.  It's a standard technique used in most (more or less all) modern 3D games, but the core importers provided by the XNA Content Pipeline in version 1 do not handle skinned mesh animations.  [Update 5 Mar: Discussion of this and a sample of how to skin at XNA Creators Club.]

I have all the artistic ability of a slug, so I certainly wasn't going to make new models.  So I was staring down the barrel at writing the importer myself - which is something I already had to do once when authoring my previous engine.

Enter the XNA Animation Component Library, a shared-source project that's hosted on CodePlex and led by one David Astle.

The Library does two things.

First, it extends the Content Pipeline to allow XNA to import skinned meshes stored in several formats. 

Second, it provides a run-time Animation library which lets you play animations on your characters, and even do clever tricks like blend animations together, or selectively control only some bones on the character (like the arms) while an animation plays on the rest of the character's body.

If this interests you, you should take the time to go through the library's Tutorial (including the optional bits), which will get you up to speed.

I also recommend the tutorial as an excellent introduction to XNA.  It includes a cool dwarf model (complete with animations) which you can experiment with after you're finished the walkthrough.  I estimate it would take you 2 hours or so to do it justice.

And if you want a great animation library for XNA - now you know where to go!