UE4 | Der Zyklus von Tag und Nacht Änderung von SkySphere

Der Wechsel von Tag und Nacht steigt häufig bei den Benutzern. Und wenn die Bewegung der Sonne selbst recht einfach zu organisieren ist, ist es bereits viel schwieriger, mehr oder weniger realistische Arbeit zu leisten *** SkySphere ***.

In diesem Artikel habe ich nicht vor, alle möglichen Möglichkeiten aufzuzeigen, um die Ausrichtung von DirectionalLight mit den Jahreszeiten und der Präzession zu ändern. Zu diesem Thema gibt es meiner Meinung nach genügend Materialien. Jemand tut dies über Blueprint , aber ich verwende C ++ , sodass die Uhr auf dem Server tickt und die Uhr des Clients regelmäßig (alle paar Sekunden) synchronisiert. Gleichzeitig erfolgt keine Bewegung auf dem Server. Es ist keine herrische Sache, die Sonne über den Himmel zu bewegen.


Als nächstes werde ich über die auftretenden Probleme sprechen und meine Version des Upgrades der Standard- BP_Sky_Sphere zeigen, damit sie mit dem täglichen Zyklus korrekt funktioniert.




Vor der Änderung ist es sehr nützlich, den gesamten Inhalt des EngineSky- Ordners in Ihr Verzeichnis zu kopieren, um den Standard- Blueprint und die damit verbundenen Ressourcen nicht zu beschädigen .





Zunächst möchte ich über einen Fehler (oder Funktionen) der Standardkugel sprechen. Das angehängte StaticMesh für die Kugel hat eine Skala von 400. Wenn Sie es auf 1 ändern, scheint sich nichts zu ändern, aber wenn Sie ein wenig vorauslaufen , werden Sie sich wie im Film „The Truman Show“ fühlen. Ja, diese Kugel ist zwar riesig, hat aber ihre eigenen Grenzen. Ein offensichtliches Problem für offene Welten, das sehr einfach zu beheben ist, indem die Kugel mit dem Spieler bewegt wird.



Alternativ können Sie die Kugel natürlich noch größer machen, aber ich bin von einer solchen Idee nicht sehr beeindruckt.




Der nächste Punkt ist das Einstellen einer normalen Nacht. Ich mag es nicht, dass die Sterne erst um Mitternacht erscheinen und der Rest der Zeit - es ist nur eine Art langwieriger Abend.


Es wird auch ganz einfach gelöst, indem die vorhandenen Kurven angepasst und neue hinzugefügt werden.



Kurvenbeispiel



Das nächste Problem ist die Lichtdämpfung für DirectionalLight und SkyLight . Es ist seltsam genug zu beobachten, dass es nachts nicht schlimmer als tagsüber zu sehen ist. Es wird auch sehr einfach durch Hinzufügen und Anpassen von Kurven gelöst.


Beleuchtungsstärken ändern



Nun, zum Nachtisch ... Sterne bewegen sich nicht! Wenn die Nacht lang und voller Schrecken ist , wird der Spieler es vielleicht nicht bemerken. Aber sind wir für einen ernsthaften Ansatz?


Zuerst habe ich die Textur der Sterne bewegt, indem ich dem Material zusätzliche Variablen hinzugefügt habe.


So etwas in der Art

Solange sich die Sonne entlang der Äquatorialebene bewegt, ist alles in Ordnung. Bei der Simulation hoher Breiten beginnen jedoch mathematische Schwierigkeiten und die mangelnde Bereitschaft der Textur, sich nach Belieben zu drehen. Aber sind wir für einen ernsthaften Ansatz? :) :)


Infolgedessen beschloss er, zwei Himmelskugeln herzustellen. Eine mit Wolken, Sonne und Himmel und die zweite, etwas größer, mit Sternen. BP_Sky_Sphere verband auch eine zusätzliche Kugel und bat sie höflich, sich mit der Sonne zu drehen ...


Und der interessanteste Teil! Machen Sie die kleinere Himmelskugel teilweise transparent. Wenn ich nur die Logik des Materials mit Opacity verbinde , habe ich natürlich wundervolle Sterne durch die schwarzen Nachtwolken scheinen lassen. Daher musste ich das Material erneut mit einer Datei ändern und tatsächlich zwei Himmel zeichnen. Eine mit schwarzen Nachtwolken für die Visuals. Und die zweite mit immer schneeweißen Wolken für Opazität . Außerdem fügte er tagsüber viel Weiß hinzu, wodurch der Himmel tatsächlich undurchsichtig wurde, so dass das durchscheinende Blau seine Tiefe nicht erschreckte.


Blaupause

Klickbares Bild


Material







Jetzt funktioniert alles wie vom Schöpfer beabsichtigt, in diesem Fall - von mir. Es bleibt nur die Feinabstimmung der Steuerkurven, aber insgesamt sieht es ziemlich gut aus.




Wenn Sie Ideen haben, wie Sie dies vereinfachen können, teilen Sie diese bitte mit. Ich wäre dankbar.

Source: https://habr.com/ru/post/de419469/


All Articles