The tutorials I've found show how to rig a wheel to roll automatically, in one direction (X or Y), in relation to the location of an empty or bone. I've managed to get the wheel rotation to work along both the X and Y-axis in a drivers-based rig, but the wheel rotation when steering on the Z-axis isn't always accurate.

A bones-based rig could possibly work if there's a way to set the axle or driver bone to local space, but I don't see a way to do this, and it might just result in the same issues as the drivers-based rig.

Your thoughts and suggestions would be appreciated.

The two rigs I've made are downloadable here, both controlled by the "ground" empty/bone.


Both approaches will not work when dealing with corners, they will only work in straight line. There is more about why that is here:

Making wheels spin as car moves

You need to either:

  • construct a path for the car (or for each wheel if you want to be precise) and drive the wheels with that
  • Use Animation Nodes addon, this lets you access animation F-curve data and compute the wheel rotations
  • Use rigid body physics to simulate the wheels and collision with ground, bake the simulation into keyframes
  • Create a PyDriver (a driver with added function through script that can access blender f-curve data) or a frame change handler. With both you can access animation to compute the path and drive the wheels correctly
  • Write a script for your rig that will add/update animation of the wheels to the f-curves, similar to a script that would snap FK and IK bones in a rig, but with different function
  • Write an own engine that will simulate the wheels collisions and add it through app-handler to execute on each update of the car rig
  • $\begingroup$ Thank you very much for the information. I think I'll try the rigid bodies approach first, and then explore the other approaches if needed. $\endgroup$ Jul 17 '18 at 11:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.