Community input needed: should bone constraints default to Local Space?

Hey !

Here is the script that you can run with a rig selected :

import bpy

rig = bpy.context.active_object
dic = {"bones":0,"constraints":0}

for bone in rig.pose.bones :
    dic["bones"]+=1
    for cons in bone.constraints : 
        dic["constraints"]+=1
        try :
            sp = cons.owner_space
        except :
            sp = "ERROR"
            pass
        if sp in dic.keys() :
            dic[sp] += 1
        else: 
            dic[sp] = 1
for k,v in dic.items() :
    print(k,":",v)

Here are some interesting stats :

A cartoony character,
This is a rig very close to the one used in boon & pimento : Boon & Pimento : Cartoon series made with blender

bones : 375 , constraints : 314
WORLD : 153
LOCAL : 161

A cartoony car rig from this show : https://www.youtube.com/watch?v=R8wzIpntYRk&t=2s

bones : 273 , constraints : 278
WORLD : 133
LOCAL : 145

Another production rig, realistic quadruped

bones : 227
constraints : 138
WORLD : 115
LOCAL : 23

Interestingly enough there are a bunch of world constraints, much more than expected…
Could be super cool to test on other rig at hands, feel to test that !
Obviously since I rigged all of them they fall under the same patterns, I don’t think we should try
to take the most used but this can be informative nonetheless !

3 Likes