Active Tools Workflow Feedback

I gathered some notes after testing an “Active Tools” only workflow with a custom keymap directly mapped to the Tools instead of the current modal operator shortcuts.
I did this with both LMB & RMB select.
Also this thread is specifically about accessing Tools & Modal Operators via the keymap and not via the Toolbar or the header menus. This is about comparing them when using them efficiently.
I won’t talk about the Industry Compatible Keymap since there the Tools are far better integrated already.
Also my feedback is way more on a user level than on the development side, so I’m not sure how easy some suggested fixes might be.

Active Tools vs Modal Operator

I believe that the Tools could in a way replace the current modal operator centric keymap or at least be presented as an option in the keymap preferences.
But if the Active Tools are meant to surpass the modal operators in clearly, efficiency & functionality then there are still some problems I noticed with the Tools system.

Tool Shortcomings:


Generally Active Tools have the issue that they only allow to chagne settings via shortcuts while the operation has been started by click & draging on a gizmo or 3D space.
Being able to adjust settings with shortcuts and mouse wheel inputs can be faster than clicking through settings in the Tool Settings.
This is not a big issue for most Tools since the modal operators are the same as executing a Tool, so the shortcuts are still accessible that way.
But a good example where the issue is most noticeable is with the Circle Select Radius
& Number of Segments for Loop Cuts.

Suggestion:
There need to be an object-mode-universal shortcut for changing a Tool/Brush radius or number of cuts The best way to solve it that I can see is to re-shuffle specific parts of the keymap so that F or alternatively another key like or C is always changing the radius or number of cuts.
Or it could behave similarly to Brushes in other modes, where the keymap changes slightly based on the Tool that is used.
Alternatively and less ideally we could provide Tool Settings in the RMB context menu like in the painting/sculpting modes.


2
Tools are sometimes way more specific and less contextual than the modal operators
Examples:

G for grab, Gx2 to slide either vertices or edges VS 3 different Tools with potentially different shortcuts for each (Move, Edge Slide, Vertex Slide).
This is not an issue when using the Move Tool and presing G while moving but this workflow is not communicated that well in the UI since the Edge/Vertex Slide Tools are separate in the Toolbar

Another example are the 4 Annotation Tools & 4 Extrusion Tools

Suggestion:
If the proper way of using Blender is with a keyboard then the Tool behaviour could be more flexible by using more shortcuts or at least modifier keys.
The Annotation Tools could be merged into one and the Ctrl & Alt keys can be used for straight or polygon lines. The alternative is changing the behaviour in the Tool Settings.
Same workflow for Extrusion Tools.



Some Tools are still lacking some functionality over the Modal Operators.
An example I found was that when extruding the selection there is no way of specifying if only individual edges or vertices should be extruded.
This is an option for the modal operators in the Alt + E menu.

Suggestion:
This functionality could be added to the “Extrude Individual” Tool by making it contextual on the current selection type if it extrudes individual faces, edges or vertices.


3
It is slow to switch between selection & action for LMB. This has to be done either in the Tool Settings or the Alt + W pie menu.

Alternative: Reliance on gizmos, which might be out of view or aligned badly.

Suggestion:
Implementing the planned Alt+LMB drag behaviour to use the Tool instead of selection would fix this.


4
Drag Thresholds are preventing fine tweaking. In the Left Click Select keymap a drag threshold is added for both clicking on Gizmos or clicking outside of Gizmos.

In the IC Keymaps this also the case but only really needs to happen when clicking directly on Gizmos since MMB is used outside of Gizmos.

In RMB select this happens too but only because LMB is always to set the 3D cursor

Suggestion:
This seems to be an unsolvable downside to the Tools for the current LMB select keymap even if the pixel values get adjusted slightly.
One suggestion that can make the drag threshold less furstrating is to prevent the “jumping” that it causes. If you use the Tweak Tool and drag a vertex, it will not move until you reach the drag threshold and then it will jump to your current mouse position.
A way better alternative behaviour is to start moving the vertex after the drag threshold is reached completely independent of the mouse position (Like when dragging a Gizmo)
It’s not a solution but it is an improvement.

Fortunately this issue can be solved in the Right Click Select and the IC keymap.
I’ll explain more about how below but for the IC keymap the drag threshold on Gizmos is unnecessary since there is no conflict that it solves.



Adjustments to an Operation “During” or “After” does not update the Tool Settings
Tool Settings for an action can be freely changed in the Top- or Sidebar and they will be remembered for the next action.
But when changing these settings with the “Adjust Last Operation” options after an action via F9 or with the popup on the side, the Tool Settings are not being updated.
The same is the case for changing the operation with shortcuts and mouse wheel inputs while executing it.

