Teleportation ins Universum

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Teleportation ins Universum

      Neu

      Hey Leute
      Ich arbeite gerade an einem Game in dem man von der Erde ins Universum fliegen und man dann auch auf andere planeten reisen kann.
      Das Universum mit allen Planeten habe ich schon erstellt die Erde hätte ich auch schon, beides sind aber eigene Levels.

      Jetzt meine Frage:
      Wie kann ich einen Teleporter erstellen, mit dem ich von der Erde ins Universum gelange und ich dann im Universum sozusagen von der Richtung der Erde weiterfliegen kann und ich dann auch noch zu den andere Planeten reisen kann?

      Oder gibt es eine andere möglichkeit anstelle der Teleportation, denn mit dem "OpenLevel - Befehl" funktioniert es nicht.


      Ich würde gerne soetwas machen:




      Kurz gesagt, ich möchte das Selbe wie im Video erreichen, also das meine Sphere vielleicht auch so aussieht (also eine Sphere mit bergen und so).

      Meine zweite Frage:
      Wie kann ich eigentlich eine Sphere umformen damit ich, wie im Video oben, eine art Sphere verformen kann, dass diese dann Berge und täler, vielleicht auch höhlen enthällt?


      Danke schon mal für eure Hilfe


      PS. Falls die Fragen etwas dumm geschrieben sind, tut es mir leid. :D

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von ingorhd ()

    • Neu

      Dumme Fragen gibt es nicht nur dumme Antworten aber ich geb mein bestes :)


      ingorhd schrieb:

      Wie kann ich eigentlich eine Sphere umformen damit ich, wie im Video oben, eine art Sphere verformen kann, dass diese dann Berge und täler, vielleicht auch höhlen enthällt?
      Das geht nicht! Das Prinzip einer Heightmap ist das eine Heightmap absolut und zu 100% flach ist. Ich möcht mal eben erklären wie eine Hightmap funktioniert:

      Im Video sieht du die ganzen Berge. In Wirklichkeit sind diese aber nicht da *lol* den wenn du das Level startest werden die höhen Informationen um deinen Player herum aufgebaut. Im Prinzip werden also nur die Berge die als Player sehen kannst nach oben gezogen.
      Im Prinzip wird dir also vorgegaukelt es gäbe Berge und Täler die dauerhaft vorhanden sind.

      Das Prinzip der Heightmap ist also das die höhen Informationen (NUR BEI BEDARF) aus der Heightmap ausgelesen werden und die entsprechenden Vertecies nach oben gezogen werden.
      Dieser Trick unterscheidet ein UE4 Terrain von einem Mesh das du beispielsweise in einem 3D Programm erstellt hast. Durch diesen Trick können sehr sehr sehr große Terrain mit unendlichen Details angezeigt werden.

      NOCHMAL: Die Vertecies werden einfach nur nach oben gezogen, je nach Höhenangabe in der Heightmap.

      Daraus ergibt sich nun ein Problem: Den wenn man die Vertecies nach oben zieht, werden auch die UVs verzerrt und nach oben gezogen.

      Hier kann man das sehr gut erkennen: i44.tinypic.com/t678eg.jpg

      Also haben sich die Entwickler etwas ganz besonderes einfallen lassen nämlich das Vertexpaint.

      Hierbei werden Farbinformationen auf ein Vertex gespeichert. Zb. "Vertex 16198 ist = Rot" Durch diese Information weiß die Unreal das dieses Vertex und sein Umfeld rot ist. Im Prinzip wird also auf die Postion des Vertex ein Roter Klecks gezeichnet. Da es sehr vieles Vertecies gibt, bilden sich daraus aus den vielen kleine Kleckse ein Großer roter Klecks. Natürlich gibt es nun nicht nur Rote Kleckse sondern auch andere Farben.

      Diese Art Informationen zu speichern nennt man Splatmap !

      So sieht das ganze dann aus:
      world-machine.com/images/wm23/splatmap.jpg

      Die Farben (zb das Rot) kann nun ganz klassisch nur ein Material ersetzt werden. Da hier die Vertex Position verwendet wird, gibt es keine Verzerrung da die Materials einfach nur unendlich gekachelt werden und die Splatmap definiert wo welches Material sichtbar ist.

      Egal wie groß dein Terrain ist, Egal wie viele Materials du hast. Deine Texturen werden immer gut aussehen. Würdes du dein Terrain aus einem Mesh erstellen hättest du die Probleme mit der UV.
      Man kann die Splatmap übrigens auch im 3D Programm baken, so kannst du dein Terrain in einem 3D Programm oder zb im world machine oder world creator erstellen und als Map Baken. Diese Map wird dann von der Unreal wieder in Vertex Positionen umgerechnet.

      Diese ganze heightmap Geschichte hat nur einen Nachteil: Da alle Vertex informationen einfach nur nach oben geschoben werden wodurch die Berge aufgebaut werden, kann man dadurch keine Höhlen etc in die Hightmap reinmachen. Wie soll man auch in eine 2D Textur ein 3D Loch reinmachen ? :)

      Deswegen benutzt man hier eine Kombination aus Terrain (Heightmap) und einem Mesh.
      Du könntest zb dein Terrain in ein 3D Programm laden, dort die Bergspitze abschneiden und das Terrain wieder (Ohne Spitze) ins Level laden. Die Spitze setzt du dann als Mesh wieder oben drauf. In diesem Mesh kannst du nun eine Höhle usw rein modellieren.

      Ein Terrain zu einer Spehere zu verformen wird auch nicht funktionen ,da wie gesagt die Heightmap immer nach oben verschoben wird. (Oben ist immer oben auch wenn das Terrain auf dem Kopfsteht.
      Willst du einen Planeten haben wie zb in star citizen dann braucht du krasses Voxel Terrain.

      No Mans Sky ist beipsielsweise auch Voxel basierend.

      In dem Video ist das übrigens auch keine Spehre, das sieht nur so aus weil er das Terrain so geformt hat als wäre es rund. Wenn du aber am Terrain entlang gehen würdest, würdest du feststellen das die Erde (Äh Planet) nicht rund ist :)


      Bei der Spiele Entwicklung wird eben überall beschissen. (Dumme Branche)
    • Neu

      Okay danke dir für deine Antwort @Sleepy

      Aber nochmals einen kleine Vergleich:
      Kennst du vielleicht das game "Osiris New Dawn"?

      Denn da ist es auch so geil gemacht, also dass man sozusagen von der Planetenoberfläche ind Universum gelangt, weisst du denn gerade, wie die dass gemacht haben, oder ich es ähnlich machen könnte?

      Hast du vielleicht ein Video?

      Danke dir schon mal

      Hier ein kurzer Trailer:



      Freundliche Grüsse
      IngorHD

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ingorhd ()

    • Neu

      Wie die das gemacht haben kann ich dir nicht sagen.

      Man könnte das beispielsweise per Levelstreaming lösen. Man fliegt auf den Planeten zu und ein neues Level mit der Planeten Oberfläche wird geladen.

      Wenn du aus dem Weltraum direkt auf dem Planeten landen willst dann wirst du um Voxel nicht herumkommen. Mir wäre keine Technik bekannt womit man einen Planeten so detailliert darstellen kann. = Voxel
    Unreal®, Unreal Engine, the circle-U logo and the Powered by Unreal Engine logo are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere.