Vitaboy Overview

This document gives an overall description of the VitaBoy character animation system and content pipeline.

Introduction

VitaBoy is a skeletal 3D character animation library, that plays content authored in 3D Studio Max. Its content consists of hierarichal Skeletons, 3D texture mapped Suits that attach to the bones, and animated Skills that move the bones over time.

Artists define Skeletons in Max by using Biped, Bones Pro, or linking together normal Max objects.

Then they define Suits by attaching 3D texture mapped meshes to the bones. The meshes attached to each bone will move rigidly with the bone's coordinate system when the skeleton is animated.

Finally they define Skills by animate the skeletons with Max. The artists can use any of the tools in Max, like Biped footsteps or inverse kinematics, to animate the bones.

Once the content has been authored and saved into Max files, the artist runs the exporter to write out the Skeletons, Suits and Skills into ".CMX" files that the VitaBoy library reads. The exporter also produces ".BIN" files containing binary floating point translations and rotations, and ".MSH" files containing 3D meshes. The ".MSH" files reference the texture maps by name, but the exporter does not write them out, so the correct bitmap files must be put into place for the VitaBoy to find.

Architecture

The VitaBoy library is divided into two main source code files, which contain the device independant part (skeleton.cpp), and the device dependant part (vitaboy.cpp). This is designed to make it easy to port VitaBoy to different 3D libraries and embed it in different applications, by changing only the device dependant vitaboy code.

The device independant skeleton code doesn't know anything about the device dependant vitaboy code, but the skeleton is hooked together with it through a set of callbacks and void data pointers.

Strucure of VitaBoy Content

Definitions

Procedures