Drive bone rotation from another bone's translation

I am looking to use a bone as a “slider” to control the rotation of another bone. When the slider is at the lowest end of it’s range the target bone will not be rotated. And when the slider is at the top end of its range the target bone will be rotated 90 degrees.

I understand drivers and constraints fairly well. But the only control I have for rotating the bone is a quaternion. I would like to, say, control the rotation around the X axis with a driver but I don’t see how I can do that.

Any ideas?

it’s a bit difficult to understand… but I would definitely go with some kind of drivers…
Why can’t you put your bone in XYZ rotation?

Why can’t you put your bone in XYZ rotation?

Is there an option to change from quaternion to xyz?

Make the rotating bone XYZ Euler rotation, then add a single driver to the appropriate rotation transform and use the location of the first bone as the driver variable, personally, I would use an empty as the slider not a bone, then add a limit location constraint to the empty so it only moves in one axis.

Don’t forget that all driver rotations are in Radians not degrees, there are 2 * pi radians in a full circle (90 degrees is pi / 2 radians - you can use pi in the scripted expression), and check “Auto-run Python Scripts” in User Prefs > File Tab or scripted expressions will not work.

Cheers, Clock.

Yes - look in the bone’s object panel under “Rotation Mode” - it’s a pull down menu.

Cheers, Clock.

Thank you so much for the help. I’m a little embarrassed I didn’t find that. All the same you saved me hours since I didn’t see it :slight_smile:

Alternatively use a transform constraint. Here’s a quick file.

Moving (in pose mode) bone.001 0 to 10 on x axis rotates bone -90 to 0 around its x axis.


bone.blend (83.5 KB)

Blender community is the best :slight_smile: