What's the best approach for story animations?

Godot Version

4.2.2

Question

I’m designing a narrative sequence where the player moves to the left edge of the terrain and starts a dialogue. Initially, I tried using AnimationPlayer, but its timing is fixed — regardless of how close the player is to the initial position or the target position for the first step, it always takes the same amount of time. When the distance is short, the player moves slowly, almost like a snail.

I also attempted to adjust the speed directly and stop at the designated coordinates. However, due to the player’s faster movement speed, the final position varies slightly each time. In the worst cases, the player overshoots significantly, leaving them awkwardly perched with one foot in the air.

Is there any solution that allows for variable animation speeds and precise control over positioning?