Automated Semi-Procedural Animation for Character Locomotion
I would have made it available earlier, but the University took three months reviewing it, and I wanted them to be done with it first.
The 114 page thesis thoroughly discusses almost all parts of the implemented system and compares the used techniques and methods with related academic work on the subject. Here's the abstract:
This thesis presents a framework of techniques for interactive synthesis of highly ﬂexible character locomotion. The system uses a set of example motions primarily in the form of keyframed or motion-captured walk and run cycles. The system automatically analyzes each motion at design-time and extracts parameters such as impact and lift-off times for each foot as well as overall velocity. At runtime the system ﬁrst blends the motions according to the current velocity and rotational velocity of the character, it then adjusts the movements of the bones in the legs by means of inverse kinematics to ensure that the feet step correctly on the ground. The system works for both human and non-human characters with any amount of legs and in whatever style the provided example motions are in. It can adjust animations made for a speciﬁc speed and direction on a plain surface to any speed, direction, and curvature, on any surface, including arbitrary steps and slopes.
Notable innovations in the thesis include the introduction of the concept of a footbase, which is a single combined heel and toe constraint that can retain the important information about the alignment of a foot relative to the ground; the calculation of a supporting ground height that can be used to produce motion with a good sense of weight, regardless of the number of legs and of the gait style; the calculation of natural-looking foot alignments that works for just about any characters and gait styles, and a scattered data interpolation algorithm that has desirable properties when interpolating motions with different velocities.
The thesis has plenty of diagrams and illustrations to help presenting the new concepts and techniques. The accompanying videos also help in that regard.
Having finished my Master's Thesis doesn't change a whole lot in my life in practice. I've already been employed full time at Unity Technologies since February and I will be continuing my work there helping continuously improving the Unity game engine and authoring tool. (My blogging for Unity can be seen here by the way.)
That said, I'm very happy to finally be done with this academic endeavor. This also marks the end of the almost exclusive focus on the Locomotion System on this blog. My future blogging here will probably be centered around more broad game development related subjects, though I won't be shy of occasionally diverting even from that topic if I should feel like it.
As always, the Locomotion System itself can be downloaded here and it is free to use in any Unity game.