Vehicle Rigging With Auto Wheel Spin Not Working

I’m rigging a car with automatic wheel spinning using the transformation constraint. Everything works fine except for when I rotate the control plane when it’s not centered at the origin, then the wheels spin all over the place. See blend file attached for more details.
http://pasteall.org/blend/index.php?id=44216

Is there an easy fix?
Any help would be appreciated!

Thanks,
Garrison

To be honest with you this is not the way to rig rotating wheels based upon location unless you are only moving the car in one direction along one predefined global axis. If you apply the location of the plane it works properly, but it rotates about the origin, which is not what you want I guess. Both of your models work fine until you start rotating things, that is when they start to screw up. I guess you want to have two cars in your project or want them to go around corners?

To make the rotation independent of a global axis, you would use a more complex setup involving a curve path, which can be a straight line, objects that are using this path as their track with a curve modifier, which means they cannot be an armature, so you have to parent the armature to something that can have a curve modifier. So a long sentence there, take a deep breath and I will try to explain. Transformation constraints are useful only when you want to translate one axis of movement into another axis of movement, or another/same axis of rotation, or scale. To accurately move an object like a car along a free path and have that translated into a rotation, you would need to use an object like a cube or icosphere and give it a curve modifier, that way when you move the object along the curve mod axis say 10 units, the object travels 10 units down the curve. This you can translate into a rotation using a driver. Now, drivers are always defined in Radians not degrees, there are 2 * pi Radians in a circle of 360 degrees, so if an object of 1 unit radius moves 1 unit forwards it rotates 1 radian, since the circumference of a circle is 2 * pi * radius. So it is easy to set up the driver once you know the radius of the wheel, a wheel of 2 units radius will turn 1/2 radian, if it moves forward 1 unit. Then you simply parent the armature to the object with the curve modifier and all is well. To get steering, it is better to use two armatures as you all see in the file I attached below. One thing to note: this file used a wheel of 1 unit radius so the driver is simply “Average Value” since one unit of movement of the wheel rotates it 1 radian. :eyebrowlift:

One thing to note: curve and object should have the same origin or you will get all sorts of issues, just create the curve and icosphere/whatever at the same location, i.e. don’t move the cursor. I am on holiday in Australia just now so it is hard to do anything other than refer you to previous posts and files i have uploaded as I don’t have my Blender Mac with me. Having said all that, this blend file may be useful to you in building a universally good method of animating wheel rotations and steering along a curved path. To move and object along a curve, just move it along the axis of the curve mod - so if you use X axis on the curve mod, just move your object along X axis - key G X … for example to move the object along the X axis.

wheel-test.blend (555 KB)

This shows the drivers…


You might also read this recent thread:

Cheers, Clock-down-under. :cool:

Thanks @clockmender, very helpful! I wish there was just one constraint that would do it though :o Maybe in the future.