Animation von 3D-Modellen Teil 01: Einführung

Animationen sind von zentraler Bedeutung in einem Computerspiel. Ob nun Explosions-, Feuer- oder Raucheffekte dargestellt oder ob Spielfiguren, Tiere oder die Vegetation zum Leben erweckt werden sollen, das Grundprinzip einer jeden Animation ist stets gleich – eine Reihe von Frames (Bilder, Texturausschnitte, 3D-Modelle oder Bewegungsinstruktionen), die sogenannte Animationssequenz, wird in einer genau definierten Reihenfolge mit einer im Voraus festgelegten Geschwindigkeit abgespielt.
Betrachten wir einmal eine einfache Explosionsanimation bestehend aus 16 Frames. Für jedes Frame wird zunächst ein separates Vertex-Quad erzeugt. Die zugehörigen Texturkoordinaten werden dabei so festgelegt, dass auf jedes Quad ein anderer Ausschnitt der in der nachfolgenden Abbildung dargestellten Explosionsanimation gemappt wird.















Noch zuzeiten von Quake 3 wurden nach diesem Prinzip sämtliche Animationen aller Spielfiguren gehandhabt. Bei Programmstart wurden die Modelle zunächst in allen benötigten Animationsposen geladen. Diese Posen bildeten dann die Eckpfeiler – die so genannten Key Frames – der einzelnen Animationssequenzen. Um den benötigten Speicherbedarf in Grenzen zu halten, war man bestrebt, die Anzahl der Key Frames auf ein Mindestmaß zu begrenzen. Um den daraus resultierenden groben Bewegungsablauf zu verfeinern, musste man zur Laufzeit aus je zwei Key-Frame-Posen die aktuelle Animationspose durch Interpolation berechnen.
Modelliert werden die einzelnen Key Frames damals wie heute mithilfe einer geeigneten 3D-Modeller-Software, indem man ein 3D-Modell zunächst mit einem geeigneten Animations-Skelett verknüpft. Jeder Vertex ist dabei mit mindestens einem Gelenk des Skeletts verbunden. Die einzelnen Animationsposen lassen sich nun entweder von Hand modellieren oder mittels Motion Capturing (MoCap) gewinnen und werden dann unter Zuhilfenahme des Animations-Skeletts auf das 3D-Modell übertragen.

Dank moderner Grafikkarten wird der letzte Schritt – das so genannte Vertex Skinning – heutzutage zur Laufzeit des Spiels im Vertex Shader durchgeführt. Als Key Frames müssen wir nun nicht mehr das komplette Modell speichern sondern lediglich das Animations-Skelett in der betreffenden Animationspose (genauer gesagt die Transformationsmatrizen für alle Skelett Gelenke). Im Vertex Shader lassen sich dann die einzelnen Vertices mit den Transformationsmatrizen der zugeordneten Gelenke individuell transformieren.

Basis für die Modellierung der einzelnen Animationsposen und Transformation der Vertices ist die Vorwärts-Kinematik, mit der wir uns im weiteren Verlauf dieser Artikelreihe befassen werden.