Suggestion:
No matter where the Settings of an operation are changed the Tool Settings could be updated to reflect that.
But some users might object with that change.
So alternatively if Adjusting the operation afterwards should be held separate from that, the setting changes during the operation could be at least kept in sync with the Tool Settings.



Another big issue for some Tools right now is that the Gizmo overlay is not running or is not representative of the current settings.
Examples for this are the Knife Tool that won’t show the cutting points & snapping before the you execute the Tool by clicking or the Loop Cut Tool that will not show the correct amount of cuts based on the settings.

Suggestion:
The developers know of course more about the technical problems of making this work but there needs to be at least a correct preview of the Tool Gizmo running while the Tool is active.



Some Tools like the Spin Tool benefit extremely from “Adjust Last Operation Gizmos” that let you change the most recent operation further.
This can be a great alternative to using shortcuts or the Adjust Last Operation popup to tweak what you are doing.

Suggestion:
These Gizmos should be implemented for way more Tools like Bevel, Loop Cut, Inset, etc.


6
When using Active Tools, only one hand is available for keyboard typing.
Since Active Tools are always executed with a Drag Action, typing in numbers and shortcuts can be slower since one hand must be used to hold the Drag.
Modal operators on the other hand are normally executed with a shortcut which leaves both hands free during the operation.

Suggestion:
Campbell made an experimental patch (Blender Archive - developer.blender.org) and one idea that spawned from it is to press pace while executing a tool. Afterwards LMB no longer needs to be held and both hands are free to type in any input.

Active Tools Advantages & Disadvantages:

Of course there are many advantages to the Tools where they already surpass the classic modal operators. These are the most important in my opinion.

  • Easier to find and understand & no reliance on hidden shortcuts or finding modal operators in the header menus (Toolbar & Tool Settings)
  • No reliance on shortcut-settings via long info text at the status bar
  • Gizmos with better visualisation before performing the action (Spin, Shear)
  • Even without using Gizmos, they are a helpful visualisation of the currently used orientation
  • Tools stays active after each action = No repeated pressing of the same shortcut or holding of a key (Annotate, Extrude)
  • Able to still navigate while Tool is active (Paint Select, Loop Cut)
  • Click & Dragging anywhere can also perform the Tool action or any selection method

And to counter this, together with some points mentioned above, the inherent disadvantages of using Active Tools over Modal Operators:

  • Drag Thresholds seem unavoidable in LMB Select and partly for the IC Keymap
  • A keyboard workflow of typing in axes, options and values is slowed down
  • Specific Tools are too noisy to keep active or are blocking the view with Gizmos (Loop Cut, Shear)

Of course you can be the judge if these are really unavoidable issues or if they can be addressed somehow.

Tools in RMB Select

Right now the Active Tool implementation of RMB select seems a bit left behind.
There are features specifically designed for LMB select like drag threshold for tool actions, selection tools and selection fallback actions for tools.
But these don’t make sense when having RMB for selection.
Here are my suggestions:

Selection Tools:

Selection Tools should be implemented differently and used with RMB

Right now RMB drag is always Tweak.
Many artists I know find and kill the tweak action in their keymap.
Being able to switch the behaviour to box/lasso select would be a big improvement over swithing the LMB behaviour to box or lasso selection.

There’s a big reliance on the old lasso, circle & box select operators right now.
These have inconsistent and lacking shortcuts and big limitations like no navigation while using them & no lasso select through gizmos (because it’s Ctrl + LMB).

Selecting with both LMB & RMB is very inefficient and strange if users chose to use the Tools anyway.

Suggestion:
Possibly implementing and changing the RMB drag selection method via the drag fallback tool-setting like in LMB select would be ideal.
With Alt + W RMB select users can then quickly change the selection method.
One drawback from this is that a selection by clicking (not dragging) can only be executed on release instead of when pressing. This is to avoid conflict with the drag actions but IMO it’s only a very minor issue and is easy to get used to.
This change already got introduced to LMB select a while ago and it caused no real issues.

Cursor Tool & Drag Threshold:

LMB click is always setting the 3D cursor position. IMO this is going against what the Tools aimed to achieve, which is changing the behaviour of what action LMB is performing.

The Cursor Tool becomes arbitrary this way since the cursor can always be set via LMB click.
LMB drag actions will always have a drag threshold, which is a big inconvenience.

This also makes it impossible to set the Cursor in Sculpt Mode to define the gizmo pivot but to be honest, this feature needs a better implementation anyway.

