How to Create an IK/FK Switch in Blender

This guide outlines the process of building an IK/FK (Inverse Kinematics / Forward Kinematics) switch slider in Blender using custom properties and drivers. By setting up a dedicated slider property on a control bone, you can drive the influence values of bone constraints, allowing seamless transitions between intuitive posed animations (FK) and goal-oriented limb placement (IK) on a character rig.

Step 1: Set Up the Bone Chains

A reliable IK/FK setup typically uses a three-chain bone system:

  1. Deform Chain (DEF): The bones that deform the actual character mesh (e.g., DEF_UpperArm, DEF_Forearm, DEF_Hand).
  2. FK Chain: The bones manipulated manually via rotation (e.g., FK_UpperArm, FK_Forearm, FK_Hand).
  3. IK Chain: The bones controlled by an IK target and pole target (e.g., IK_UpperArm, IK_Forearm, IK_Hand).

Ensure all three chains share the exact same bone hierarchy, roll values, and joint positions.

Step 2: Constrain the Deform Bones

To blend between the two systems, constrain the deform bones to follow the IK and FK chains:

  1. Switch to Pose Mode.
  2. Select DEF_UpperArm and navigate to the Bone Constraints tab in the Properties Editor.
  3. Add a Copy Transforms constraint. Set the target to your armature and the bone to IK_UpperArm.
  4. Add a second Copy Transforms constraint below the first one. Set the target to your armature and the bone to FK_UpperArm.
  5. Repeat this process for the forearm and hand bones, ensuring the IK constraint is always first and the FK constraint is second.

Step 3: Create the Custom Property Slider

  1. In Pose Mode, select the bone intended to hold the switch UI (typically a master UI bone or the hand/foot controller).
  2. Open the Sidebar (N panel) or go to the Bone Properties tab.
  3. Scroll to the Custom Properties panel and click New.
  4. Click the gear icon to edit the property settings:
    • Property Name: IK_FK
    • Type: Float
    • Default Value: 0.0
    • Min: 0.0
    • Max: 1.0
    • Soft Min / Soft Max: 0.0 / 1.0
  5. Click OK. This creates a slider that ranges from 0.0 to 1.0.

Step 4: Add Drivers to the Constraints

Use Blender's driver system to link the custom property value directly to constraint influences.

Method A: Quick Driver Setup

  1. Hover over the custom property IK_FK slider, right-click, and choose Copy as New Driver.
  2. Select DEF_UpperArm and go to the Bone Constraints tab.
  3. Right-click the Influence slider of the FK_UpperArm Copy Transforms constraint and select Paste Driver.
  4. Right-click the Influence slider of the IK_UpperArm Copy Transforms constraint, select Paste Driver, then right-click it again and choose Edit Driver.
  5. In the Driver Editor popup, change the Expression to 1 - var (or 1 - IK_FK depending on the variable name assigned).

Method B: Manual Driver Configuration

  1. Right-click the Influence of the FK constraint and select Add Driver.
  2. Set the Type to Scripted Expression.
  3. Set the single input variable to type Single Property.
  4. Set the Prop: target to your Armature object, the Context: to Pose, and the Path: to the custom property path (e.g., pose.bones["UI_Bone"]["IK_FK"]).
  5. Set the expression to var.
  6. Apply a duplicate driver to the IK constraint with the expression 1 - var.

Step 5: Copy Drivers to the Rest of the Limb

  1. Right-click the driven influence field on DEF_UpperArm and select Copy Driver.
  2. Select the corresponding constraint on DEF_Forearm and DEF_Hand, right-click their influence sliders, and choose Paste Driver.
  3. Repeat for both the IK and FK constraints down the entire chain.

Adjusting the IK_FK slider between 0.0 and 1.0 will now cleanly blend the deformation chain between full IK control and full FK control.