Gameaniamtion - Grundlagen
Januar 2002 by Michael Brempel
Email | Homepage


Einleitung
Dies ist ein kurzes Tutorial, in dem ich versuchen möchte, die Grundlagen für die Erstellung von Sprite-Animationssequenzen für Spiele zu erklären.
Dies ist nur ein grober Überblick, denn vieles ist natürlich abhängig von der jeweiligen Grafikengine des Spiels.


Gameanimation - Grundlagen
Für unser Game benötigen wir einen Fisch mit einer loopfähigen Schwimmanimation. Als Colorkey/Transparenzfarbe verwendet die 2D-Engine RGB(0,255,0) und uns stehen 6 Frames zur Verfügung.


Zunächst erstellen wir unseren Fisch in einem Animationsprogramm wie zB 3DStudio MAX. Bei der Animation müssen wir nun auf die erwünschte Loopfähigkeit Rücksicht nehmen. Um einen gleichmäßigen Animationscycle zu bekommen sollten wir Keys an Frame 0, 2 und 4 setzen. Wichtig ist nun, dass wir die Keys von Frame 0 nach Frame 6 kopieren. Der Fisch ist nun in Frame0 und Frame6 in genau derselben Pose.

Als Backgroundcolor stellen wir nun den Colorkeywert RGB(0,255,0) ein. Ganz wichtig für Sprites ist es, dass wir den Antialiasing gegen den Background beim Rendern abschalten, da unser Fisch sonst später einen grünen Fransenrand aufweist.

Ausserdem ist es sehr vorteilhaft, wenn wir den Fisch gleich in der richtigen Größe rausrendern, damit wir uns ein späteres Skalieren in einem 2D-Programm ersparen. Wir nehmen die nötigen Einstellungen vor und rendern dann Frame 0-5 raus, idealerweise im bmp-Format.
Als nächstes müssen wir feststellen, ob die Grafikengine Einzelbilder verarbeitet oder, wie in diesem Beispiel, die Animation in einem Bitmap vorliegen sollte. Ausserdem müssen wir darauf achten, dass die Sprites alle die gleiche Größe haben. Um Sprites zu einem Bild zusammenzufassen bietet sich das Freewaretool Tyler hervorragend an. Die 6 Bilder werden reingeladen, in die richtige Reihenfolge gebracht und als ein Bitmap wieder abgespeichert. Tyler bietet ausserdem noch einige Zusatzfeatures wie das Betrachten der Bilder als Animationsfolge oder das gleichzeitige Zuschneiden aller Bilder...das sogenannte Cropping.
Der letzte Schritt besteht aus der 2D-Nachbearbeitung des Bildes zB in Corel PhotoPaint. Zunächst sollten wir eine neue Ebene aus dem Hintergrund erstellen. Nun sollten wir überprüfen, ob die Hintergrundfarbe tatsächlich durchgehend dem Colorkeywert entspricht. Dies lässt sich mit Hilfe der Farbmaske oder der Transparenzfarbe leicht feststellen. Dabei ist darauf zu achten, dass zB die Farbmaske keine Glättung und keine Toleranz besitzt. Die Flächen mit der Colorkeyfarbe löschen wir, so dass wir nur noch die Fische in dieser Ebene haben. Falls der Colorkey nicht stimmt kann man das sehr leicht über die Layertechnik und Farbtransparenzen beheben. Wir arbeiten nun ausschließlich in der neu erstellten Ebene. Ausserdem sollten wir aus dem neuen Objekt noch eine Maske erstellen. Das hat den Vorteil, dass wir alle Filter, notfalls auch Weichzeichner verwenden können, ohne Gefahr zu laufen, dass ausserhalb der Maske etwas gezeichnet wird. Ausserdem werden die Filter auf alle Fische gleichzeitig angewendet.
Nun können wir zB Farb-, Kontrast- oder Gammakorrekturen vornehmen. Vorsichtig muss man jedoch mit 'lokalen Filtern' sein, die nicht gleichmäßig auf die gesamte Maske wirken, da ansonsten die Animation zerstört werden kann. Dasselbe gilt natürlich auch für einzelne Pixelkorrekturen mit einem Pinselwerkzeug. Manchmal muss man jedoch von Hand nachpixeln, falls irgendwo im eigentlichen Bild der Colorkeywert verwendet ist. Dafür nimmt man dann einfach einen ähnlichen Farbwert, den man dann an die Stelle pixelt.

Um Speicherplatz zu sparen können wir noch versuchen das Bild in 8bit-Palette zu konvertieren. Auf jeden Fall müssen wir dann sicherstellen, dass in der Palette der Colorkeywert vorhanden ist. Ausserdem sollten wir vor dem Abspeichern den Colorkey nochmals geschwind über Farbmaske checken und schon ist das Bitmap fertig zum Einbinden.



Allgemein:
- beim Nachpixeln Antialiasing/Glättung des Pinselwerkzeuges deaktivieren
- vor dem Bearbeiten neue Ebene und Maske aus Objekt erstellen
- bei Farbmaske/Farbtransparenz Antialiasing/Glättung und Toleranz deaktivieren
- die Größe des Bildes sollte nicht größer sein wie die im Spiel verwendete Monitorauflösung
- der Coder ist einem bestimmt sehr dankbar, wenn man ihm die Bildmaße angibt ;o)

Viel Spass weiterhin...
Michael 'Mechiil' Brempel