Here is a project with a quick and easy function that will give you the popular “auto-rotation based on movement” functionality seen in games like dark souls, or many nintendo games such as mario 64 and zelda ocarina of time. It’s efficient, and only requires 3 float variables that can all be adjusted. They are as follows:
-CamRotationFactor: multiplier that controls how much total rotation is added. think of this as the “speed” of your rotation. 1.0 would be the default, adding your exact y input to the yaw each frame.
-CamAngleExponent: exponent that controls how strong or weak “diagonal” input values in-between 0 and 1 are. 0 is default here, which means diagonals would not be affected. Values higher than 1 weaken diagonal influence, while values lower than 0 strengthen it.
-BaseVelocity: what your player’s default “running” speed is, that the function uses in order to scale the rotation speed if you are moving faster or slower in order to keep an “even” amount of rotation for all velocities. this also prevents instant starts/stops, and will prevent the camera from turning while running straight into walls.
The project here is just the default ThirdPersonBP example with the function added: https://www.dropbox.com/s/6bkkfpyisi…ngCam.zip?dl=0
No external blueprint needed: just add the 3 variables to your character BP and copy the function. The function should be called from your “input axis MoveRight” equivalent.