Drive Shape Keys with Bone Properties in Blender

Driving a shape key value with a custom bone property allows animators to control mesh deformations directly through an armature's pose controls. This guide covers the complete, step-by-step process of creating a custom property on a bone and linking it to a shape key using Blender’s driver system.

Step 1: Create a Custom Bone Property

  1. Select your Armature and switch to Pose Mode.
  2. Select the specific bone you want to use as the controller.
  3. In the Properties panel on the right, go to the Bone Properties tab (green bone icon).
  4. Scroll down, expand the Custom Properties panel, and click New.
  5. Click the gear icon (Edit Property) next to the new property:
    • Property Name: Give it a descriptive name (e.g., Smile_Control).
    • Type: Float.
    • Default Value: 0.0.
    • Min / Max: Set these to 0.0 and 1.0 (or your preferred range).
    • Soft Min / Soft Max: Set to 0.0 and 1.0 for slider limits in the UI.
  6. Click OK to save the property settings.

Step 2: Copy the Property as a Driver

The fastest method to link the property is using Blender's built-in driver copy feature:

  1. Right-click directly over the newly created custom property slider in the Bone Properties panel.
  2. Select Copy as New Driver.

Step 3: Paste the Driver onto the Shape Key

  1. Switch to Object Mode and select your mesh object.
  2. In the Properties panel, go to the Object Data Properties tab (green triangle icon).
  3. Expand the Shape Keys panel.
  4. Locate the shape key you want to control.
  5. Right-click on the shape key’s Value slider and select Paste Driver.
  6. The value field will turn purple, indicating an active driver is linked.

Step 4: Verify and Adjust the Driver Configuration

If you need to adjust the influence or configure the driver manually:

  1. Right-click the purple shape key Value slider and choose Edit Driver or Open in Drivers Editor.
  2. Ensure the Driver Type is set to Averaged Value or Scripted Expression (with the expression set to the variable name, such as var).
  3. In the input settings:
    • Prop: Set to your Armature object.
    • Path: Verify the path points to the bone property format: pose.bones["BoneName"]["PropertyName"].
  4. Switch the armature back to Pose Mode and adjust the custom property slider on the bone to verify that the shape key updates in real time.