Animating a Car with Armatures & Paths

Here’s (what I think is) an interesting rigging problem:
I want to be able to put a rigged car model on a path so that it drives drives correctly pretty much automatically.
Meaning I can vary the shape of the path and its IPO and have the wheels turn and the car steer the way it should, without having to do any additionaly keyframing.

I don’t know if this has been done already, but I haven’t found any references to work from yet.

I have made an attempt at it, but at the moment my rig is more complicated than I was shooting for. I’m hoping that someone can make some suggestions. Feel free to borrow/fix anything you want from my file.

Here’s what I’ve got: Car Rig (.blend)

The spin-center of my armature between the rear wheels, and the armature is parented to, and following a path.

There is an action that makes the wheels turn, and with NLA and the stride parameter it locks the wheels to the distance travelled. So I can adjust the path IPO for any kind of acceleration/decceleration and the wheels rotate nicely.

I’ve got an empty on a second path, which has a copy of the previous path IPO with a bit of distance (not time!) displacement, so that the empty sits just in front of the car.

Then the armature is rigged with IK solvers and copy rotations and stuff so that the car and the front wheels point approximately in the right direction.

My biggest complaint with this so far is the need to make and offset the second path, as any changes to the first path or it’s IPO mean needing to do this again. I would like to be able to have everything driven by one path and the rigging of the armature. But even with the “follow path” constraint and “Offset” option (which just gives a time, not a distance offset), I haven’t been able to make it work.

So any help or suggestions towards improving this rig would be greatly appreciated (and If anyone finds this useful, I might even try my hand at writing a tutorial).

Cheers!
J.

Have you tried putting either some bones from the armature or another object completely on the path and using the Lock Track or Track contraints on the wheels to have them turn ?

I don’t know if this would work and don’t have time to test right now, so here’s my thought. Parent an object to the path, maybe a pair of empties, one for each front wheel using the follow path constraint. Set a negative time offset for the object in the follow path constraint. This should put it further down the path.

Put a Track To or Lock Track constraint on your front wheels to the appropriate empty or other object. Viola, it works … well maybe, :).

This is all with only the one path, in case my hurried descriotion isn’t clear about that.

Hope this gives you some ideas at least, I just don’t have time to play with this right now, but had the idea and thought I’d pass it on.

zaz: Thanks for the suggestions, and speedy reply. But I’m afraid they don’t really help.

A time offset is no good. A distance offset of some kind is required. Otherwise the front and back of the rig move farther apart or closer together as the car accelerates/decelerates. That’s why I’m stuck with 2 paths at the moment.

And I don’t follow how a “lock track” constraint could be used to make the wheels turn. Do you mean “turn” as in steer, or “turn” as in spin on the axle (the way I used it - just for clarity)?

Thanks for trying though.
Any other suggestions?
J.

Yeah, I can see how the time offset could have that effect.

I meant turn as in steer the wheels. The concept I had here was to try to get something to follow the path the car was following, but in front of it. If you could arrange to have an object directly in front of the tire when the path was straight and that object followed the curve, then as the car goes around the curve, say to the right, that object would drift to the right relative to the tire. If the tire/axle had a system of one or more bones, one of which had one of the tracking constraints to the object in front of it, it should steer the tire to the right.

I think the idea you had for turning or rotating the tire, i.e. the action with the Use Path and Stride set in the NLA is the right way to do that.

The idea your describing is very similar (if not the same) as the rig I posted. Which still leaves me with what I have.
Thanks for trying though. :expressionless:

If anyone has a chance to have a peek at my file, maybe you can suggest some improvements or a totally different approach?

Yeah, our ideas are pretty close to the same. Not sure what to say. I finally got a few moments of free time and thought I’d take a gander at your .blend. Looks like a fun project, I like what you’ve got so far, but it’ll be much better if this problem gets solved one way or another, :).

I see a couple of issues that complicate matters some, at least in trying to make this work with one path and normal blender stuff, i.e. without python and other things involved. You probably already realize this, but one of the issues that’s going to be hard to resolve, at least if you want it to be convincing is that the wheels of a car aren’t going to track on top of each other unless the car is moving in a straight line. Also, on turns, the tires are going to rotate slower or faster depending if they are on the inside or outside of the turn.

So, some provision in the model has to provide for these things or they may be obvious. How obvioous depends on the speed of tire rotation, camera angles, etc.

How automatic do you need this ? Would it be enough to have the second curve a duplicate instance of the first (ALT-DKEY) so they share the same underlying curve and you only need to move the duplicate to provide the offset ?

How well does this have to imitate reality ? If your tires slip a little is that a problem ? If your wheels don’t track like a real car does during turns, does that work or not ? If you need to really deal well with the physics, you might need to consider using the game engine and some of the python scripts that let you turn the real time game engine interactions into IPOs. You have pretty good physics available mostly for free there, but would have to use 2.25 or wait until the game engine is back into a 2.3x release. And of course, that’s definitely not an automatic option, just one that might imatate reality closely.

Sorry, no answers yet. I’ll play with your rig a little tomorrow, need to get some rest soon.

howdy, for the steering I suggest using “Ackermann steering geometry”
diagram here…


rough concept… should keeps the wheels pointed in the right direction.
Bones 1,2,3 #bone 1 starts at pivot.
http://myeye.homestead.com/files/Ackermann_New.jpg
with the accelerating… depending on what else is happening in the scene maybe you could … inblend have it all constant speed, then in post production increase frame rate… or maybe have the car in 1 scene in sequence editor and everything else in other scenes and just alter the speed/frame rate relative to scenes??? I’m just guessing here. so car is constant.

Zenitor: Thanks for the suggestion. I might comparison test an Ackermann design later on, but for now I think I will pass on it.

Coming from a mechanical background myself, I had contemplated using an Ackermann design. But I don’t think it is really worth the effort for most animation.

For most driving car animations, the camera will only ever see one side at a time anyway. And even if I showed a camera angle (underneath, or maybe direct top) or vehicle (a dune buggy or something else without fenders) where you could see both front wheels turning clearly, most people would miss the subtleties of it. The mechanical realism and accuracy just wouldn’t really be appreciated.

So for now, I just want to figre out what blender rigging & contraints, etc. will most easily approximate a simpler steering rig.

Thanks though! :slight_smile: