Making things follow waypoints in curves

Can someone please tell me how I can modify this piece of code:

this.transform.GetComponent(CharacterController).SimpleMove(this.transform.forward* speedToLocation *ownSpeed);

to a code which can allow the player to move from waypoint to waypoint in a curved fashion?

In such a way that the player won't look like he's moving like a robot when he's doing the waypoint moving thing.


Build a Catmull-Rom spline to interpolate your set of points. Use this spline move smoothly through your set of points.

More information on Catmull rom splines here and a nice method for evaluating the pieces of the spline (if converted to bezier curves) is here.