How to move character in a smoothly between points?

I’m trying to move a character class using the Simple move to location between two points. Currently it works, but the character rotates towards the new point instantly and then smoothly moves over to it. I’m trying to figure out a way to get the character to continue walking the direction originally facing, while slowly turning towards the new target and also slowing arching the direction of their path towards it. Example given in photo. Right now the way I have it setup is that the move instruction is called in my behavior tree on a task. I’ve come across an “Add Actor Local Rotation” node that appears could work, but I’m not sure how to use the delta input, especially as this movement is called in a task on my behavior tree, I wouldn’t want to hold anything up.

So maybe this is a more direct question. How do I rotate an AI character. I see from the content examples that the player controller bp uses "Add movement Input for the keyboard input. I’ve tried using it to see how it works so I can figure out where to try next. I’m able to get the look at rotation from the current position to the desired position, and when hooked up with this node the AI slowly creep toward the desired location, so I can tell the direction is good. Now I need to figure out how to rotate the forward vector towards that.

I just floated a point out in front off the forward vector, and then added it with right vector, giving me a 45 degree angle out in front. Then I use a dot product of the right vector and my target to drive the right or left value of the ghost target.

There is an option on Character Movement Component called “Orient Rotation To Movement” that does most of what you are talking about. It rotates the Character to face the direction of acceleration, rotating at a rate determined by “Rotation Rate” (also on the component).

To do this you would set UseControllerRotationYaw to false on the Character, and set OrientRotationToMovement to true on the CharacterMovementComponent.

The thing about this though is that you are not going to be guaranteed that the target rotation is hit exactly once you get to your destination, which may or may not matter to you. Another option is to look at your previous location and your current location and orient to face in that direction (rotate the forward vector either immediately or over time to match that), which should achieve a similar result (aligning to the tangent of the curves you drew in your diagram).

To do this you would set UseControllerRotationYaw to false on the Character, and set UseControllerDesiredRotation to true on the CharacterMovementComponent. Then during your tick would use SetControlRotation on your AIController to set the direction you want, and the component will rotate your character smoothly using CharacterMovement->RotationRate to match that direction.

(sorry for repeated edits, browser had issues!)

I know this is really old, but I’m trying this out and still doesn’t seem to work correctly. The character just slides in the direction while still rotating slowly toward the move target.

I guess my question is-- How do I force the AI to always run toward his forward facing?

Never mind! I I mis read an important part in the last paragraph.