Angenommen, ich erstelle ein Spiel (in Java oder C ++). In diesem Spiel habe ich einen Charakter, der eine Schwertschwunganimation ausführen kann, aber der Charakter kann verschiedene Schwerter ausrüsten.
Muss ich für jedes einzelne Schwert eine Animation erstellen oder gibt es einen anderen Weg? Ich mag es, wenn ein Charakter verschiedene Rüstungen ausrüsten kann, erstelle ich für jede Rüstung ein neues Sprite oder gibt es eine Möglichkeit, beispielsweise einen Basischarakter zu haben, der alle Animationen mit verschiedenen Schwertern ausführen und verschiedene Rüstungen auf demselben Bild haben kann ?
Antworten:
Ja, Sie können dies auf relativ einfache Weise mithilfe von Transparenz tun.
Was Sie tun müssten, wäre, ein paar Schichten von Sprites anstelle von einer zu erstellen, die so vorbereitet und angeordnet sind, dass sie, wenn sie angezeigt werden, eine ganze Person bilden.
Ich habe ein Beispielbild angehängt, das zeigt, wie das aussehen könnte.
Jetzt können Sie Stahlschwerter einfach durch Goldschwerter ersetzen und müssen keine neuen Sprites mehr erstellen.
Wenn Sie sich an dieser Stelle eher wie ein Künstler fühlen
Dann ziehen Sie einfach ein paar (5-10) Schwertpositionen (vorberechnet). Dies hat den zusätzlichen Vorteil, dass Sie die Schwertform während der Bewegung ändern können und insgesamt bessere Ergebnisse erzielen können.
Die Anzahl der Animationsframes liegt natürlich bei Ihnen. Was bei dieser Methode wichtig ist, ist, dass Sie mit einer geeigneten Sprite-Delay-Engine (nicht so schwer zu schreiben) mehr Frames für Teile haben können, die sich schneller bewegen, und weniger für Teile, die sich langsamer bewegen.
Eine einfache Pseudocode-Implementierung könnte aussehen
Wenn Sie sich eher wie ein Programmierer fühlen
Beachten Sie, wie ich den ganzen Arm von der Basis entfernt habe. Sie können das Schwert leicht drehen, um die Bewegung zu simulieren. Dies erzeugt eine sehr flüssige Animation und erfordert nur Sprite, das in der Grundposition gezeichnet wurde, kann sich jedoch etwas weniger natürlich anfühlen.
Vergib mir, dass ich keinen
.gif
Vergleich vorbereitet habe , aber ich bin kein Künstler :)Dies ist zwar nur ein Beispiel, aber es steckt natürlich noch mehr dahinter. Bei einem Top-View-Spiel oder einem isometrischen Spiel kann ein anderer Ansatz sinnvoll sein. Diese Antwort soll nur die allgemeine Idee veranschaulichen.
quelle