So far, basic animations now work within the engine. We have accomplished this by using the Havok physics and animation engine along with its exporting tools for Maya. Our modelers and animators create the skinned skeletal rig along with any partial or full body animations we need and export them out as .hkx files. These contain either all of the information for a single animator's character, or simply a single skin, skeletal rig, or animation. As we will want a variety of animations to help in behavioral profiling within the game, the later approach will most likely be the main version used.
Each of these individual items, i.e. the skin, skeleton, and animation are all loaded in separately through Havok's pipeline and assigned to an animated mesh object. For the most part these are stored 1-to-1 within the animated mesh. However since we use our own rendering system, we need to convert the mesh provided by Havok into our own form for rendering.
After getting all of the items needed for animation, updated matrices based on the skin bindings and modified by the rig and animation are passed over to a shader to handle hardware skinning. Cel-shading and other effects are also performed to get the desired style we need for the game.
What still needs to be done or made:
- Blending of animations so that a character can wave to someone, spray paint a building, or flail their arms all with the same walk cycle
- Allowing for quick ease of animation swapping within a mesh
- A manager to handle storage of all this data so as to not flood memory with multiple objects of the same animation.