Bones controlled by poses and Shape Keys

Hi there, I keep trying to find some information about this and can’t seem to find it. It seems like it should be something pretty simple to do.

When making a shape key, you create a slider to move the vertices on a mesh to a new pose, like a smile or a phoneme. However, I would like to be able to rotate a bone slightly along with the vertices.

Case in point: Suppose I am creating a shape key for the Phoneme for “A”. as part of that pose, I want the Jaw bone to rotate slightly, say 5 degrees. Obviously the shape key slider only affects the vertices, how do I get it to affect the bone too?

In Cinema4D, I was able to do this with a little Xpresso, kind of a visual scripting language built into C4D. How would one do it in Blender.

I have found many tutorials about how to use a bone to trigger a shape key. That is kind of the opposite of what I am asking.

Thank you very much for your help in advance.

You create a driver for the bone.

  1. Select your jaw bone and make sure it’s using an Euler transform.

  2. Right click in the number field of your shapekey, select “copy as new driver.”

  3. Select your jawbone and right click in a rotation field, select “paste as new driver.”

  4. Open a driver editor viewport (and sidebar) and edit the driver. (Using math or the fcurve mapping provided in the editor. Drivers use radians not degrees.)

There are plenty of details to the implementation to get exactly what you want.

This used to be more difficult than it is now due to dependency issues, but to my knowledge, those are all sorted out now. However, that history is probably part of why you don’t see half as many tutorials going this way as the opposite way (bone->shapekey.)

1 Like

Thank you so much for your help. I haven’t tried it yet, but will in a bit. Hopefully it works without a hitch!

Hi Bandages,

Once again, thank you very much for your help. The directions were pretty spot on. One difference is that in number 3, you need to switch to pose mode before you paste the driver in the rotation field.

However, an important question came up and that is if you have multiple shape keys. For example, in the case of Phonemes, there are multiple poses that you would want to rotate the bones at different rotations.

Thus, I made another shape key, copied the number field of the shape key as a new driver and pasted it into the rotation field of the jawbone, but I think it replaced the first one.

Then I started playing around with it and noticed that if I pressed the button “Add Input Variable” to the driver, made the Prop “Key” and copied the data path of the number field from the second shape key into it, that seemed like it might work.

Is that the right approach, or is there some other way you would suggest having multiple shape keys control the bone?

Thank you again for your valuable help.

I wouldn’t try to drive the jawbone from multiple shapekeys.

If you decide that you want to, you have to decide how you want your various factors to interact. Do you want it to rotate whichever rotates the most? Do you want it to add rotation? Do you want it to add rotation?

What you need to do is create additional properties for the driver, set it to scripted, and then describe how you want it to behave. For example, (var10.1)+(var20.2) to combine two variables that rotate the jawbone different amounts.