About how CharacterMovementComponent OrientRotationToMotion calculates the direction of rotation when turning from 0 degrees to 180 degrees

Hi,I want to add the character’s transition from Idle to Starting Move state machine in the thread-safe function in the UE5.3 animation blueprint (including animation judgment of turning to left\right\returning from right\returning from left)

However, because when entering the Starting Move state machine, the difference between the last ACTOR ROTATION and this ACTOR ROTATION cannot be used to determine whether the character is rotating left\right (when leaving the ldle and entering the Starting Move state machine), the character does not start to rotate. The two frames have the same direction, and the difference is 0)

The acceleration direction and speed direction input by the player can obtain the left\right 90-degree turning direction, but when turning 180 degrees, the direction changes from 0° to 180°. CharacterMovementComponent OrientRotationToMotion sometimes rotates to the left and sometimes to the right.

How does OrientRotationToMotion calculate the rotation to the right\left direction when turning from 0 to 180?

_D3B73RG7JLP3%AK0EJROA6

Its whatever is closest. Float wise.
Rotation is never perfecly 0.

To control it, you would have to change the behviour or drag the information directly from the input.

If you want, you can break into the c++ source for the character movement - get to it off an engine source off github.

You could potentially change it there and re-build either the engine or the character class directly.

I would suggest just doing your own math to begin with - off the character, dueing the Input - which for Axis setup runs consistently as if it were a tick event…