How to smooth analog input values in real time?

By default, Unreal Engine reads the exact and precise values of an analog stick. This, if “Orient Rotation To Movement” is active, causes jittery rotation when using a controller, since all the tiny changes in the thumbstick value affect the movement.

How could i make these values smooth? Should i use interpolation? Should i change something in the deadzone settings? And if the answer is interpolation, how could i divide the analog stick in just, let’s say, 8 valid input directions to interpolate between eachother? Should i do this math in a separate UPlayerInput class or should i implement this in my Character class?Nobody seems to adress this, i haven’t found anyone with a solution, yet.

Here’s a video i made showing what smooth rotation looks like compared to the default Unreal Engine:

What you are looking for is named as “Use Controller Desired Rotation” in the CharacterMovementComponent, then customize the Rotation Rate above it:


And here the results (using WASD):

The problem is that, in your case, you’re using WASD. There is no jittering when i use WASD in my project as well. I’ve already tried toggling that option on and off and the jitter is still there when using a controller, it does’t change anything