Small wheel rig up-movement needs to translate into side movement


I am working on a small project. In order to complete my project i need a working rig. Most parts i can figure out, except this one.

I have a bone, i called up, that needs to travel only up ( Z ), no other movement needed, and wanted. By a hinge-bone, i need to translate the side bone only in the y-direction.

So if you move bone UP in the Z direction, bone Side needs to move only in the Y-direction, and needs to stay in the Y-plane, so no Z-movement allowed

Can anyone help me.

Once the project is finished, I will parent the rig to a very nice machine, wich I will release on blendswap for all of you to use.

Please help.


wheelrig.blend (469 KB)

Two ways to do this, drivers or constraints, which you use is up to you.

Drivers lag 1 frame behind, usually it’s not noticeable, but if you are rendering a close up of a mechanical device, it might be.

Constraints could be used, specifically the transformation constraint like you have in that file, but they may not work 100% mechanically either. You could use that constraint on ‘side’ moving it along the y-axis as the ‘up’ is moved in the z-axis, but that would be a linear movement. Linear movement won’t really work here. The y location of ‘side’ will vary as ‘up’ is moved on the z-axis and the rate of movement will vary because of ‘hinge’. ‘hinge’ rotates so the y location of ‘side’ will change slowly as ‘up’ is first moved, but the higher the location of ‘up’ the more ‘side’ needs to move.

Drivers would probably handle this changing rate of movement better by creating custom curves for the driver.

Either way, I would get it as good as I needed, then use a stretch to constraint on ‘hinge’ to keep it in constant contact with ‘up’. True it’s a cheat and ‘hinge’ could never stretch in real life, but it’s a good way to hide the problems mentioned above and no one would notice.

Mind if I ask what the device is?


Hey Andy,

Thanks for the respons. I’ve modelled a pallettruck and a europallet. The first europallet you can find on Blendswap, under europallet. I’ve redone it, made it better ;-). The pallettruck is already fully modelled, in scale to the europallet.

The rig i’m working on are the litlle wheels in front. As the pallet truck rises, the wheels need to come inwards.

I’ve made something with a IK-control bone, but when i move the whole rig, the control bone stays in place, and the wheel go to far inward.
I’ve been looking into the driver option, because it is nothing more than Pythagoras ( A²=B²+C² ).

Do you know how i can get the length of the bones, and the height of the up bone. If i have these, then making the driver is not such a big issue.

However, I must say that i think there is an easier way to do it. I just haven’t found it yet…

Well, 1st small typo, it’s Randy, not Andy, but no big deal…

I guess you could use ik for this. I did not think of ik at first because it wouldn’t do what you wanted:

So if you move bone UP in the Z direction, bone Side needs to move only in the Y-direction, and needs to stay in the Y-plane, so no Z-movement allowed

With ik, there would be no way to move ‘side’ bone on the y-axis, but this wouldn’t be correct given what you are making. With a pallet truck, when ‘up’ goes in the z-axis, ‘side’ doesn’t move. Instead, ‘up’ would move on the y-axis as it moves on the z-axis to keep it connected with ‘hinge’. If you don’t understand why, just say so and I’ll explain it.

For ik, I would duplicate the ‘up’ bone and scale it down in size in edit mode. Ad the ik constraint to hinge, chain length of 1, naming the new control bone. Make ‘up’ a connected child of hinge and disable inherit rotation. Make control bone a un-connected child of ‘side’, or what ever the main control bone for the entire rig is. This is just ‘off the top of my head’, I didn’t test this.

For the driver solution, yes you could use a formula (math is my weak spot) or you could create a curve that would handle you need. But given what you are doing, I wouldn’t use a driver.


Hey Randy,

Sorry for the typo :-).

I’ve fixed it, finally. I used drivers. I now know how the finally work. I used a scripted expression.
I’ve attached the solution. It is good ol pythagoras. I’ will have to tweak my mes dough, because of problems with 0 locations ( 0 and sqrt and such dont mix well ). But no big problem dough. There is a little lag, but I’ll fix that in the way camera moves :-D, I’ll cheat my way out of it.
Many thanks for helping me out :-D.


wheelrigdriven.blend (483 KB)


I’ve finallised the rig and made it available. Search for pallettruck by bapsite :-).

Thanks for helping out