You are here:  

Blog

Jul 3

Written by: DigitalRune Team
Saturday, July 03, 2010  RssIcon

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…)

The Basics

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:

  • model representations,
  • the 3D graphics pipelines,
  • rendering techniques,
  • animation techniques,
  • and programmable graphics hardware (GPUs)

Anima – A Character Animation Framework

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 a actual game. So I can’t say how it would perform in practice.

Ragdoll Physics

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

 

Download

Character Animation in Real-Time (thesis, .pdf, 2.3 MB)

(The character animation library “Anima” is closed-source and not available for download. Sorry.)

Errata

Page 7, last sentence on page: “A vector v is transformed …” needs to be replaced by “A normal vector n is transformed …”


Your name:
Gravatar Preview
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Security Code
CAPTCHA image
Enter the code shown above in the box below
Add Comment   Cancel 
Categories
Tags
Archive
 
Home | Products | Services | Downloads | Buy | Support | About