Ich plane ein isometrisches Geschäftssimulationsspiel, bei dem der Spieler ein Büro mit den üblichen Möbeln wie Schreibtischen, Whiteboards usw. sieht.
Charaktere (Mitarbeiter / NPCs) im Spiel sollten mit diesen Objekten interagieren, indem sie einige vordefinierte Aufgaben ausführen, z. B. das Tippen auf der Tastatur am Schreibtisch oder das Schreiben auf das Whiteboard usw.
Was mich speziell interessiert, ist das folgende Szenario:
Der Charakter geht durch das Büro (1) zu seinem Schreibtisch (2), setzt sich und beginnt zu tippen (3).
Soweit ich weiß, hätte ich ein Sprite-Blatt für die Charakterbewegung (1) und ein statisches Sprite für den Schreibtisch (2), aber ich verstehe nicht ganz, wie der dritte Schritt behandelt werden würde.
Gibt es ein kombiniertes Sprite, das sowohl Schreibtisch als auch Charakter enthält? Ich nehme nicht an, sonst würde ich für jede Kombination aus Schreibtisch und Charakter ein Sprite-Blatt benötigen.
Wie wird das normalerweise gehandhabt?
BEARBEITEN:
Hier ist eine spezielle Beispielanimation aus dem Spiel Theme Hospital. Sie können das Video hier sehen .
Soweit ich sehen kann, ist die Animation in mehrere Schritte unterteilt.
Schritt 1 - Der Charakter bewegt sich zwischen Schreibtisch und Stuhl.
Dies deutet darauf hin, dass Stuhl und Schreibtisch tatsächlich getrennte Sprites sind.
Schritt 2 - Der Charakter setzt die Animation
Beachten Sie, wie sich der Stuhl im allerletzten Rahmen näher am Schreibtisch befindet.
Schritt 3 - Schreibtischanimationen
Schritt 4 - Stand-up-Animation
Ist das gleiche wie hinsetzen, aber umgekehrt gespielt.
Schritt 5 - Gehen Sie weg
Verwenden Sie die normale Bewegungsanimation, um sich zu entfernen.
Die Fragen, die ich habe, sind, wie diese Animationen am besten getrennt werden und wie ein Grafiker diese Animationen normalerweise bereitstellen würde.
Sitzt und tippt der Charakter auf dem Schreibtisch tatsächlich drei verschiedene Sprites (Schreibtisch, Charakter und Stuhl)? Kennt jemand ein Beispiel für Sprites ähnlicher Animationen?
EDIT 2:
Ich denke, meine größte Sorge ist, dass ich die richtigen Erwartungen habe, wie die Sprites tatsächlich aussehen werden. Ich kann sie nicht selbst zeichnen, daher muss ich jemanden dafür bezahlen, und ich gehe davon aus, dass es eine Art Best-Practice-Methode gibt, um diese Art von Animationen zu erstellen.
Eine alternative Idee wäre, Ihren Sprites ein Tiefen- / Z-Pufferbild hinzuzufügen, ähnlich wie 3D-APIs (OpenGL) sicherstellen, dass sich Polygone nicht überlappen. Für ein einfaches Sprite-Spiel kann es sich nur um ein Bündel von 0/1 Bits (Schwarz-Weiß-Bitmap) handeln (obwohl Sie bei Bedarf mehr Tiefenstufen verwenden können).
Wenn Sie ein kombiniertes "Schreibtischstuhl" -Sprite haben und möchten, dass der Stuhl vor anderen Sprites (dh Personen) auf diesem Quadrat erscheint, würden Sie die Z-Buffer-Version des Zeichens "schwarz" machen, während der Schreibtisch "weiß" wäre. .
Wenn Sie das dynamische Sprite (eine Person) auf dieser Kachel rendern, wird überprüft, welche Farbe sich im Tiefenpuffer befindet. Bei Pixeln, die 0 (schwarz) sind, überspringen Sie das Zeichnen der Sprites-Pixel der Person und lassen die Stuhlpixel dort.
Anstatt jedes Pixel 1 gleichzeitig zu überprüfen, besteht eine einfachere Möglichkeit, die Überprüfung durchzuführen, darin, die Sprite-Pixel mit dem Tiefenpufferwert zu multiplizieren, da die nähere Tiefe 0 wäre, und die zu löschen. Dann müssen Sie natürlich einen Farbschlüssel eingeben (es sei denn, Sie haben einen Alpha-Farbkanal).
Dies erhöht natürlich den Overhead (obwohl Sie ihn für alles überspringen können, das nicht mehrere Tiefenstufen benötigt, wie z. B. einen Schreibtischstuhl). Sie müssen auch Ihre Animationen synchronisieren (dh die Person müsste mit der Schreibtischstuhlanimation übereinstimmen). Es gibt Ihnen nicht die gleiche Flexibilität, nur eine ganze Reihe separater Sprites zu haben.
quelle