Making wheels roll in the same direction

So, the model I’m working on is an office chair. It has five wheels, each attached to the base of the chair by an axel. I’ve managed to rig the wheels to all spin individually, controlled by a bone on the front, and they will each pivot with the axel, controlled by a bone on top. This is all great, but what I’m trying to do is get the wheels to all pivot an roll in the same direction. What I would like to do is have the parent object of the chair (the seat) move along a path and have the wheels turn and follow it like they would in real life.

I’m starting to feel like I’m going about this wrong, so if there’s a better way to achieve this effect, please let me know. Tutorials on rigging in general are hard to find. What I have found is mostly aimed at character rigs, and I’m having a hard time applying the same techniques here.

1 Like

Make a null parent for the chair, have it follow (aligned) to the path.

Apply a constraint each wheel, to have them use same heading rotation as the null.

1 Like

OHHHH thank you for this question, it reminded me of an old thread about caster wheels and I finally cracked it. I am sooo happy. I gave the question a like!

I am not sure if your chair is on rotating/flipping casters but if it is take a look at the file I just posted in this old thread.

Be warned the rig is a bit complicated.

1 Like

That’s awesome! It looks like exactly the effect I’m going for, but I can’t open the file. :sob: What version of Blender are you using? I’m on 2.92 because my computer in old and can’t handle 3.0 lol

I am using 4.0, I think you need 3.6 up to open it. I will try to get it into 2.92 but I am not totally sure it will work, give me a day!

For an easier solution you can also use the wiggle bones addon for a pretty good estimation of that bebaviour

Wiggle bones addon?, can you do casters flipping and get the wheels to always rotate correctly with it?
I am interested if there is an easier way.

I just played around with the settings a bit its pretty straight forward. i think then getting the rotation onto the actual geometry was a bit strange but yeah this work pretty good to this point.

If i haaad to do it in vanilla i would propably try sth like this, where i just exagerate the root bones movement exponentially and track that stronger direction. with a high enough distance this should actually move correctly, ofc tthis breaks if you move too long in one direction tough.

1 Like

Here’s my take on it… 1 constraint to make the wheels follow the path. Another to make the arrow not follow the wheel’s rotation, but always point straight.

You could flip the constraints easily enough that the arrow would always point towards it’s path, while the wheels didn’t rotate.

Or, removing the rotation constraint completely just makes the whole thing follow the path as a normal parent/child unit.

(Built in 3.6. No idea what previous versions of blender will open it.)
wheels follow path.blend (1001.5 KB)

That looks like It would work fine and is more simple than mine. (not sure about going up and down hills but maybe it can.)

Dawn I just read that bit, I will try and make a new more simple version myself now I know how to get the caster flipping and wheel rotation working properly. I prefer to do it vanilla but will look into the addon it looks interesting.

With 4 or more wheels I would avoid this, and make the whole chair (or an empty) follow the path.

Also the wheels should be casters and the casters flip when the chair changes direction (forwards- backwards), while the wheels should always rotate in the direction of the general movement (even before and after the casters flip.)

I think making them casters wouldn’t be much at an overhead, as I would just have the wheels be a child of a cylindrical parent. To get that little delayed flip that casters do… Ultimately, it might depend on the requirements of the shot itself. For example whether or not the artist intends to drag this chair around in real time, versus it is a planned travel path.

One way is rather easy to fake, and the other would require some rigging math…

Come to think of that, I believe there’s an example file on the blender website where they do exactly this with the geometry nodes. It uses the new features in 3.6.

Making the casters and wheels move correctly is the tricky part. Following the curve is the easy bit!

That is the whole idea of the casters thread I linked, close ups with that “little” flip and the wheels rotating correctly before and after the flip, take a look at the file I linked in that thread (the last post).
It was made in 4.0 so you need 3.6 or greater.

Ah, I hadn’t looked at the other examples . Will check it out :slight_smile:

This sounds like it would work for my purposes. The scene I’m making is pretty simple, but wheels that don’t roll right are pretty noticable.

