Blendspace Snapping with Direction

So I’ve implemented a Movement Blendspace to a character in my Project, and it makes it so the character has animations for walking sideways and backwards, and blending between them, there are “two” problems with it though, one of them being that the animations seem to snap between them, and there’s not a smooth transition like I thought there would be, the other being when the character is walking backwards, when moving the mouse to the sides, the backwards animation “shifts sides”, below there’s a vídeo of these two problems being demonstrated and screenshots of how everything is set up, I’m hoping someone can help me solve at least one of these problems.

This is an issue I still have in my project. If you print the direction variable, you’ll notice that it’s constantly switching somewhere between 5 degrees and -355 degrees, which is causing the blendspace to go from one end of it to the other.

I suggest using horizontal and vertical velocity as the 2d blend parameters rather than angle and speed. Since the blend space has no awareness of angle wrapping it will cause that problem.

If you instead use horizontal and vertical velocity it will never flip.

1 Like

Having this issue in my project as well. Preventing me from using left stick directional blend spaces. Has anyone found a solution for this yet?

The problem is the fact that you flip between +180 and -180 - how you handle it is up to you.

My choice is to drive the pose with a specific locomotion state and a single blendspace1D

If anyone encounters this problem in the future, try this:
in Character Movement ( Rotation Setting ) set Rotation Rate Z to 340
in blueprint when you use Use Controller Rotation Yaw (True) set Rotation Rate Z to 0
and in Use Controller Rotation Yaw (Falce) set Rotation Rate Z to 340

2 Likes

You can fix this by setting interpolation time in the axis settings.

y como puedo hacer eso? a mi me pasa que por lo que esos valores de direccion estan cambiando constantemente se me mueve como raro el personaje y intanta ejm como que retroceder y pues hace un efecto como caminando para donde quiero y retrocediendo al lado contrario :c

Did you set the BS Horizontal Interpolation Axis to Minimum -180 and Maximum 180?

This helped me 3 years later. Thank you!

thank you

this is a bloody good advice, btw. helped me 6 years later…
to get relative velocity, UnRotate Velocity vector in character by Actor Rotation of it.

another thing to watch out for: don’t use UseControllerRotationYaw inside class defaults, it’s gonna snap rotation to target when you switch it on / off. if you use UseControllerDesiredRotation inside CharacterMovement instead - it will blend.