Current Issues
- Layers can't be named.
- The number of layers is limited to 20.
- Layers can't be grouped.
- Current layer manager has low discoverability - it has no description or icon, takes little space in the UI, and it is highly non-standard.
Solution
Add a dedicated "Layer Manager" window type, or a mode in the Outliner.
GSoC 2016: Layer Manager Proposal
This topic is being worked on by Julian Eisel in his GSOC. See his proposal here: https://wiki.blender.org/index.php/User:Julianeisel/GSoC-2016/Layer_Manager_Proposal
Here is his UI design doc: https://wiki.blender.org/index.php/User:Julianeisel/GSoC-2016/UI_Design
Mockup (PLyczkowski)
EDIT UPDATE:
Description:
These are layer visibility icons:
The equivalent in the current interface:
Rows with a folder icon are Layer Groups. They can contain only Layers, not Objects.
Arrows (like the ones used currently with Panels) are next to Layer Groups, plus icons (like the ones currently used in the Outliner) are for Layers. Differentiating helps distinguish the functionality - Layer Groups are like folders for Layers, they don't contain any data, they are just a GUI construct, so they don't have the tree structure containing Data Block like Layers and Objects (I guess in the mockup objects should have pluses as well). In General the content of a Layer, when you unfold it with a plus, is just like in the Outliner.
The Selectable/Renderable Icons work as follows:
Settings higher in the hierarchy override lower settings, but only subtractively.
So an 'unselectable' setting in a Layer overrides a 'selectable' setting in an Object. An unselectable setting in a Layer Group overrides a 'selectable' setting in all it's Layers.
But a 'selectable' setting never overrides 'unselectable' setting in an element lower in the hierarchy. For example, a 'selectable' setting in a Layer doesn't override an 'unselectable' setting in an Object on that layer.
Same for renderability.
If this is deemed too powerful (a toggle in the Layer Manager restricting selectability and renderability of objects, despite their local setting), the toggles for Layers and Layer Groups can be removed, leaving only the toggles for objects, and replaced with batch operation from an RMB Menu - 'Make Objects Unrenderable', 'Make Objects Renderable', 'Make Objects Unselectable' etc.
----Standard functionality I think should be implemented:
Ability to select Layers/Layer Groups. LMB once on row to select, Shift-LMB to add to selection. This is different to making layers visible - it's purpose is to run commands on layers, and also makes the newly added objects be added to selected layers (ignoring Layer Groups).
Newly created Layers and Layer Groups are created above all selected Layers and Layer Groups, except when a single Layer Group is selected - then ther are created inside that Layer Group on the top.
Drag and drop.
----Blender-specific functionality I think should be retained:
Managing layer visibility (i.e. current square layer checkboxes, not object visibility depicted by eye icons). LMB on visibility icon -> make only this Layer/Layer Group visible. Shift-LMB - add to visible layers. ~ -> make all visible.
It's impossible to turn off layer visibility of all Layers.
----Layer visibility inside groups could work as follows:
Clicking on a layer visibility icon of a layer inside a layer group makes it visible.
Clicking on layer visibility icon of a Layer Group makes all layers inside the group visible. Shift clicking on already visible layer inside a Layer Group turns off it's visibility.
Shift-clicking on a turned on layer visibility icon of a Layer Group makes all layers inside it invisible, while retaining layer visibility of all other Layers and Layer Groups.
----Here is old to new Layer Manager conversion (happening when you open an old file):
OLD MOCKUP:
It would retain how the current system works, while adding some functionality:
- Click on a square on the left side of the layer's name to show that layer and hide all others, shift-click to add to visible layers. This system works well with a 3d application, since it is a more frequent scenario that the user wants to see only one or two layers at any given time, to save computer resources and reduce viewport clutter. In a 2d application the user usually prefers to see the final 2d output, so the most common scenario is that all layers that will be visible when saving the final image are also usually visible when during the creation of the image.
- Press ~ to show all layers.
- A dot on a layer shows that it contains objects. An orange dot shows that it contains selected objects.
- Double click on a layer's name to rename it.
- Drag and drop to move layer up and down in the list (just for organizational purposes), and to drop layers or groups into groups, or remove layers or groups from groups.
- Click on the layer's or group's bar background to select it, and prepare for operations (drag and dropping, Deleting). Ctrl-click to add or remove from selection, shift click to select all layers or groups between the last selected layer or group, and the clicked layer or group (works only on layers or groups that are on the same level of grouping).
Alternatives
- Add Layer Manager as a submode to the Outliner. Pros: Would be easier to switch between the Outliner and the Layer Manager. Cons: Less discoverability. The outliner already has too much display modes.
- Make the Outliner and the Layer Manager two tabs of a single window. I'm not sure about the name of this new window.
Handling unlimited layers
Adding unlimited layers would change how Render Layers, Relations panel and Dupli Visibility in the Groups panel would handle them. Here is an example how it would be done in the Render Layers tab in the Properties window:
Here we have the render layers at the top, as currently, and below we have a way of choosing what a layer contains. This is a moment where layer nesting really shines, because a render layer can contain a Layer Group, meaning that each time you add an object to that group, it will also be on that render layer on the next render.
It's also a natural evolution of the way this works currently, so that means less GUI-change-shock.
Other areas would do it in a similar way.
Quick 3d View Access
Currently the layers are accessible in the 3d View window. This currently proves useful when working fullscreen. If the above proposition would be implemented, this would also provide a way to keep the workspace layout simple, by removing the Layer Manager window from it, and using the quick 3d View access button exclusively.
The popup windows would work like this example (you can click multiple times inside popup, and click/hover outside to close):
(click to play gif)