Suggestion:
Assigning a modifier key to this action like in LMB select keymap could fix the issue.
Alt LMB click & drag on empty space is generally not used for any Tools.
Ideally Shift would be a better fit but some Tools like the Polybuild Tool are already using Shift + LMB and Shift Clicking on some handles of a Gizmo are used.
Additionally it would be ideal to add a “transform.translate” keymap item to move the 3D cursor around with Alt + LMB Tweak (Click & Drag).
This makes the 3D Cursor placement a lot easier without having to change the Active Tool to the Cursor Tool.
To be able to set the 3D cursor through gizmos, like the very big rotate gizmo, the Gizmo Tweak keymap items should not be set to “Any”. This way gizmos are generally only used without holding down modifier keys.

Setting the Cursor through Gizmos:

In the LMB Select keymap there is no issue of setting the 3D Cursor location through a Gizmo since the shortcut Shift + RMB doesn’t conflict with activating the Tool.
But on RMB Select since the 3D Cursor is tied to LMB there is not way of setting it through a Gizmo, which can be an issue for example with the Rotate Tool Gizmo which is taking up a big sphere that is then blocking the 3D cursor from being changed.

Suggestion:
Excluding the input Alt LMB from activating the Gizmo would be a good way of fixing this. The shortcut combination is not used to access the Gizmo in any special way anyway and users would just LMB click on it like before.


That’s all. let me know what you think.
I’ll keep adding notes and thoughts to the list as I am testing the Tools and keymaps.

An interesting side note from my tests is that I was a firm believer that the LMB Select keymap is the most ideal for pen users since selecting with RMB is awkward & imprecise when using a pen.
But after comparing and adjusting the keymaps I think RMB Select is the most superior keymap for mouse & pen since Tools & Selections can be well supported and Drag Thresholds can be removed.
Let’s see how my opinion might still change over time.

5 Likes

They are not. The goal was discoverability and one-handed workflows.
If somebody gave you direction to see how active tools could replace modal tools, I would say he is playing with fire.
They are so many tools used in so many different contexts : that is not possible to consult only one artist to come to conclusion that eliminating one modal tool for an active tool will have no consequence for somebody else workflow.
You cannot foresee to eliminate a modal tool without consulting community before.

F is a shortcut people are used too for make any face (edge,tri,quad,n-gon, F2, etc…) That is a too sensitive classic.
I think that C is more acceptable because it only calls Circle select.
Alt C shortcut for convert was removed from 2.8 keymap.

I agree, there are space in Tool Settings to merge different extrusion tools into a unique one with different modes.
Grease Pencil brush is working with modifier keys, it will be a good idea to stay close to them for Annotation tool.

I don’t think it is the case for old right-clickers at all.
Blender’s paradigm of active object being the last one, goes with the paradigm of Right click to select and Left click for action.
So, you select to see properties of object and when you are fine with them, you continue to tweak it in 3D space.
It is because it is convenient that request for a solution for LMB was massive.
If tools were created for LMB it was because of a conflict.
But if conflict does not exist in RMB keymap, it is not needed to complicate it just to mirror LMB one.

No navigation when using select tools is not specific to RMB keymap at all.
If you start your lasso movement, a little away from gizmo handle, there is no problem.
I don’t really understand the corner case, you are talking about, here.
There can be conflict with PolyBuild modifier keys that were not thought to handle associated tools.
It is an exception of a tool using pre-selection. And IMO, its problem is to not handle selections more complex than one edge.

I don’t disagree that may be strange. But I disagree about “that is inefficient.”
You are making a mouse movement in both case. And for a selection, you are doing a mouse movement.
What is inefficient is to block a mouse click to call a contextual menu, an action that does not imply movement of mouse.
That just transfer something that could be handled by any keyboard keymap to a moveable input.
That is a waste in term of ergonomy.
Any mouse click should be related to an action implying a movement of mouse.

3D Cursor active tool should be thought to allow easy snapping, easy tweaking of its orientation.

3 Likes

Thanks for the reply!
I agree with most what you are saying but I have to disagree/elaborate on some parts.

If somebody gave you direction to see how active tools could replace modal tools, I would say he is playing with fire.

Maybe “replacing” is not the right word. Right now the 2 systems are very separate but the modal operators are inherently part of the Tools already. If you execute a Tool via a click-drag on the Gizmo or empty space, you are executing the modal operator, so it’s impossible to just replace them.
There could be an effort to bring them closer and make an efficient Tools Keymap.
Right now if you would decide to only use the Tools you would be sacrificing efficiency, which is what I’m suggesting to fix. To essentially get the Tools up to speed with the modal operator keymap we have now.

But if conflict does not exist in RMB keymap, it is not needed to complicate it just to mirror LMB one.

