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:
- Deform Chain (DEF): The bones that deform the
actual character mesh (e.g.,
DEF_UpperArm,DEF_Forearm,DEF_Hand). - FK Chain: The bones manipulated manually via
rotation (e.g.,
FK_UpperArm,FK_Forearm,FK_Hand). - 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:
- Switch to Pose Mode.
- Select
DEF_UpperArmand navigate to the Bone Constraints tab in the Properties Editor. - Add a Copy Transforms constraint. Set the target to
your armature and the bone to
IK_UpperArm. - Add a second Copy Transforms constraint below the
first one. Set the target to your armature and the bone to
FK_UpperArm. - 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
- In Pose Mode, select the bone intended to hold the switch UI (typically a master UI bone or the hand/foot controller).
- Open the Sidebar (
Npanel) or go to the Bone Properties tab. - Scroll to the Custom Properties panel and click New.
- 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
- Property Name:
- Click OK. This creates a slider that ranges from
0.0to1.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
- Hover over the custom property
IK_FKslider, right-click, and choose Copy as New Driver. - Select
DEF_UpperArmand go to the Bone Constraints tab. - Right-click the Influence slider of the
FK_UpperArmCopy Transforms constraint and select Paste Driver. - Right-click the Influence slider of the
IK_UpperArmCopy Transforms constraint, select Paste Driver, then right-click it again and choose Edit Driver. - In the Driver Editor popup, change the Expression
to
1 - var(or1 - IK_FKdepending on the variable name assigned).
Method B: Manual Driver Configuration
- Right-click the Influence of the FK constraint and select Add Driver.
- Set the Type to
Scripted Expression. - Set the single input variable to type Single Property.
- 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"]). - Set the expression to
var. - Apply a duplicate driver to the IK constraint with the expression
1 - var.
Step 5: Copy Drivers to the Rest of the Limb
- Right-click the driven influence field on
DEF_UpperArmand select Copy Driver. - Select the corresponding constraint on
DEF_ForearmandDEF_Hand, right-click their influence sliders, and choose Paste Driver. - 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.