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

Currently, bone constraints default to World Space, which isn’t (in my view) ideal. I believe World Space should be the default for object constraints and Local Space should be the default for bone constraints.

This isn’t a discussion for the sake of discussion- I’ve been encouraged by the animation module developers to gather input from riggers on this subject. If there’s a consensus that yes, bone constraints should use Local Space, I’m going to submit a patch changing this that would be targeted for 3.6 LTS. So, your input here matters quite a lot. :slight_smile:

Should bone constraints default to Pose Space?
  • Yes
  • No

0 voters

Edit: I’m realizing Pose is the wrong choice, everyone uses Local (myself included). Consider a vote for “Pose” space a vote for “Local” space, because I can’t edit the poll now :grimacing:

4 Likes

Feel free to add discussion, rationale, etc- the more information that can be gathered here, the better. The current concern is this:

The question is what kind of confusion that would cause, for people who just expect things to work the same regardless of what they stick the constraint on.

That is to say, would it be confusing to have bone constraints and object constraints have different defaults? I’d love to hear some thoughts about this from other riggers/animators

I’m no rigger, but occasionally use constraints, and in my expirience “world” has never been the right answer for the task. Local space does the trick

4 Likes

Thanks for your input :grin:

Hey !!

I’m a bit ashamed to admit that I barely never used pose space in all these years as a professional rigger :smiley: But 98% of the time for sure I switch to local space.

I should definitely give Pose space a trial !

I’ve got quite mixed feelings here.
When I think at all these constraint I added and switched the type right away :smiley:
In the meantime , I found World space to be very predictable. I think for a beginner it might be reassuring. In that sense I’m in favor of keeping defaults.

Another thing that is worth checking, is that animators uses a few constraints, the most used being child of.
These are also I think users that will need good defaults the most, since they generally don’t really know what they are doing but need the job to get done.

For now I didn’t vote yet, I agree that it’s a little annoyance, this never bothered much since I spend a lot of time thinking and testing. What I mean is that I spend much time testing stuff than operating bones. I never experienced a kind of “flow breakage”, like you could have maybe when speed modeling and you want nothing in your way.

But that’s a good question, I’ll keep thinking a bit about it and I’m registering to that thread right away !

3 Likes

This is a very interesting perspective, definitely not one I had considered, so I’m glad you shared it :slight_smile: I’m surprised to hear you’ve never used pose space, although I suppose pose/local space aren’t terribly different in terms of bone-to-bone constraints.

My vision here revolves around bone-to-bone constraints pretty much exclusively; in my head, bone constraints are for bone-to-bone cases (most of the time), and object constraints are for rigging involving empties etc. In that use case, Pose Space makes more sense than World Space, but that definitely isn’t the only use case.

When I rig, I don’t really use empties, if I need an empty, I usually just add a bone instead. I think I have some blind spots here, because I know hard surface riggers often use empties. @bandages , you’re a prfoessional hard-surface rigger, can you weigh in on this discussion?

2 Likes

Just to be clear, I don’t use empties that much either !
At least not in a way that concerns us here. Like you most of the time it’s better to use only bones.

Or, say I do a quick camera rig for a shot I’ll use only object constraints. And world space makes more sense here.

Hahah, yeah quite similar even if I don’t get the difference :smiley:

I guess this subject as already been discussed among long term riggers involved in the blender development / open movies ? I think about Bassam Kurdali, Nathan Vedgdal , Dimiter ?
At least it could be cool to get their inputs on that as well ! We might summon them if needed ?

I’ll also invoke @pullup since he can get feedback from the animation studio where he is working.

1 Like

What about taking a few rigs and do a survey on what is the most used setting ?
I can write a little script for that !

1 Like

I always forget that Pose space exists. I mostly use Local or Local with Parent. I should be using Pose space though.

For myself, I wouldn’t mind it being the default. It may be confusing for newer users though. It is readily apparent what World Space does and that it isn’t the final space you want for most setups. Not so for Pose Space.

I’m also not entirely clear on how Pose Space defines the root bone. I know how it works in the context of a full character rig, but I’m not sure how it would work in other situations. Or when making rigs one component at a time and then combining them.

I have not voted yet either.

2 Likes

I like the idea- do it :grin:

As far as I know, Pose space is, more or less, the same as Local with Parent- that is to say, it ignores the transforms of the root bone entirely, which makes constraints like Copy Location or Copy Rotation much easier bone-to-bone. I see Pose space as a simpler, more intuitive label for Local with Parent.

This is the main concern that Sybren Stüvel had. I’d love to hear some input from less experienced riggers as well, hopefully.

This is my motivation for switching - I find that World Space is almost always not what you want, so it makes sense to me to change the default to something more useful. The question is if that outweighs the fear of confusing of newer users, though :thinking:

2 Likes

Bone Constraints get very complicated, and I don’t think we should have an expectation of them working for new users without some study anyway. And once you start studying them, the transform spaces are easy to learn.

In other words, I’m not sure it makes sense to cater to new users in this feature when the entire thing is already so unfriendly to new users. Having defaults cater to new users makes sense when you can build something with only partial understanding of the features and have it work if you mostly leave it on defaults. But that isn’t the case for bone constraints anyway, so its probably fine to just let it be convenient for regular users.

3 Likes

I agree- in my head, a brand new rigger is going to be confused by why bone constraints are acting wonky anyway (if they leave the default at World Space), there’s not really a good way to make things “simple” for them when this is such a complex subject. I personally would rather cater to more experienced users here; honestly, I doubt brand-new Blender users are using bone constraints much anyway :slight_smile:

2 Likes

Nobody gets anywhere till they watch Humane Rigging anyway.

If you really want to make Bone Constraints new user friendly, put a link to Humane Rigging in the tooltip and docs :laughing:

3 Likes

Definetely, pose space is the way to go.

However, don’t even think of devs having common-sense on this. They just are unable to consider proper parent/child handling… for bones, maybe your children or grand-children will see changes in blender :stuck_out_tongue:

I believe that add-ons will ( as usual ) fill blender lacks ?

I stopped hoping amazing functionnal things from blender. I just use the base, wich is great and stable and for the other things, addons and python is the only way to go…
I know this is a shame ( and i might get rumbling answers ) but this is my each-day reality :slight_smile:

Happy blending !

1 Like

“However, don’t even think of devs having common-sense on this. They just are unable to consider proper parent/child handling”

I think you are well aware that in an open source project like this, and with a title of add-on Developer, YOU are part of the “devs”, you are talking about.
So if you have feedback that is constructive and want to see something changed (which is why this thread was started by the way because a lot of us are working to improve a very large part of the rigging and animation tools) please link us to your threads here or on Right Click Select that you started or that you think have been over looked and share it with the animation module, @pitibonom
Looking forward to hearing what should be changed to improve parent/child handling.
Thank you.

3 Likes

A follow up question for the thread here:
Do you wish that the constraints could have user set defaults so that you could just create them and not have to change them every time you make one?

What is your current workflow now so you don’t keep having to change it after every time you add a constraint? Thank you

3 Likes

I wonder, most of the times when I use constrains in rigs it seems I go to local space, maybe im doing it wrong.

2 Likes

What if there was a drop-down in the user preferences, in the Animation section, where you could choose the default space for bone constraints?

  • World
  • Pose
  • Local

We know so far that no one would pick World, but it seems like it would be good to have an option between Local and Pose being the default for bone constraints

2 Likes

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

For this rig:
bones : 154
constraints : 95
LOCAL : 63
WORLD : 26
LOCAL_WITH_PARENT : 2
POSE : 4

Apparently, I’m stupid, and I also use Local space. I feel kind of dumb now, here I thought I used Pose space :sweat_smile:

1 Like