I’ve encountered a strange artifact. I have an actor which contains a static mesh component parented to a camera component(root component), and set the camera component to be the active view target(ie. view is rendered through it). However when I move the actor during run-time(via blueprint), it appears as if the static mesh component is lagging behind the camera movement(seemingly 1 frame delay), causing inadvertent “motion blurring”. Is the static mesh component’s world transform updated before(which instead should be after) the camera component’s movement has been updated in each frame? I imagined the mesh component’s world transform was not calculated using the camera component’s most-up-to-date world transform, but instead the previous frame’s transform?
Hi ,
Which version of the editor are you seeing this in? Also, upload some screenshots showing your components and blueprint movement.setup?
I’m currently using the latest ver 4.6.1. The image below shows the component setup within the actor(basically a box being parented to the camera).
And the blueprint allowing the interactive rotation…
This next image shows the actor when it’s stationary(notice the sharp edges of the box).
This image shows what happens when the actor rotates(notice the somewhat blurred edges of the box, which should’ve been sharp…trust me, the jittery lag is much more apparent when seen live).
Btw, this artifact also occurs for the case where the box is in a StaticMeshActor and the camera is in a CameraActor, with the former parented to the latter.
I believe what you are seeing is the default motion blur. Find the Global PostProcess in the Scene Outliner and click it. In the Details panel search for Motion Blur and set the Amount to 0.0.
Post back here to let me know if that works.
Cheers,
TJ
Thanks for the tip. I disabled motion blur through the camera properties and that stopped the jittering effect for the box. However this raises the question of why there’s even motion blur for something that follows you wherever you go? (unlike the rest of the scene that correctly blurs, it’s not moving relative to the camera) I’m curious to know if the motion blur is physically correct?
That’s a good question. In this scenario it probably isn’t technically right, but it is the correct way for the engine to handle rendering.
UE4 uses deferred rendering and the motion blur is handled through a post process effect. What this essentially means is that UE4 takes note of all moving objects and then for each frame it processes a blur effect on those objects. It doesn’t take into account that the object isn’t moving in relation to the camera, but that it’s tagged as moving in general.
We know that this isn’t ideal for every situation so our devs are looking into other rendering methods as well. This could be something you may see in a future release.
Ah I see…thanks for the clarification!