Corrective shape key driver for the shoulder

I asked this question on Blender Stack Exchange, but I’ve got no bites so I thought I’d try my luck here!

I added a driver to the shape key for the shoulder, added the upper_arm.fk bones (I’m using the rigify rig), and set it to Y rotation, local space, and averaged values. I didn’t add a generator modifier as it didn’t make any difference.

Does anyone know how to add corrective shape key drivers for the shoulder? Nothing is happening to the shoulder at the moment when I rotate the upper arm fk bone on the y axis.

The shoulder does not rotate on the Y axis for the standard Rigify Rig. It only rotates in X and Z and that is on the bones Local axes. I can’t tell from the screenshot how you have the bone aligned so I cannot tell you which axis to use. (Turn on bone axes display.) You can find this out by using the hotkey R, then X,X, or R then Z,Z (if you are using Normal or Global Transformation Orientation). Change your variable to this other axis, once you determine which it is.

Also, change the bone to ORG-upper_arm.L instead of the FK bones. This way, whether you are using IK or FK controls to pose, the driver and corrective shape will still work. The ORG bones for legs and arms is the intermediate that switches between IK and FK, so this is the bone that should be used to drive corrective shapes. (In most cases. Exceptions always apply.)

One more tip, a human cannot raise their arm like in the screenshot unless they involve the shoulder. The shoulder needs to be raised whenever the arm reaches the T-pose position and above.

Good luck!

Hey DanPro! I just found and subscribed to your youtube channel yesterday! Thanks for replying! :slight_smile: Changing it to the z rotation fixed it to an extent, although the shape key inflates the shoulder far too early. How do you counteract that and have the shape key activate only at a certain point in the rotation?


Also, when you say the shoulder needs to move as well in poses >= t-pose, is that the clavicle or bone specifically designed for the shoulder?

p.s. just about to have a massive binge on your rigging videos :slight_smile:

I’ve made a quick tutorial to show an easy way to create drivers for corrective shapes using the Rigify rig. https://youtu.be/wUs04SGUnVI

I’ll likely do a more indepth tutorial at a later date. This should help until then. Towards the end of the tutorial, I demonstrate the T-Pose/shoulder issue. I hope that clears up any questions.

Good luck!

Thanks I really appreciate that! The tutorial answered all my questions. I look forward to any future videos you make.

Your other rigging videos were very helpful as well, but unfortunately I discovered that Unity 3D’s Mecanim system doesn’t recognise some of the deform bones in the limbs (https://docs.unity3d.com/Manual/BlenderAndRigify.html). I can only weight paint to the first deform bone in each limb section, and I can’t parent bones to the second deform bones.

As such, I decided to use the pre-generated metarig and just use FK with shape keys. This is not ideal as I lose some of the functionality of rigify, but I thought there is no point using resources on a complex rig that I can’t even use!

What would you do in this situation? Have you tried using rigify with mecanim? If you’re interested and want to look into it, here’s a script that automatically converts the rigify rig into a mecanim friendly skeleton: https://github.com/trynyty/Rigify_DeformBones. While the script works, I still can’t use your cool twist bone technique due to the deform bone restriction.

I do not use Unity. Darrin Lile has a tutorial series that uses Rigify and Unity. He avoids using Mecanim, so I’m not sure it will help, but it may be worth a look.

To me it looks like baking the animation is a key to his workflow.

Good luck!