I have a character animation using a rigify human rig. I blocked the animations using different IK Parents for the hand controllers. Before I start splining I want to unify the IK Parent for all my keyframes (above 200 breakdown keys). So I thought using a script to simply loop over all keyframes and set the correct IK parent would be nice. But I don’t know how to execute functions from the rig ui via python


1 Answer 1


You need to access the pose bones, find the bone that has the IK bone constraint, and modify the subfield target of that constraint.

Here's a small script that prints all of the bones that have IK constraints in a standard rigify generated human rig, and all of their existing targets. Hopefully it will help you figure out the code you need:

import bpy

rig = bpy.context.scene.objects['rig']
for bone in rig.pose.bones:
    for constraint in bone.constraints:
        if constraint.type =='IK':
            print(f"{bone.name}: {constraint.subtarget}")

This assumes that you have a generated rig with the default name of rig. Change the name in single quotes in the rig = statement. constraint.subtarget is the value you want to set.

See Kinematic Constraint in the manual for details on the constraint structure.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .