Written by: Saturday, July 03, 2010
Like my brother Helmut, I finished my master thesis in 2005. The thesis goes through all the steps necessary for animating characters in games. I thought it might be of use to someone who is just starting with this topic – so I might just write a blog post and put it back online for download.
During our studies of computer science at the Johannes Kepler University (in Linz, Austria) my brother Helmut and I had to choose a topic for our master theses. At the time we thought “ragdoll animations” were pretty cool, so why do not do that. We split the topic up into two topics “rigid body dynamics” and “character animation”. Helmut wrote a thesis about the first topic and I about the second. (Read about Helmut’s thesis…)
My first goal when was to summarize the state of the art (pre 2005) in character animations for games. I was especially interested in using the GPU to accelerate mesh skinning and morphing. So in the first part I went through all the basics:
The second part of the thesis is about “Anima”, a character animation framework I wrote in my last year at the university. Anima was quite elaborate: It included an exporter for Blender, a layered animation system for SRT transformations, morphing (“blend shape animations”) and skeletal animation (“mesh skinning”), animation blending, and an extensible rendering system (using DirectX Effects). The animations could be computed on the CPU or the GPU or mixed mode.
At the time of writing the library, GPUs weren’t as powerful as now – shader model 3 had just been released. So I put quite some effort into creating an animation system that could render arbitrary complex models (any number of bones and any number of blend shapes) on the GPU. I achieved this by preprocessing the models and partitioning them into smaller mesh parts where necessary.
Though this all sounds great in theory, Anima was never used in an actual game. So I can’t say how it would perform in practice.
In the end we combined Helmut’s physics library and my character animation library and created a small sandbox were you could toss a ragdoll onto random boxes.
-- MartinG
Character Animation in Real-Time (thesis, .pdf, 2.3 MB)
(The character animation library “Anima” is closed-source and not available for download. Sorry.)
Page 7, last sentence on page: “A vector v is transformed …” needs to be replaced by “A normal vector n is transformed …”
0 comment(s) so far...
A collection of the most useful blog articles can be found here:
Article Collection (on Documentation page)
DigitalRune is a trademark of Garstenauer Information Technology OG.
Garstenauer Information Technology OG Weingartenstrasse 35, 4452 Ternberg Austria (EUROPE) office@digitalrune.com