Steering using dynamically adjusted splines/curves

Hi,

I’ve used Unity answers many times and it’s helped me to solve many issues before. This is the first time I have posted a question and I am really hoping someone out there has some experience doing what I am trying (and failing) to do and can give me a shove in the right direction…

Basically, I am trying to model horse riding and am aiming for something fairly realistic. Horses turn in sweeping curves with substantially larger radius the faster they are traveling. I also need to project the path of the horse onto the terrain so the player can see what trajectory they are on. I have been attempting to achieve this behavior using splines (hermite and b-splines). The player moves down the spline and the curve is adjusted according to input at runtime by rotating the spline points around the player. I’ve almost got what I want with this approach, what I have got works on a basic level (see attached) but I am struggling with the fine control. I need to be able to adjust the arc and length of the curve depending on the speed of travel. I’ve tried moving all the spline points in the direction of the player object (cube for now) when decreasing speed but that just flattens out the curve moving it towards a straight line, I need to maintain the same angle of turn, as it were, but do it in a shorter distance. I’m not sure how to achieve this and am hoping someone who is better at math than I am could lend some inspiration? Alternatively I am worried I’m pursuing the wrong solution in using splines and that there is a better way of achieving this sort of behavior. Anyone out there had any experience with something similar to this willing to share some insight/ideas?

Any help much appreciated.

70804-untitled2.png

For anyone interested. I got this working perfectly without the spline. Thanks to @dns and @Glurth for the help. I followed the steps here and adjusted maximum force and mass vectors to get the steering behaviour how I wanted it. After that it was really easy to precompute the path as described by dns using Time.fixedDeltaTime to iterate through future positions!