Over a year ago I saw a GDC talk about how animation was handled for the Indie game called Overgrowth. The main premise was that with as little as two poses and cubic interpolation you can create walk cycles and other various mobility animations.
Tonight I rewrote an old prototype inspired by the talk. The idea is pretty interesting. In this sample I have only two poses that I replicated from the talk to get me started with something. What I noticed was that you can't really animate the two poses BUT what within it is a 4 frame animation walk cycle compressed into two poses.
Let me explain. The most evident is the legs. Within two poses we have 4 leg poses in total. Two Left, Two Right. Each leg pose is actually 1 frame out of 4 in a basic walk cycle. So all you need to do is create animation frames based off those 4 poses. So you take the two left, then append the two right BUT, you do a quaternion mirror on the x-axis so that right leg animation can work for the left leg. Now you have 4 frames of animation for one limb. You repeat the process for the other limbs.
The last piece of the puzzle is how do you animate the frames? Normally you can just use linear interpolation, but if you look at the demo, you can see that the motion is very robotic. In the talk, they mention that by using Cubic Interpolation you can get a smoother more natural motion out of the two poses. So I added a second mesh that runs the same animation data but with cubic, so you can see the difference with a side-by-side look.
I hope to record a video tutorial in the near future with more details, but why not release the source and demo plus give a bit of overview of how it works. Enjoy.
[Overgrowth GDC Talk]