Smooth player character turn rotation

Hi! I am trying to figure out how I can create a smooth turning rotation when switching between moving forwards/backwards and moving left/right.

Here’s a video of how it is right now, with instant rotations based on pressing WASD

So I’d like the character to smoothly rotate from his previous direction to his new direction.

You can use a Timeline in combination with a Lerp node:

Granted, this is with 4.8.2 (where it works perfectly) but I don’t have the time right now to set up a similar system in a 4.9 project to test it. Basically input your current and target rotation (I’m just changing the Yaw in this example) into a Rotator Lerp (Linear interpolation) node and use a Timeline to update the current rotation for the duration of the Timeline.

For the record, my Timeline looks like this:

The entire rotation takes 0.3 seconds, no matter how large the angle is the character needs to rotate (may be too fast for large angles, too slow for small ones). And the linear “curve” ensures that the rotation changes smoothly each tick.

Where do I call this event?
And when you say it runs perfectly on 4.8.2, are you implying that the same setup does/will not work on 4.9?

Like I said, I haven’t gotten around to try it in 4.9 yet. However, both the Timeline and the Lerp nodes look the same, so I see no reason why it shouldn’t work.

I’d suggest to replace your current Set Actor Rotation call with a setup like in my screenshot. Before you call the Timeline, call Get Actor Rotation, save that into a Rotator variable. Pass the variable into the Lerp node’s A input and the target rotation into the B input.

I still can’t see where I’m supposed to do this custom event :confused:
Here’s an image to better show my confusion:

I have a stationary camera that I have set the directions of the player for, if it is being used.