Sadly, my Blender just crashes when I try to open your file, but the way you describe your method sounds like something I could do in 2.93 (I upgraded!) But I’m not sure how to do it. I probably just don’t understand constraints well enough. I still have a lot of learning to do.

This conversation is great though! I didn’t think it would get this complicated lol This was supposed to be just a quick model, but I’m learning a lot more than I expected.

If you can make it work in my version @DNorman that would awesome! I’ll keep trying myself. I saw someone in the other thread mention Animation Nodes, so that’s something else to look into lol

Blender just keeps getting more complicated the more I learn about it lol It makes it a lot of fun, though

I think the OP of that thread went down the animation nodes route in the end, unfortunately I don’t think they were around in 2.79.

I will have a go and see if I can simplify the whole thing a bit.
The whole casters thing fascinated me a year ago and I had forgotten completely about it.

1 Like

If its simplicity you want i wouldnt go down the animation nodes path necessarily. Just use the addon i described, its gets you the desired outcome with minimal effort. There is even a version for 2.79.

Thanks! :slight_smile: That does look great. I’ve got the add-on installed, and I’ll play around with it

Here is a version that works in 2.79 (and up).

The same rig I used in 4.0 did not work in 2.79. This version does not work up and down hills/ramps (It will cause glitches) , it is fine on a flat curve (floor).

I used a more simple rig but the whole thing is still complex.

Here is the file:

Casters279.blend (862.4 KB)

Explanation:

The rig

Each wheel has a rig that determines the direction of the casters. The rig is 2 bones. One is shrinkwapped to a circle the other has an IK constraint that points to the shrinkwrapped bone and copies the location of the circles.

Due to some slight glitches I added an additional “track to” constraint to the IK bone to stabilize it.

The IK bone gives the direction of the casters and wheels. This gives you the “flip”.

The curve.

The setup needs to use a curve to get a distance traveled value to rotate the wheels correctly with the distance traveled.

I have used a curve and a curve modifier (not a path and follow path).

This is because I have always ran into problems with the follow path method, getting the wheels to rotate correctly when the “trolley” goes over 180º (they stop and start going backwards).

The casters shake a little due to the curves resolution if you increase its resolution they will be smoother, I left the shake because real world casters do shake a bit.

The “drive control arrow” is what you have to keyframe to get the trolley moving (the wheels will roll accordingly). You have to move it on its y axis only (backwards and forwards) I have locked the other axis’s.

The real movement of the “drive control arrow” is only on its y axis (even though it is deformed by the curve), so I needed a drivebone that copies the location of one vertex group at the back of the “drive control arrow” and tracks another at the front. As this bone follows the vertex groups it will send the trolley around the curve.

Edit
-The trolley and the shrink wrap circles are parented to an empty which is parented to the drivebone (you could do it without the empty)-

The ik bones copy the location of the circles.

The driver:

The wheels rotate thanks to a driver on each wheel, (in Blender 2.79 you have to enable python auto-execution in the file preferences)

The driver looks like this.

The wheels will automatically speed up slow down and stop when the trolley moves.

To change the general speed of the rotation (it will vary depending on the size of the wheels) you just have to change the last multiplication factor. In my case *3 (I did not calculate the circumference of the wheels exactly I just set it more or less)

The first part of the driver is what I was so happy about when you posted the question.

It give me a positive 1 and a -1 when the casters flip so that the wheels rotate in the right direction when you push the trolley backwards and forwards before and after the flips of the casters.

I think that is about it, I know it is still not simple, but the result is lovely!

If you find a more simple way to get the same effect please post it (be sure to get the casters flipping and wheel rotation right!)

That looks great! Thank you so much! I’ll see if I can understand it well enough to apply to my own model and post results :grin:

@Geospinelsulfid I tried Wiggle Bones. I managed to get the bones’ movement pretty close to what I wanted, but things fell apart when I tried to attach them to my model. :frowning: I’m sure there’s just something I’m missing. To be honest, though, I try to keep things vanilla where I can, anyway. Add-ons are great, but I like to try and understand what’s happening behind the scenes. I really appreciate the help, though, and I’m sure I’ll use it in the future.

1 Like