Ich möchte ein 2D-Spiel erstellen, aber ich möchte den Charakter haben, Tonnen verschiedener Ausrüstungen in verschiedenen Kombinationen zu tragen, wie ein Rollenspiel oder so.
Nehmen wir also an, der Benutzer ändert seine Schultern und Hosen, dies muss dem Spieler gezeigt werden und all diese verschiedenen Ausrüstungen müssen der Aktion der verschiedenen Charaktere folgen (Schlagen, getroffen werden, Zauberei, etc.).
Ich sehe ein paar Probleme, bei denen ich wissen möchte, welche Vorgehensweise / welcher Algorithmus / welche Architektur am besten zu lösen ist.
1 - Sprites oder Animationen
Soll ich für jede Ausrüstung in jeder Aktionsanimation unterschiedliche Sprites erstellen?
Ist es besser, nur das Sprite des Geräts zu haben und es direkt auf dem Code zu animieren, z. B. durch Drehen und Übersetzen (mit etwas wie Tween auf Flash)?
Gibt es eine andere bessere Option? (Ich mag die obigen Ideen wirklich nicht)
2 - Positionen
Nehmen wir an, er schaut während eines Zuges des Charakters direkt in die Ansicht des Spielers, beendet aber seine Bewegung und zeigt dem Spieler seine rechte Seite (als würde er sein Schwert von einer Seite zur anderen schwingen).
Wenn wir einen Teil des Benutzers betrachten, wie zum Beispiel seinen Kopf, beginnt er vorne und dreht sich dann nach links.
Es bedeutet mindestens 3 verschiedene Positionen für jede Kopfausrüstung (Helm, Mütze, was auch immer).
Dies hat sicherlich Einfluss auf die Beantwortung der ersten Frage. Wie geht das am besten?
3 - Schichten
Betrachten wir eine Charakterbewegung, bei der er sich mit offenen Armen um 360 Grad dreht. Zu Beginn der Animation befindet sich seine rechte Hand in der Nähe der Sicht des Benutzers, und in der Mitte der Bewegung befindet sich diese wahrscheinlich hinter dem Körper des Charakters in der Animation.
Was auch immer die Option in Frage 1 ist, Sie müssen sicherlich eine Art Ebenenmodell verwenden, um dieses Sprite oder diese Animation näher an der Ansicht des Spielers zu starten und später zu weit von der Ansicht des Spielers zu wechseln.
Gibt es einen guten Weg, das zu tun?
Ich weiß, die Frage ist ziemlich lang und schwer zu verstehen. Lassen Sie mich wissen, wenn Sie der Meinung sind, dass es besser ist, einige Zeichnungen zu haben, um zu erklären, welche, und ich werde versuchen, das zu tun.
Antworten:
Ich denke, es hört sich so an, als ob Sie nach einem 2D-Skelett-Animationssystem suchen. Ich kenne leider kein Standardsystem dafür, da es größtenteils vom 3D-gfx-but-2D-Game-Trend abgelöst wurde.
quelle
Wie Zorba sagt, haben die meisten Retro-Spiele dies nicht speziell getan, da (mit Sprites) für jedes einzelne Gerät Animationen mit mehreren Frames benötigt würden.
Einige "faule" Alternativen:
quelle
In alten Spielen wie der Ultima-Serie zeichneten sie tatsächlich ein Gerät in jeder möglichen Charakterhaltung. Die Okklusion wird entweder dadurch behoben, dass die Ausrüstung nicht gezogen wird (wenn sich der linke Handschuh hinter dem Spieler-Sprite befindet, brauchen Sie sich keine Sorgen zu machen) oder indem die Ausrüstung einfach in der Reihenfolge von hinten nach vorne gezogen wird.
Offensichtlich war dies sehr arbeitsintensiv, und infolgedessen gab es relativ wenige Einzelstücke mit vielen palettentauschten und palettenmodifizierten Versionen dieser Ausrüstung.
In einem modernen Spiel würde ich dringend empfehlen, 3D-Charaktere zu erstellen. Wenn Sie zweidimensional wirkende Kunstwerke haben möchten oder Ihre Plattform nicht die Leistung für echtes 3D hat, ist es wahrscheinlich immer noch besser, alles in 3D zu modellieren, zu rendern und dann das Endergebnis von Hand zu optimieren.
Alternativ können Sie die 3D-Modelle in Echtzeit packen und sie in eine Textur rendern, wenn Sie wissen, dass Sie keine Feinabstimmung benötigen, keine PS für 3D-Gesamtleistung haben, aber keine riesige Sprite-Bibliothek ausliefern möchten Das Modell wird gleich im Spiel auftauchen.
quelle
Lesen Sie in James Da Silvas Buch nach, wo er erklärt, wie er "The Dishwasher: Dead Samurai" gemacht hat. Es wird Ihnen zeigen, wie KISS dies so ziemlich lösen kann. Der Vorschlag, 3D- oder 2D-Skelettanimationen zu verwenden, ist gültig und gehört in den gleichen Bereich.
quelle
Dies ist eine großartige Frage, aber ich denke, Sie haben sie selbst beantwortet. Sie benötigen ein 2D-Knochensystem, das das Wechseln von Knochenschichten unterstützt, sodass verschiedene Gliedmaßen bei der Drehung der Figur hintereinander und voreinander laufen können. Sie müssen Ihre Sprites auch aus 4 oder 8 Winkeln zeichnen (oder aus beliebig vielen). Je nachdem, welche Fähigkeiten in Ihrem Team vorhanden sind, ist es möglicherweise einfacher, diese Elemente in 3D zu erstellen und aus den gewünschten Winkeln zu rendern.
Die Verwendung einer 3D-Engine ist ebenfalls eine gute Lösung, obwohl dies eine Reihe von Herausforderungen mit sich bringt.
quelle