I’ve recently built a little animation during a live stream, and Rod’s suggestion was to add NASA’s Curiosity Rover into the scene. It’s a freely available blend file, and I thought it was a great idea. It added a lovely character to the otherwise deserted alien landscape, and I quickly animated it into position.
Trouble was, the little guy was essentially an afterthought, and when I was watching the animation back, it became obvious that its wheels needed to be turning as it was driving around. While I was keen to do this, I had no idea what mechanism I should use for such an Endeavor (har har), or what Blender had to offer in this regard.
My first thought was to simply animate the wheels with keyframes, but this would be a lot of work, and if the rover’s speed were to change I’d have to probably animate those wheels again. There being six and all, I discovered a better way to make the wheels turn, using something called a Driver.
I found this tutorial by Olav3D in which he explained the principle. For my rover, it meant that I had to select the wheel in question and figure out which axis it rotates around. Mine was the X axis, currently set to 0 in the Object Properties. Then I had to right-click into that field and select Add Driver (or press CTRI + D).
This brings up an interesting panel full of logic and parameters, the ones that a coder might immediately connect with. Essentially what we need to tell Blender is, “look at the Rover’s movement along the Y axis, take that value and feed it into the X rotational value of this wheel”. That’s what a driver does I guess, it “drives” a parameter derived from other parameters. If they change, the driver translates them and changes its output.
Hence, in this Driver menu, I had to select the Rover object at the bottom, then adjust the value we get from its Y location, and write an expression with the resulting variable (var) that we take in. I can put var directly into the Expression Field, but that makes the wheels turn too slowly, and in the wrong direction. So I inverted the value using the minus sign, and multiplied it by 2.5. It looked great for my model, but of course it depends on the wheel size and input value.
I needed a Scripted Expression, but Blender offers other interesting options in the drop down menu, with which we can add, average or grab a maximum/minimum value.
Once the Driver is setup, the relevant field turns purple. All I had to do then was to copy the same driver to the other wheels, using the Copy Driver / Paste Driver function (available under the right-click menu). This is also how you can edit the driver values if you need to change anything.
And that’s it! This driver thing is an excellent way to make all kinds of things move around without having to animate them by hand. Let’s see what else we can drive!
3 thoughts on “How to make wheels turn in Blender 2.8”
Looks like you nailed it, Jay! Those wheels are rotating perfectly – you’ve done NASA proud, my friend! LOL Can’t wait to see the next shenanigans!
I’m thinking about getting my DAZ machine upgraded – it ‘only’ has a 500GB SSD OS drive, and it’s already nearly full just with Windoze 10. I’m going to find out how much it would be to have Microcenter just put in a 1 or 2 TB SSD (preferably a 2..), OS drive and a fresh load of W-10. I have 2 other drives in it, but I’d pull those before taking it in.
If we’d be neighbours, I’d suggest we do it together without Microcenter’s involvement! It takes an afternoon to do, but it would be so much fun. Alternatively I could drop by with my private jet… but it’s still in the shop. Something about my check bouncing? Maybe someday!
LOL… Yeah, I was gonna grab the computer and jump on the Learjet, but the Girls are using it for some darn silly mission or something… Probably Christmas shopping…. I could do it myself, but I’m actually not sure if it came with a disc to load Windows.. I’ll have to look around.. I just figured if they do it and something goes awry, it’s on them to fix it instead of me pulling out what little hair I have left! ?