Page MenuHome

Consolidate tool-related settings in top bar
Closed, ArchivedPublic

Description

We want to consolidate all the tool related settings and place them in the top bar, aligned to the right. This way, users always know where to find these as they stay spatially always in the same place, and they are placed next to the rest of the tool settings.

We also want to make these features easier to use. We do this by have a consistent 'enabler' button next to the popover. Inside the popover, we have more space to properly communicate how each feature works, as demonstrated here:

  • Pivot Point:

  • Proportional Editing:

  • Snapping:

  • Orientation:

Details

Type
To Do

Event Timeline

William Reynish (billreynish) triaged this task as Normal priority.

Why would we move those settings into the top-bar? It's nice to have all tool-settings in a single place, however some of the mentioned settings are merely 3D View settings. And the ones that are shared across multiple editor types usually vary depending on the editor type. E.g.:


From discussions during the code quest, I thought the consensus was to keep them in the editors they belong to, but to properly make them per editor type (so that enabling snapping in the 3D View wouldn't also enable it in the Node Editor for example).


IMHO, the top-bar should not show any settings that are specific to a single editor (type), or to non active tools/commands. Otherwise, where to draw the line? Say new tools for mask editing are added, and with that options that are shared between some tools. To be consistent these options should now be placed in the top-bar.

Note that in sculpt/paint modes we already violate the rule above, since we show 3D View only settings in the top-bar. That has some nasty implications: The top-bar shows the sculpt settings and I activate a tool in the UV Editor - where are the options for my UV Editor tool displayed? I'm not saying we shouldn't show sculpt/paint settings in the top-bar though.

Am also concerned this is using the topbar as a kind of second view3d header.

It means we have to show the same category of options at different levels.

3D view pivot options are now in the topbar, but UV editor has its own header, same with snapping and proportional editing.

I think that a snapping popover could handle settings for 3DView, UV editor, node editor and animation editors. It should not be a lot longer than overlays popover.
A magnet button could be kept in each editor's header to enabling/disabling snapping in each editor.

I think that using different snapping options in similar editors are not frequent workflows. I don't think animators want to have different auto-snap through all their editors but maybe I am wrong.

Basically, proportionnal editing is concerning more editor types but with less exceptions and options. And as well, like options could be general , enabling/disabling could be specific.

Pivot point is a little bit, a general option, too. Currently, it is the same for all 3D Views of a workspace. But it is also a setting often changed at same time than transform orientation.
And there is a huge benefit to have transform orientation specific to editor, not as a general setting.
The simple fact that a View orientation exists : this says it all.

I cannot agree with this design. Issue is not where to place those "kinda-global" settings but the fact that they are global. This makes absolutely no sense from workflow perspective. We need to have in mind that editors that use those options operate on entirely different contexts and require different workflows. Referring to @Julian Eisel (Severin) post, how can we possibly put all snapping options in one global list? What will happen when user select "Node Y" and work in 3D View or selects "Volume" option and work in UV Editor? Current behavior is subject of complains from community and this design will make it only worse.

I like to have my node trees tidy so I use grid snapping in Node Editor all the time. When I need to do something in 3DView (e.g. move object that use world position as texture coordinates) I have to disable snapping, test something in 3D View and then enable snapping again when I go back Node Editor. Multiply that by every test and you get significant workflow slowdown. I guarantee that animators don't want Proportional Editing enabled for mesh editing to destroy their keys when they work on corrective Shape Keys (simultaneous modeling and animation). Thankfully we don't have Proportional Editing in Node Editor, that would be interesting. ;)

We shouldn't look for better place for those option but split them basing on their context. Without a doubt this will improve users workflows.

Aside from issue above. Merging all pivot/ proportional / snap / transform related setting to four panel is great improvement.

Referring to @Julian Eisel (Severin) post, how can we possibly put all snapping options in one global list?

I think that we can set them in one popover as long as it is considered as options like edit mesh options or sculpt options.

Behaviour adopted in all editors of same type when snapping is activated and neglected when tool is deactivated.

Of course, options for nodes snapping or keyframes snapping or object snapping should not be merged in one list.
But display popover handles options for Single Color Display, Texture Display and Rendered one.

We could have 4 lists in one popover in global bar that will release on button space in all headers of screen. (I forgot a list for keyframes snapping in mock-up).

Of course, I forget to say that such design implies to communicate enabled options another way than from displayed icon in list. We could imagine a text in background area of editor to remind choosen snapping options.

It is not true to say that snapping is specific to an editor.
In 2.79, if your workspace contains 2 or 3 3DViews displaying different things, snapping activation will concern all these 3DViews with same options.
Snapping is activated in UVeditor as well.
If your worlspace is containing 2 node editor and one with a group of nodes opened and one with group of nodes closed, same thing happens. Both headers of both editors have same buttons using same options.

And don't forget that if it seems a slow workflow to go to a snapping popover menu to scan or activate 4 lists to enable snapping options : there is no reason to abandon current pie-menu to set a type of snapping/proportionnal editing and activate it at same time.

Proportionnal editing could be a simpler example.
Imagine a proportionnal editing button kept in each header and a proportionnal falloff in Global Topbar.
That would release one button space in each header as well.

It's not good to hide everything in popover, it slows down the workflow.
Snap options must be visible per area like Bartosz Moniewski said.
If you duplicate the view to work on another screen, it's tedious to comeback on the first screen to change a value for the second screen.

It's one case where the top bar isn't great for workflow.

-L0Lock- added a subscriber: -L0Lock-.EditedMay 15 2018, 5:09 PM

