Keine Schatten beim starten des Spiels!

  • Hallo Leute,


    vor ungefähr einem Jahr habe ich hier schon mal einen Thread eröffnet, in dem ich das Problem hatte, dass nach einem Build keine Schatten mehr vorhanden waren. Dank euch konnte ich das Problem lösen. Allerdings ging mir immer mehr das Builden auf die Nerven weil es bei größeren Levels immer extrem länger dauerte.


    Der kyodai hat mir damals den Tipp gegeben die Einstellungen im Projekt auf "Allow static lighting" zu deaktivieren. Man kann dadurch keinen Build mehr ausführen, kann aber ganz viele dynamische Lichter nebeneinander setzen und alles ist gut. Die Einstellung habe ich auch getätigt.


    Das Problem was ich habe ist, dass sobald ich nun ein dynamisches Licht setze in den Schatten das Wort "Preview" zusehen ist. Was ich merkwürdig finde, da man es ja über "Build" nicht weg bekommen kann, weil es ja nicht mehr ausführbar ist.


    Wenn ich nun aber auf "Play" klicke, sind die Schatten, welche immerhin im Editor angezeigt wurden komplett weg. Alles sieht extrem hässlich aus. Wie kann ich das Problem lösen?


    Ich danke schonmal :)


    Im Editor:


    Wenn ich auf "Play" klicke

  • Wegen dem preview klicke mal im viewport show --> Visualize --> Preview shadows indicator. Ist leider immer per default an.


    Im builtoder play solltest du Schatten sehen. Hast du deine lights wie Sonne und co auch auf "dynamic" gestellt?

    Oh Gott wie dumm... Genau das war das Problem! Ich hatte einige Lichter noch auf Stationary gehabt. Ich muss allerdings zugeben, dass mir nicht bewusst war, dass nur noch die Möglichkeit des "dynamic Light" besteht. Aber so ist es auch super.


    Vielen Dank:)

    • Offizieller Beitrag

    Alles was auf Static steht, wird Gebaked dabei werden die Schatten Informationen in den Lightmaps gespreichert. (Static = Statisch nicht bewegend)

    Sind die Lichter auf Dynamic werden sie in Echtzeit angezeigt und werden von der Engine beim Bake auch nicht berücksichtigt. Dynamik ist nicht so performant wie statischer Schatten dafür kann er aber für den Charakter etc verwendet werden.


    Ein Haus bewegt sich nicht, also Statisch. Ein Baum bewegt sich je nach Einstellung deswegen Static oder Dynamisch. Wobei man sich da wirklich überlegen sollte ob man den Schatten für jedes Blatt wirklich in Echtzeit berechnen möchte.


    Der Charakter braucht Statisches Licht, es du willst den Hiroschima Effekt wo man den Schatten am Boden noch sieht obwohl die Person gar nicht mehr da ist.

  • Ich hätte da auch nochmal eine Frage und stelle sie einfach mal hier drin. Es gibt ja bei Static Meshes die Möglichkeit Schatten erzeugen zu lassen, die im Spiel unsichtbar sind.


    Bei einem blueprint finde ich diese Einstellung allerdings nirgends.

    Was ich möchte: Bsp. Wände in einem blueprint machen, das blueprint in die 3d Welt ziehen, das blueprint unsichtbar machen und die Schatten von diesem unsichtbaren actor trotzdem darstellen zu lassen. Geht das?

  • Also meine erste Reaktion ist erstmal "Hä???"


    Klingt auf jeden Fall sehr unlogisch was du da vorhast. Denn warum sollte man Schatten darstellen die nirgends zugeordnet werden können? Deswegen frage ich doch mal lieber was genau du darstellen möchtest. Bestimmt gibt es dafür eine elegante(re) Lösung oder so.

    • Offizieller Beitrag

    Also entweder ist ein Objekt da und wirft Schatten oder ist nicht da und wirft keine Schatten.


    Das Baken der Lightuv bedeutet zb das Objekt A Schatten auf Objekt B wirft,

    Obekt A wift also Schatten und B Bekommt der Schatten ab.

    Der Schatten von Objekt A wird so auch in Objekt B gespeichert.


    Der Schatten der ein Baum auf ein Haus wirft, wird also im Haus und nicht im Baum gespeichert.


    Es gibt leider NOCH keinen Runtime Lightbaker der zur Laufzeit bei Verändungen einzelne Objekt neu Baken kann. Das wird aber sicherlich in den nächsten jahren kommen.


    Du könntest dein licht Moveable stellen. Ist es an Wirfst das Licht Schatten, ist es aus wirfst es keinen Schatten.


    Ne Möglichkeit wäre es vielleicht noch den Lightuv Channel zu zur Laufzeit zu wechseln keine Ahnung ob das möglich ist. Dann könntest du die Lightlight UV mit Schatten gegen eine Ohne Schatten austauschen.

    Ich glaube aber das Baken von zwei uvlightchannels ist nicht möglich.

  • Also entweder ist ein Objekt da und wirft Schatten oder ist nicht da und wirft keine Schatten.

    Da muss ich leider widersprechen. Wenn du ein Static Mesh in deine 3D-View ziehst und dann im Details Bereich den Haken bei "Hidden shadow" setzt, wird trotzdem ein Schatten dieses Objektes erzeugt, wenn das Objekt bei "Visibles" den Haken heraus nimmst (Also nicht sichtbar ist). Und selbst bei dynamischen Lichtern.


    Also meine erste Reaktion ist erstmal "Hä???"

    Das glaube ich dir gerne :D

    Ich möchte das deswegen machen, weil das Objekt an sich total im weg wäre, zwischen Spielerkamera und Spielgeschehen. Aber es soll trotzdem ein Schatten erzeugt werden, weil man so sehen soll, dass da etwas ist, das Schatten erzeugen würde.

  • Da muss ich leider widersprechen. Wenn du ein Static Mesh in deine 3D-View ziehst und dann im Details Bereich den Haken bei "Hidden shadow" setzt, wird trotzdem ein Schatten dieses Objektes erzeugt, wenn das Objekt bei "Visibles" den Haken heraus nimmst (Also nicht sichtbar ist). Und selbst bei dynamischen Lichtern.

    Das glaube ich dir gerne :D

    Ich möchte das deswegen machen, weil das Objekt an sich total im weg wäre, zwischen Spielerkamera und Spielgeschehen. Aber es soll trotzdem ein Schatten erzeugt werden, weil man so sehen soll, dass da etwas ist, das Schatten erzeugen würde.

    Die Erklärung macht es nicht wirklich besser.


    Oder meinst du ausblenden wie bei Spielen mit Isometrischer Ansicht wo man die Dächer in geschlossenen Räumen ausblendet damit man die Spielfigur weiterhin sieht? Das könnte dann durchaus gehen, weil die Shadowmap ist ja erstellt und nur das Objekt wird ausgeblendet.

  • Oder meinst du ausblenden wie bei Spielen mit Isometrischer Ansicht wo man die Dächer in geschlossenen Räumen ausblendet damit man die Spielfigur weiterhin sieht? Das könnte dann durchaus gehen, weil die Shadowmap ist ja erstellt und nur das Objekt wird ausgeblendet.

    Das beschreibt es evtl. ganz gut. Aber wie bekomme ich das hin, dass ganze unsichtbare blueprints Schatten erzeugen? Ich würde das gerne mit dynamischen Lichtern machen.(Also wie bei normalen static Meshes)

  • Ehrlich gesagt habe ich mich mit einem derartigen Problem noch nicht beschäftigen müssen/können.


    Aber wenn ich das Problem angehen würde, dann würde ich mal nach Tutorials zum Thema Line of Sight oder ähnliches googeln um festzustellen ob und was in der Sichtlinie liegt und entsprechend mit Visible Off reagieren. Mal so als Ansatz.