Character change direction smoothly


I’m making a game where I want the movement to be smooth.
I want to be able to play with a gamepad, have it so that if I’m running forward and press backwards, the character instantly turns (for some reason in UE4 Thirdperson the character takes a while to turn, several units and this makes a platform game less than optimal). But if I run forward and start going left or right its still a smooth curve of a turn. If I max the Rotation Rate of my character blueprint, it gets all static and the character will basically only run in 4-8 directions.
It gets too choppy and I’ve tried several different methods but I can’t seem to figure out how to register if I am clicking in the opposite direction or less. Having a smooth transition here would be nice, as in rotation rate increasing or lowering depending on how far from forward direction I’m clicking/turning the gamepad.

Any Idea how I could achieve this? Any help would be WILDLY appreciated!

Have you looked into using LERP rotator?

Does increasing/decreasing the “Max Acceleration” in the CharacterMovement component help a little?

I’d also consider the Rinterp BP node (rotator interpolation). Maybe heck out Matthew Wadstein’s or others videos on youtube for how to use RLERP and RINTERP

Yea that would work too.

This could work for sure!
I’m thinking if I set current rot to be my character. And the target rot to be where I want my character to turn.
How do I input where I am trying to rot my character?
Not sure how I could get the input info from where my controller is telling the character to go next.

This does make it so that if I turn the character turns around before he starts moving forward. That is half the job done, I need the character to be responsive and switch to a direction instantly, both in speed and rotation.
I just want to be able to do it without having choppy movement :slight_smile:

yes, I think you’ve got the right idea… this is fairly straightforward, you can just google and youtube search and you’ll see how it’s done…

smooth and fluid often needs to balanced against fast and choppy… if you are using Interp/Lerp, increase the speed to increase responsiveness

also smooth the camera movement, this adds to any choppy appearance

Hi I know this is old but I’ve been asking around for this same answer, before I came across this same question on ue4 I’ve been trying all kinds of stuff funny thing the first idea I had was using a lerp but I had no idea how to set it up with my movement inputs. I then thought about a timeline and using it through the event tick with the lerp rotator am I going in the right direction? I’ve been trying to use the lerp with the control rotation don’t know why it isn’t working though…could you help a gal out?