Is it possible to apply some sort of render delay to a camera

Hi, I was wondering if there is a way to apply some sort of a delay to a camera. I’m working on a project that displays the point of view of 2 cameras (with different angles, positions etc…) and I would need for the 2nd camera to display as if it was like half a second in the past. Is it something doable? And how can I make this work?
Thanks :slight_smile:

Unreal has a replay system. Maybe that would work.

1 Like

Hey there @SyneticHollow! Interesting question! Personally I don’t believe there’s any standard function in engine to delay taking the render from the camera and then applying it. you’d likely have to work from the source camera code for that.

I was thinking doing a rendertarget texture, passing that texture into a BP that makes a copy of it, delays, then sends that texture param to the cam? Hmmm, a novel question I’ve never thought about!

I believe @L1z4rD89 is talking about the Demonet replay system. Some of the system isn’t exposed to blueprints, so it will take a bit of C++ knowledge to pull it together. Alternatively you can use the ghosting and only have the camera render the delayed actor. With either implementation this will take a bit of tweaking to work for your use case.

I don’t think that the replay system would work in your specific case however, I’ll still leave documentation since Lizard mentioned it.

I’ll drop some documentation on the demonet replay system, and ghosting, but if you need continuous playback it’s going to take some serious elbow grease to get it working as intended.

Disclaimer: Epic Games is not liable for anything that may occur outside of this Unreal Engine domain. Please exercise your best judgment when following links outside of the forums.


Ghosting method (a bit different with human characters but it explains the concept):


Demonet replay system:

Video Tutorial for those who prefer it:

2 Likes

Hey thank you both for taking the time to answer :slight_smile: I can I see I went through the same thinking process as you did @SupportiveEntity, I saw about the replay system yesterday and even tho it’s not exactly what I want I might give it a try. And yeh I also thought about passing textures and displaying it with delay but I don’t really see how that would work in UE, do you have any documentation to it I could use? I’ll look into all those options today thank you again guys :smiley:

I found some code snippets here and there and, erm, did this:
PictureFromPixels.zip (900.6 KB)

If you press Play you should see the realtime record and one with delay

2 Likes

I was looking into doing that today too, but I didnt manage to make it work as great as you did :open_mouth: and yeah as I thought it’s hella consuming perfomance wise as soon as you start “recording” higher res, but I don’t see a better way to do it. Thank you for your help @L1z4rD89 !

1 Like

I’ll look into this tomorrow thank you for the idea @AntiGravity :wink:

1 Like

Alright so I looked into it but it doesn’t seem to apply to camera rendering, it seems like the best option yet is to record/display the textures, even tho it’s quite expensive. Thanks again for the help y’all :blush:

What exactly do you want to show in the delay? Or: Are there going to be a lot of actors?