Animal Crossing hat eine einzigartige Art, die Weltkarte zu scrollen: Wenn sich der Charakter nach unten bewegt, rollt die Welt oben herum und herum, als wäre sie an einer Pappröhre befestigt:
Dieses Video zeigt, wie es sich bewegt.
Wie kann ich diesen Effekt erzeugen?
Antworten:
Ich habe ein bisschen experimentiert, nachdem ich Deathspank gespielt habe, was einen ähnlichen Effekt hat. Obwohl ich mich nie genug damit befasst habe, um zu sehen, ob es so optimiert werden kann, dass es super gut funktioniert, besteht eine Möglichkeit darin, die Elemente in Ihrem Vertex-Shader nur basierend auf der Tiefe zu ändern. Eine Funktion, die cos (Tiefe) einer Modifikation der Y-Achse zuordnet, funktioniert. Sie können es so einstellen, dass die Welt nicht nur in der Ferne abfällt, sondern sich auch näher als eine Tiefe befindet, wodurch sich die Welt besonders rund anfühlt. Sie können dasselbe für den Wert der X-Achse tun, um ihn sphärischer erscheinen zu lassen. Ich bin mir nicht sicher, ob solche Spiele so funktionieren. Meine Experimente lieferten unbefriedigende Ergebnisse, aber ich habe nicht viel mit den Verhältnissen gespielt, daher war es möglicherweise so einfach, die Falloff-Rate zu ändern, um sie zu verbessern.
quelle
Es scheint, als würde eine "flache Welt" erstellt und auf Zylinderkoordinaten abgebildet . Im Wesentlichen die Welt auf einen Zylinder wickeln. Ich habe etwas Ähnliches mit einer flachen Welt gemacht, aber ich habe es auf eine Kugel gewickelt:
Die Art und Weise, wie ich es für eine Kugel gemacht habe, ist ähnlich wie für einen Zylinder. Wählen Sie einen geeigneten Radius (ρ oder "rho" in Zylinderkoordinaten) für Ihre Welt. Nehmen Sie für jeden Scheitelpunkt die XZ-Koordinaten Ihrer Welt (vorausgesetzt, Y ist die Höhe) und wandeln Sie sie dann mit XZ und Radius plus Y in Zylinderkoordinaten um. Wenn Sie das Y nicht hinzufügen, erhalten Sie einen flachen Zylinder. Konvertiere dann zurück in kartesische Koordinaten, um im Spiel zu zeichnen.
quelle
Sie möchten von einer planaren Welt zu einer zylindrischen Welt wechseln.
Eine Drehung um die x-Achse (in homogenen Koordinaten) sieht folgendermaßen aus:
Wo:
Sehen Sie sich das Bild an, um den Winkel zu berechnen. Das pi / 2 bricht ab und Sie bleiben mit:
Schauen Sie sich auch das Bild an. Der Winkel des projizierten Punktes ist abhängig vom horizontalen Abstand zum Zeichen, der Abstand zur Kugel ist abhängig von der Vertikalen.
Stellen Sie sicher, dass Sie Dinge aussortieren, die über dem Horizont liegen, da sich sonst die ganze Welt dreht.
Haftungsausschluss: Ich habe das noch nicht getestet und bin kein Mathematikexperte, aber die Antwort lautet ungefähr so. Bitte korrigiert mich jemand, wenn ich falsch liege.
quelle