Ok, i did a script to move a character on a Path, from a Start position to a End position. The path is realized like an array of waypoints. What i would is that the character turn in direction of the next waypoint and moves towards it, but it have to be fluid, so it have not to turn in first moment and after moving.
I think you should define your waypoints as you do now, but instead of having the character follow those waypoints, have him follow a Bezier curve generated with the waypoints as the control points.
If you’re familiar with the math this should be easy for you, else, you might need to take a little while to study how bezier curves work. The Wikipedia article I linked to seems to give you everything you need in that regard. Don’t be intimidated by the math in the article - At their core, Bezier curves are just a bunch of linear interpolations.
The curve will give you a path which contains many more waypoints than those you pass to it, but which approximates the waypoints in a smooth manner. Always direct the character’s forward vector to the next point in the list.
Mmm the problem is that my script turn the character at every WayPoit to face the next. Only after turning the character is moved.