Get Velocity broken when using sequencer?

Hi guys.

I’m using unreal engine 5 early access but I think I saw someone on internet report a similar bug for unreal 4.
I have a code that gets the velocity from my characters and I use that to set the speed of the character in my blendspace (walk/run).

That works very well but there’s a HUGE issue. When I’m moving my character using the sequencer (for cinematics)
the values I get from the ‘‘Get velocity’’ node make no sense. I always get x=0 y=0 z= a crazy value.

When I use aiMove, the velocity is perfectly calculated but when it’s in the sequencer, It doesn’t work at all.

Does someone has any clue of how to fix that ?

(I tried making a set up that check actor location distance between each tick but the result is a bit clunky)

Thanks a lot !

For people running into the same issue as me, I’ve found a way to have a smooth speed variable that works also
when using the sequencer. You basically have to set your actor Tick to a constant value (here It was set at one tick every 0.05 seconds). Then I get my position every tick and and get the distance with my last position. I use interp to smooth that out and it works perfectly! Just got to test what values fit for your needs.

Hope that helps.

1 Like

oh wow, this is very interesting.
i am running into exactly this problem.
i don’t exactly understand your blueprint here.
i guess it is connected to the tick event? is it possible to elaborate a bit more on this technique?

Sorry to answer so late, I just saw your message.

My blueprint isn’t very clean. I was a beginner at the time.

The idea is to use Tick. You get the current position every frame and you compare it to the position from the previous frame. If you divide with the ‘Delta Second’ from tick, you can get a proper velocity value adjusted to the framerate.

I guess you could add a ‘Delay’ and Interp the values too, a bit the same way I did above but unless your velocity value gives you jittery movement, this is unnecessary. Just check distance between every frame should do the trick.