Hierarchy Selection....
The problem...
I'm going say the word everyone hates to read here, but hear me out I have a different take. Groups. The problem has always been a language problem. People say "I wish Blender had groups" then everyone else says " It's already there" and then we all move on. What most people are considering "groups" in the real world is an assembly. An object composed of many different objects that for all intents and purposes act as a single object. Blender does indeed have this, sort of. However it doesn't work as expected, and this is how it becomes a language problem.
In Blender when you select the parent of a hierarchy and then move that parent object the children will follow. Just as you would expect. However if you select a child object and move it only the child is effected. This is the heart of the language problem. When people have asked for groups in the past what they are asking for is for a behavior that works like an assembly. If you grab a bicycle by the handlebars and move, the whole bicycle comes with you. The same is said for any component of that assembly. In Blender this is not the case.
So to summarize before I move on to my proposal. When people ask for groups what they are really asking for is groups to work like an assembly in the the real world.
My Proposal...
Add options to change some of the behavior. There is no reason the default behavior needs to change. However a toggle to enable behavior that is more intuitive seems fair. When the toggle is enabled the following should be the new behavior.
-
When nothing is selected and the user single mouse clicks an object. The object clicked, and all of its children should be selected. The intended, or clicked object should be the active object. "Grabbing a bicycle by the handlebars"
-
If a hierarchy is already selected a double click on a child should allow the user to select the intended object as a single unparented object independent of the hierarchy above it. If that intended child object has children of its own. The children should also be selected with their parent being the active object. This behavior should continue all the way through a hierarchy. "Taking a wheel off of the bicycle"
-
If a parent object is selected only it and it's children should be able to be manipulated (move, scale, rotate).
-
A single click on a child object should set it as the active object allowing it to be manipulated (move, scale, rotate).
-
A double click on a sibling should select that sibling and its children setting the intended sibling as the active object with it's children selected.
-
With any part of a hierarchy selected any click into empty space should deselect all objects as normal, and reset the hierarchy selection paradigm.
In effect, these changes would allow the current parent child hierarchy to act more congruently with the intuitive nature of objects as they are manipulated in the real world. Making groups act as a group, and eliminating the language problem that causes people to ask for groups once per year. Most of the basic behavior is already in Blender. Just simply single clicking an object to select the entire hierarchy it belongs to in the 3D View would alleviate the language problem. While there is a current workaround by adding a new keybind to "object.select_hierarchy", or "object.select_grouped" it leaves much to be desired. The same can be said for double clicking the icon in the outliner. None of these options are as intuitive as grabbing a bicycle by the handlebars.
In closing, I think everything I have stated above illustrates at least how groups could work, and as well how the current paradigm is not the intuitive one. Making the "non-problem" a problem in the end that has caused people to ask for a feature that is already in Blender for years.
5 Comments
3ds MAX's groupping system is a great reference btw. Imagine if we were able to enter "Group Mode" like we are able to jump between Object and Edit modes - life would be a bit easier.
Max did have a great system, but I specifically avoided comparison to other software because it tends to put off Blender developers. Also why I suggested as a toggle, or an option that could be set in preferences. I see the merit of the comparison, but the majority hasn't always. But again you are correct. Honestly though anything would be better than what we have now.
So many unnecessary clicks or cumbersome workarounds could be avoided with the inclusion of proper grouping in Blender.
It's extremely odd that being able to group objects and easily select and manipulate groups isn't already a feature in Blender when it's such a fundamental feature of 3d software in general.
But I've said that about other features before (some of which were finally implemented after several years of seemingly being ignored - being able to adjust rotation increments, for example).
It also seems strange that mentioning a fundamental feature of other 3d software would be a justifiable reason to exclude that feature from Blender (if it isn't patented).
Simply testing the grouping feature in Max should make it immediately obvious where/how Blender could be greatly enhanced in this area. Even just watching a tutorial shows it...
See 1m21s youtu.be/OAAH5MFHY8E
Longer video youtu.be/KRj80-OMJag
MachineTools groups youtu.be/QjT5DmsIJUQ
The Group Tools in Machine tools is pretty good too. I used it for a while and eventually stopped using it. Needing to click exactly on the mesh of the empty in some cases drove me nuts.