Recently I’ve finished writing a simple skeletal animation system for a, so far secret, project under development here. There are three parts to this system; the file formats, the exporter tool, and the code that actually does stuff with the animations.

High level overview

The first step of the pipeline requires an idea to be inserted into Blender. This usually takes many hours of pretending to be a 3D artist before I get an FBX file with the contents of the scene. That FBX file is then fed to a tool written using the FBX SDK called FBXTOOL.EXE. It goes through the whole scene and repackages the meshes, armatures and animations into formats that the game understands.

Every mesh gets exported into its own file which gets named <mesh name>.mesh. The same goes for armatures and special socket nodes which are exported into <mesh name>.skel. All animations in the file are exported into <mesh name>.<animation name>.anim.

The animation system uses the .skel and .anim files in order to generate poses that are then applied to the mesh itself during rendering. This is probably the most interesting part, but for now I’ll have to leave it for a future post.