Am Wochenende habe ich weiter gearbeitet. Ich habe meine vier Animationen vorerst fertiggestellt. Später kann ich diese noch verfeinern.
Die Sprung-Animationen habe ich auch schon in PB mit Kosinus simuliert und sieht brauchtbar aus. Die anderen Bewegungen habe ich ebenfalls in PB simuliert.
Außerdem habe ich die Blender-Ausgabe optimiert, so dass die Sprites in der gewünschten Zielgröße (Höhe ca. 150px) mit transparentem Hintergrund und mit Anti Aliasing gerendert werden.
Voraussichtlich besitzt meine Figur 20 verschiedene Animationen (4 davon sind fertig, die anderen sind erstmal unwichtig und können erst später erstellt werden) á ca. 10-20 Sprites. Das sind am Ende insgesamt 200-400 Sprites.
Ich habe auch schon überprüft und getestet, die Anzahl der Frames je Keyframes in Blender zu reduzieren, so dass nur die notwendigen Frames gerendert werden und keine unnötigen minimalen Änderungen, die man mit dem Auge nicht wahrnehmen kann. Beispielsweise hatte meine Rennen-Animation insgesamt 40 Frames, die ich auf 20 Frames reduzieren konnte. Noch weiter reduzieren ist nicht möglich, da die Interpolierung der Animation bei bestimmter Wiedergabezeit anfängt zu ruckeln.
Es gab außerdem eine wichtige Überlegung bezüglich der Lade-Performance: Die 10-20 Sprites pro Animation beziehen sich immer auf die Spielfigur, die in eine Richtung (in dem Fall nach rechts) schaut. Ich benötige die 10-20 Sprites nochmal, aber diesmal spiegelverkehrt, damit die Figur auch nach links stehen, gehen, rennen und springen kann. Ich habe mich gefragt, was wäre am besten?
a) Dupliziere ich meine Dateien und spiegel diese einmal auf der Festplatte und lade diese separat in den Speicher? D.h. ich lade keine 200-400 Sprites insgesamt, sondern 400-800 insgesamt.
b) Oder ist es schneller, nur 200-400 Sprites einmalig zu laden und diese erst im Speicher zu duplizieren und zu spiegeln? Ich habe einen Performance-Test durchgeführt und das Duplizieren und Spiegeln im Speicher ist auf jeden Fall deutlich schneller.
Das war aber nur der erste Teil. Dazu kommt auch noch das Umfärben der Sprites, da ich in meinem Spiel auch gerne "Freunde" (die Figur der "Freunde" muss natürlich eine andere Farbe bekommen, um von der Hauptfigur zu unterscheiden) implementieren möchte, die man als Spielfigur retten kann, so dass man im Spiel auch ein Ziel hat und nicht nur von A nach B rennen muss, um die Levels zu absolvieren. Das Umfärben lässt sich gut mit demselben
Code von fabulouspaul mit dem Farbpuffer realisieren.
D.h. wenn ich die Sprites zusätzlich umfärben möchte, benötige ich von meinen originalen Sprites jeweils 3 Duplikate, die ich 1x spiegel und 2x umfärben muss. Das wäre dann 800-1600 Sprites, die ich von der Festplatte laden müsste. Das würde viel zu lange dauern. Da ist die Variante mit dem dreifachen Duplizieren deutlich schneller.
Meine nächste Aufgabe ist, mein Spielgerüst aufzubauen und alle vier Animationen mit der Spielsteuerung (Pfeiltasten, WASD-, Shift- und Leertaste) zu verknüpfen, so dass man schon mit der Spielfigur gehen, rennen und springen kann. Wenn das erledigt ist, kann ich hier wieder eine Gif-Animation posten. Danach würde ich anfangen, Spielfunktionen und meinen Level Editor zu entwickeln.
RSBasic hat geschrieben:Ich habe aber eine wichtige Frage an euch: Kennt sich jemand mit Blender und mit dem Pose-Modus aus und hat jemand auch Erfahrungen mit dem Animieren von Bones? Wenn jemand sich damit gut auskennt und Erfahrungen hat, bitte melden. Wenn jemand Lust hat, für mich vier wichtige Animationen (Gehen, Rennen, aus dem Stand springen, aus dem Lauf springen (d.h. Übergang vom Rennen zum Springen)) zu erstellen, bitte melden. Ich wäre sogar bereit, wenn der Aufwand zu groß ist, zu vergüten.
Das hat sich inzwischen erledigt, da ich inzwischen weiß, wie man das in Blender macht und komme damit gut klar. Übung macht den Meister. Deshalb ist Outsourcing nicht mehr notwendig. Es hätte zwar viel Zeit gespart, aber so ist das auch in Ordnung. Ich hätte wirklich gedacht, dass hier jemand gibt, der sich in Blender und mit dem Posing auskennt.