Character jitters when on a moving platform moved via a timeline, especially when timeline is stopped and resumed

Hi everyone, I’ve been using UE4 for a while now, started out with 4.7.

I’m now faced with a problem I know others had in the past since I searched the forums and the answer hub, and found some similar questions, but never with any solution, so far. I am still looking for solution myself, if I find anything, I’ll post my findings here.

My Setup:

Simply put, I have a timeline with a float track. I send that float track into a lerp vector to move an actor to a specific destination, using the SetRelativeLocation in the update of the timeline. There’s more going on around all that since I am making a standard “mover” I can apply to anything and move stuff around with. But for now, I think that’s enough to understand how I am moving the actor.

The Moving Actor:

The actor is a VERY simply blueprint with 1 component, a mesh, not scaled nor modified, just a standard cube.
it is scaled in the viewport afterward / But wether or not I scale it or not, the same problem occur.
The actor that is moving can be stopped by shooting it, or if the sweep of the set location node is triggered – So the timeline can be stopped and resumed at times.

The Problem:

When the character is on the moving actor, sometimes but not all the times (but many times.) the camera will jitters/studders as if the moving actor is jittering. This can happen anytime, but I discovered that stopping and resuming the timeline moving the actor will help reproduce the bug easily.

The platform itself is fine after looking at the scene from an external camera (ie A cam placed in the level and not in the character blueprint.) – We can clearly see the character capsule jitters, and the platform is fine.

So the problem is the character, in essence.

Video to show the problem, on youtube:
Youtube video

What I did already

Well, all I did was mainly on the moving platform, and I discovered later that probably I should check what I could do in the character. But I did play with FPS settings (Smooth, min and max, console command to set max FPS, set static FPS, etc), I did play with CCD, Sub-Stepping, collision settings, sweeping or not the actor, not stopping and resuming the timeline, nothing worked in the above.

Maybe there’s a real solution out there, but even if not, maybe there’s a workaround, maybe by playing with the camera or something, I will continue looking into the issue. If I find something, I’ll let you know.

Thank you in advance for any help !

do you move the character using the tick event? do you use the delta seconds or move by a fixed amount? because it’s not really surprising when your fps drop a bit on each explosion and therefore the interval of ticks vary.

I am not using on tick or delta second. I am using a custom loop made out of custom events. I doubt its an fps issue since even when I set the frame rate to a low static and fixed value of like 30 in the settings the same problem occur… same thing with an high fps value

also, i think if it were the fps it would affect all moving part, the platform would jitter because it is the thing i am moving, no ?

i think it is an interpolation thing, i dont know if i used the word correctly, but i think the engine has difficulty setting the position of my character on the platform because i am moving the platform and the character is made to follow the same path because of physics and not because i move it in script.

the same effect can be reproduced by moving an actor the same way and attaching another actor to it via the world outliner and when the player stand on the moving attached actors the cam jitters… since the attached child is simply following the physic of the other one.

ok no tick, that’s a start. What do you mean by custom loop, a timed function/event?

It could be an issue with interpolation (eg uneven step size and rounding issues), but to me it’s more likely some other error (like an unevenly running script).

If the actor on top is not attached or anything and only moves because of physics, maybe you could play around with the physics friction of your platform?

maybe show us your movement blueprint/code