Proper way to get player speed?

Currently Get Velocity > getVectorLength > set speed.
but this is actually not working for me anymore.

it returns the speed, yes. But not quite the way I want.

i want jump animation 1 to play if im stand jumping.
I want jump animation 2 to play if im running (or walking) and jumping.

the problem is that in the state machine I’m using the above to get speed but unfortunately when jumping, it also assumes you’re gaining speed. Therefore saying do animation 2 only if speed (meaning running speed) is greater than 300 doesnt matter. And saying do standing jump if speed is less than or equal to 0 is never run, since as soon as jump is pressed, speed is always greater than 0.

I have a work around where I calculate whether the char is moving forward.
Meaning either thats equal to 0 or its 1 or its -1.
This works because I say if move forward is 0 then do standing jump. The issue is I cant change it based on speed though… since its a hard 0 or not this way.

Also it should be the node “get ** forward ** vector” then check if it’s “vector length” is >0

I believe something like this would work just as well:

Forward vector only checks X vector not Z. Velocity checks any movement speed. When you move, whether jumping or otherwise, you are generating velocity/speed.