Download

Best way to conrol AI character speed while rotating

Hi, I am using a behavior tree MoveTo Task to move an AI character, however while the character is rotating it does not change its speed, giving the impression it is sliding on the floor. I want to reduce the speed during rotation and restore it when rotation is done. I fully control the rotation of this character with custom code (not using the automatic rotation flag in movement component). I have found plenty of ways to control the speed, problem is to find the most appropriate one for what I need to do (using UCharacterMovementComponent):

  • I may control the character max speed and max acceleration
  • I may use Braking Deceleration Walking (didn’t try)
  • I may use AddForce()
  • I may update RequestedVelocity vector
  • I may use ApplyVelocityBraking()
  • other?

What would you recommend?

For those interested, I used only variation of MaxWalkingSpeed, making it lower the higher is the rotation angle. Works fine with a few adjustments to smooth out movement.