For my project I implemented an animation system with some simple procedural elements.
The project is based on the animation system used in the video game Overgrowth developed
by Wolfire games. A GDC presentation describing the system can be found here:


This character has a few different movement states: walking, running, and crouching.

run walk crouch

The character can also smoothly transition between the different movement states. For
example, the character can interrupt a walk with a crouch, or slowly transition from a walk
into a run.


These animations are almost entirely interpolated. The character's walk and run cycle are
composed of just four keyframes each: a pass and reach pose for the left and right sides.
The character also has a single keyframe for its crouch, and a keyframe for it's idle pose.



This project is basically a combination of our work on Assignments 1 and 2. The character
is a mesh with bones and skinning weights for each of its vertices. Between keyframes the
program interpolates the position and rotation of each of the character's bones.

During each transition, the program rebuilds an s-to-u conversion table with the character's
current pose (placement and orientation of bones) as the starting value(s) and the desired
pose as the goal value(s). The result is smooth transitions between different movement
states at any point during the animations.