I don’t agree with that. Yes the RMB keymap is still very functional IF you ignore many of the new features which are very poorly implemented.
The LMB keymap was changed to embrace the new Tools. And new Tools & Tool Settings were added to make it all work. The RMB keymap has none of that, which makes the Tools system alien & inefficient to use, which results in nobody considering to use it. The only keymap where they are actually very well supported is the “Industry Compatible” one but it’s a lot to ask to switch to that since it’s so extremely different.

I don’t disagree that may be strange. But I disagree about “that is inefficient.”

The inefficient part is not to use the selection Tools in RMB select but to switch between the Tools to be able to use them.
The biggest strength when using Tools in the RMB keymap is that you never have to switch between them to be able to select things. You could keep any Tool active and execute them with LMB but they don’t make selection with RMB inaccessible.

Selection Tools were implemented since they addressed a problem between the Tools system and the LMB keymap since LMB is for both actions and selection.
But these selection Tools are not fixing or adding anything for the RMB keymap.
If they would be implemented as RMB drag actions they could at least finally fit into the RMB keymap while adding more options & depth to the selection workflow.

What is inefficient is to block a mouse click to call a contextual menu, an action that does not imply movement of mouse.
That just transfer something that could be handled by any keyboard keymap to a moveable input.
That is a waste in term of ergonomy.
Any mouse click should be related to an action implying a movement of mouse.

I do not understand what you mean here, sorry.

3D Cursor active tool should be thought to allow easy snapping, easy tweaking of its orientation.

I totally agree with that but the 3D cursor shouldn’t take away functionality from all the rest of the Tools by blocking the LMB action.
It seems very backwards to implement the drag threshold onto every Tool just because LMB is reserved for the 3D cursor.
Changing the 3D Cursor shortcut to Shift + LMB for any Tool other than the Cursor Tools seems like a good solution that the LMB keymap already embraced.

You’re using a custom keymap we don’t know the details of to work on models we haven’t seen, in order to test a set features you haven’t clearly defined. I can figure out the general scope of what you’re testing by working backwards from the solutions you’ve proposed, but that doesn’t make it easy to give you feedback.

I agree that there should be a set shortcuts to adjust the properties of the active tool, but I don’t think we should put common shortcuts on the chopping block so quickly when there are other options to explore. I’m a fan of opening menus (context menus, quick favorites, etc) on click instead of press, so I can map drag events to those keys for quick adjustments.

I also agree that there are too many redundant tools, but I don’t think your suggestion of using modifier keys will work for all of them. In most cases a pie menu would be a better choice, and Ctrl-W (paralleling the fallback tool pie on Alt-W) is currently open.

You’re right; drag events are handled improperly. But I think we need to fix how the events themselves are processed by the event system before we make any large changes to the keymap. I know I’m biased on this front, but it really won’t take much work to implement something like P1221.

For the advantages of the tool system:

  • Tools are easier to find because the equivalent UI region for operators was removed. This is a bad point of comparison.
  • Tools don’t change what’s drawn in the status bar during modals. This is a similarly bad point of comparison.
  • The spin and shear gizmos are handy; no argument there.
  • Pressing a key and clicking clicking a mouse button are similar actions with similar interaction costs. The associated costs of keymap complexity and status signaling extend well beyond the scope of this conversation.
  • You can navigate while using the knife operator; it wouldn’t take much to add similar capabilities to the other two.
1 Like

Nice points. There’s definitely more complexity to the issues than I mentioned.

To clear up what I mean with my custom keymap:
I switched out all shortcuts that are used for modal operators with their Tool equivalent to compare the workflows. No other adjustments were made.

I’m a fan of opening menus (context menus, quick favorites, etc) on click instead of press, so I can map drag events to those keys for quick adjustments.

That’s a fair way of handling it but it will always be less efficient to access for regularly changed settings like for example the circle select radius. A shortcut would be ideal.
Also I don’t like to use the quick favourites menu as a solution. Quick favourites are at best a workaround for issues and can be more commonly used to have various operators at hand.

I also agree that adding modifier keys to Tool won’t fix all issues and pie menus like the Alt + W one for selection fallback actions is a nice alternative.

Improving the way drag actions work could be ideal but I have not info on that. Can you elaborate on what you mean with “P1221”?

Tools are easier to find because the equivalent UI region for operators was removed. This is a bad point of comparison.

I agree but the old Toolbar design for modal operators is gone and for good reasons since modal operators are impossible to use from a menu.
I am comparing it purely on the state of Blender 2.8.

Tools don’t change what’s drawn in the status bar during modals. This is a similarly bad point of comparison.

No but you don’t need to rely on them because those options are also available in the Tool Settings.

1 Like

Forget what I said about that. I misread it.
Yes. a working Alt W pie-menu for RMB keymap would be welcomed.

1 Like

Aw, there was a thread about that…

1 Like