I personally have a big issue with the current top bar: it's currently filled with 3D editor related content and seem to be a 3D editor related thing, while it's displayed as a global Blender window bar.

This "little" detail causes a lot of issues :

1) It makes 3D editor's tools and options all over the place.
I.E. with the default layout :

More than half the topbar's content is on the far right, above the outliner & properties editors.
The tool options are completely out of the 3D view, not to say on the opposite side of the global window.

And this even gets worse when you change your UI, like the UV Editing layout :


Or Video Editing which as nothing to do with the 3D editor but still display a 3D editor top bar (at least useless for well aware Blender users, probably confusing for new Blender User) :

In fact, I think the current top bar can be correctly used in only one possible layout for now, this one :


But... IMO it doesn't justify that design.

2) The UI is inconsistent
While some 3D viewport options are inside the 3D viewport, some are in the top bar.
When in another editor, the top bar remains a 3D editor bar. Even if the 3D editor is on the opposite side of the main window. Even if the 3D editor is in another window. Even if there is no 3D viewport at all. Which makes it either a useless amount of screen space, either a poorly usable UI slowing down the workflow.

I think I've repeated enough things here.

The more I see how the top bar evolves, the more I think it's on the wrong way. Maybe it's simply too early to say that, it's still a WIP after all. But I also can't stop thinking that it could be better and that if the community reacts quickly before too much effort is consumed, it will avoid unnecessary developing time.

How about elsewhere ?

I think it is good to study how other top bar softwares managed their UI choice.

I'll talk about 3DS Max and Maya because I know them and they are two major 3D softwares widely used worldwide, fairly approved and evolved by the industry itself :

3DS Max 2018 :

Maya 2018 :

First things first: Both 3DS and Maya UI are based on windows popping, while Blender is based on split&join areas inside one window. Even though Blender can pop out a window and 3DS/Maya can squash a few windows inside a window, their core designs aren't the same.

Both of them have a big topbar compared to Blender's current. Mainly oriented around general purpose tools like snapping tools, selection modes and manipulators (used in 3D view, UVs, graphs, nodes, .... and in a consistent way) and windows/editors buttons.
Everything's in these top bars is consistent and used in different "editors" without any change.
In both Maya and 3DS, the top bar contains tools&options sets, stored in tabs (kind of pre-2.8's toolbar, but horizontally, without scroll, and with more visuals). Add-ons can have their own tab with their own tools and options. The user can customize their display.

3DS have a few tabs, each being divided into categories. These categories can also be minimized as icons or category titles, for screen space saving.
They use a popover system (yay), allowing to display few tools and options at first, but more tools in that category if needed, with a pin button to force the popover to keep being open if wanted :

Maya's top bar is more in a "divide and rule" trip.
It's basically one task = 1 Tab. Except for curves and polygonal primitives addition, which have their own tabs.
But basically, it makes so the topbar adapts to what you are doing. If you're doing polygonal modeling, use the poly modeling toolbar full of "add poly" and poly-related tools. If you do rendering → rendering tab. Etc.

The two systems have pros and cons. But I think for now that the current Blender's top bar is messy.
In Maya and 3ds max, these topbars are task oriented. If something belongs to a task, it goes there. If something belongs to the editor only, it goes into the editor.
It's not confusing on what "editor" is opened nor where it is placed: you choose what task you're in, tools are there and can be used in different editors.

TL;DR (because you are iterd of reading and I'm tired of writing 😛):
Make it more task oriented. \o/
It's actually kind of what's already obtainable, I.E. in texture paint mode. But globally, the top bar is limited to the 3D viewport's content and that's what makes it poor IMHO.

I think about something like, instead of having the interaction mode button, we could have a task button. UI side, it would display some tools and options about the task, and software side it may also switch the 3D viewport interaction mode (or even other editors if opened ? I.E. if I have 3D viewport & image editor, if I switch to "texture painting task" it would set the both 3Dviewport and Image editor to texture painting modes).
I think software side it doesn't change that much, but UI side it could be more clear. And most importantly we can imagine extending the topbar usage outside the 3D viewport. I.E. a "video editing" task. A "animation" task which will turn on pose mode and display in the top bar some posing tools, keyframes tools, etc.

Add-ons could be stored in a particular task, in a popover, or even create their own new task.

General purpose tools like pivot point, proportional editing, snappings, etc. Should stay in the top bar because they are used in a lot of different editors.
I would suggest treating the snapping options like have been treated the viewport's shading options: pushable buttons aligned side by side and that we can enable several at the same time (because it's useful and visually efficient) :

And when different editors with their own exclusive snapping options are currently open, their snapping options should simply be added to the top bar list as long as the corresponding editor is here. Because of consistency.

This is how I feel about it, maybe it's already what's aimed, or you have even better plans. Or all I say is horseshit, that could also happens. But at least you have someone else's view. Cheers.

If you remember correctly the rules of blender UI :

The Blender user interface is based on 3 main principles:

  • Non Overlapping: The UI permits you to view all relevant options and tools at a glance without pushing or dragging windows around.
  • Non Blocking: Tools and interface options do not block the user from any other parts of Blender. Blender doesn't pop up requesters that require the user to fill in data before things execute.
  • Non Modal: User input should remain as consistent and predictable as possible without changing commonly used methods (mouse, keyboard) on the fly.

But trying to hide everything in the top menu makes the workflow heavier. I don't know if you want to remove the N menu. But there are some shortcuts that are much easier to find in this menu than hiding them at the top.

It seems we're not moving these settings into the top-bar (based on informal discussion), ok to close this task?

Ok, i think you can close this task.