+2  A: 

you could have a linear interpolation and a cubic interpolation and interpolate between the two interpolation functions.

ie.

cubic(t) = cubic interpolation
linear(t) = linear interpolation
cubic_to_linear(t) = linear(t)*t + cubic(t)*(1-t)
linear_to_cubic(t) = cubic(t)*t + linear(t)*(1-t)

where t ranges from 0...1

Donnie DeBoer
I'll see if I can get your solution working. However, ideally I'd rather just adjust the cubic function in the method: amount = (amount * amount) * (3f - (2f * amount));I'm assuming this can be done fairly easily, I'm just not sure how.
Rob
If you want to have tangents, use the Cubic Hermite Spline I posted below
Donnie DeBoer
+7  A: 
Donnie DeBoer
thanks Robert, for making it look WAY prettier :)
Donnie DeBoer
Yes. This is the way to do this.A piecewise cubic Hermite interpolant has the nice property that it is simply assured to be both continuous and differentiable across the break points, because the value and first derivative at each end of an interval is given. This is, IMHO, a very pretty way to build up a piecewise cubic.
woodchips