Screenshot mit Motion Blur („Langzeitbelichtung“)

  • Hallo zusammen! Bin neu hier, also entschuldigt bitte, falls die Frage zu blöd ist.


    Ich erstelle per „HighResShot“-Kommando einen Screenshot über einen CineCamera-Actor und würde gerne MotionBlur im Screenshot sehen. Also quasi eine Langzeitbelichtung simulieren.


    Nur leider sind die Screenshots immer "scharf".


    MotionBlur ist gesetzt.

    Der lange Shutterwert unter „Post Process/Lens/Camera/" ist eingestellt.

    Scheint aber alles keine Auswirkungen auf den Screenshot zu haben.


    Hab mal mit TimeDilation rumexperimentiert, bringt nichts.


    Sequencer ist vermutl. auch nicht der richtige Ansatz, da ich es in-game brauche.


    Habe leider keine Infos gefunden, außer dass hier jemand anmerkt, dass es bei ihm seit 4.22 nicht mehr funktioniert:

    https://answers.unrealengine.c…-blur-in-screenshots.html


    Würde mich über jede Idee freuen. Danke!

  • Sleepy

    Hat das Thema freigeschaltet
  • Herzlich willkommen im Forum,


    natürlich ist uns absolut keine Frage zu blöd. Ich habe so einen Screenshot noch nie gemacht. Beim Googeln jetzt habe ich noch gesehen, dass es auch mit der Version 4.25 Veränderungen für Motion Blur gegeben hat. Es stet in den Release Notes Motion Blur wäre jetzt immer an und dass man es auch beim Niagara Renderer auf und abdrehen kann. Leider weiß ich nicht was dieser Renderer ist, vielleicht ein Standard- Plugin habe ich mir gedacht.


    Benutzt Du noch irgendwelche Plugins und mit welcher Engine Version arbeitest Du denn?


    Eine Alternative wäre vielleicht das ganze mit einem externen Screenshotprogramm zu machen, falls im Playmode eh alles so ausschaut wie Du es haben willst.

  • Danke für die nette Begrüßung!


    Habe auf 4.25 und 4.26 jeweils ohne Plugins getestet.

    Um sicherzugehen, dass ich nichts verpfuscht habe, habe ich auch Tests mit den offiziellen „Post Processing Content Examples“ von Epic gefahren (https://docs.unrealengine.com/…rocessing/1_12/index.html).

    Leider mit dem selben Ergebnis: Zur Laufzeit wird Motion Blur korrekt angezeigt, macht man jedoch einen Screenshot ist Blur nicht sichtbar.


    Die Bewegungsvektoren (Show > Visualize > Motion Blur) sind ok und beim manuellen Ausführen des Screenshots (Editor/High Resolution Screenshot…) friert das Bild INKLUSIVE BLUR ein, der generierte Screenshot ist aber wieder OHNE BLUR.


    Würde ich den Screenshot extern machen, wäre es durch den Freeze sogar möglich, bringt mir aber leider nichts, da ich die Screenshot-Funktion in-Game brauche.


    Falls jemand eine Idee hat, ob es eine andere Möglichkeit gibt, innerhalb des Spiels einen Screenshot zu erstellen als per „Execute Console Command „HighResShot““ würde ich mich freuen. (Capture Scene Target:Capture Component 2D hab ich schon getestet, leider auch ohne Blur).

  • Zur Laufzeit wird Motion Blur korrekt angezeigt, macht man jedoch einen Screenshot ist Blur nicht sichtbar.

    Naja, das ist doch genau das was Motion Blur aussagt, bei Bewegung (Motion) wird das Bild verschwommen (Blur)...


    Ein Screenshot nimmt logischerweise nur den Moment auf und keine Bewegung.



    Wenn du in der realen Welt ein Bild mit langer Belichtungszeit aufnimmst, passiert das nicht in nem Bruchteil einer Sekunde, sondern in einigen Sekunden bis hin zu Minuten...


    Ich glaube auch nicht wirklich, dass du nur durch Motion Blur, einen realistischen Effekt hin bekommst, wie wenn du es mit ner langen Belichtungszeit hinkriegen würdest.



    Das einzige was mir einfällt, ist, dass du es mit Partikeleffekten fakest ^^

  • Wenn du in der realen Welt ein Bild mit langer Belichtungszeit aufnimmst, passiert das nicht in nem Bruchteil einer Sekunde, sondern in einigen Sekunden bis hin zu Minuten...

    Genau das ist ja der Punkt. Der CineCamera-Actor hat den Parameter "Shutter Speed".

    Dieser Shutterwert wirkt sich einerseits auf die Belichtung aus, andererseits aber auch auf die Stärke des Motion Blurs.


    Durch die Bewegungsvektoren (s.o.) wird diese Unschärfe in das Objekt eingerechnet.

    Das Blur wird also m.W. nicht über einen "temporalen Effekt" (bspw. ein Überblenden von 10 Frames) generiert.

  • Himmel! Wo haste das denn ausgegraben, tausend Dank!


    Einen ersten Test habe ich jetzt mal abgebrochen, weil mir das Hirn wehtut...:)


    So wie es aussieht, hat es eine große Auswirkung auf die Performance, da wohl 2 Renderläufe benötigt werden. Da es auf alle Materialien angewendet werden muss, sollte also, wenn kein Blur gewünscht ist, der Vektor auf 0 gesetzt werden.

    Mein Hauptproblem ist aber, dass - logischweise - die Bewegung eines Objekts anhand eines Vektors zwischen 2 Frames generiert wird. Die Bewegung des Objekts selbst, bspw. eine Rotation, wird (und kann) hier nicht reingerechnet. Und das bräuchte ich zwingend.


    Ich stecke noch etwas Arbeit rein, aber vermutl. ist es für meinen Einsatzzweck leider nichts, bzw. bin ich langsam soweit, dass ich wohl wirklich einfach ein paar Frames zusammenblenden muss, um das von mir gewünschte Ergebnis zu erhalten.


    Danke nochmal für den Tipp!!