Blender 2.8 Tool System

I wanted to post an awesome commit I just saw, but realized we don’t have any thread dedicated to 2.8 tool system, so here I am creating one.

To start it off, Campbell just committed this:

Yes, no more G-X-X madness several times over if all you want to do is to transform an object in it’s local space (or any other user defined space) few times over in a rapid succession.

The commit was based on my request in this thread:

6 Likes

Thank you Campbell, my fingers thank you very much!!!

These kind of tweakings are more than welcome and give us a better usability.

Very helpful for animation! Thank you

I feel like this could’ve been handled better. I’m far more often using the global orientation transforms than any others (Z especially), and now we have to switch to the global orientation and back again whenever we want to use local or normal. Or alternatively are stuck double tapping keys all the time. It feels to me like i t’s going to slow things down, Global keeps a dedicated hotkey combo because it’s used often, but that combo is slower/harder to use, these things seem in conflict.

I can see it’s use, particularly with animating with armatures though, so I wonder if it would be difficult to instead implement primary and secondary orientations.

At the very least if we’re going to be needing to change these orientations more often now, perhaps the orientation pie menu should move somewhere closer than ‘,’ - which is where it moved since 2.79’s Alt+Space.

Just tried it out … this is a great change! The previous behaviour didn’t make much sense. More happy with 2.8 by the day!

1 Like

Thank you for the useful information :grinning:

Of course you do, so far you have a track record of being pretty much against any improvement made in terms of ergonomics.

But look at it this way. Let’s say you want to do multiple transforms in two different modes, global and local. Let’s say 3 local ones, then 3 global ones.

The old way:
3x G-X-X (9 key presses)
3x G-X (6 key presses)
15 key presses total

The new way:
3x G-X (6 key presses)
1x Transform orientation pie menu (1 key press + mouse gesture)
3x G-X (6 key presses)
12 key presses total

Even in the very worst case scenario it won’t be slower than it was before.

First off this ignores the relative frequency of those actions, which means it doesn’t even address the points I had.

Secondly I made a constructive post, and a suggestion, even recognising that this is something that’s useful, but it comes with some negatives and some conflicting logic. There’s no need to be snarky in your first sentence.

Taking that relative frequency of those actions you are talking about, I challenge you to come up with a single scenario where the new one will be slower.

The first one that presents itself is that while you are in global mode, you can no longer perform local transform by pressing G second time, you have to switch instead. But then again, you can also switch to local mode at the start, and always access the global mode on second X press. This way, you can always keep jumping between global mode and transform mode of your choice without actually switching transform orientation, because all the transform modes other than global will always go to global on the second axis button press. It’s just that the order will be inverted, but that’s not impossible to get used to.

And given the fact that the transform action are usually clustered together in bursts, I am confident that despite still having option to switch transform orientation on dual axis press, many people, perhaps including you, will start to prefer to use transform orientation pie anyway.

Easy, typical scenario, performing a bunch of global transforms in a row, then needing to do a single local one, then more globals again.

Global transforms are typically performed more often (Z especially), except when animating armatures. So now, you either have to double tap the restriction key all the time, so that you can leave local accessible, or you have to switch every time you want to perform a differently oriented transform.

It seems counter-intuitive to have something used often enough that it warrants a key, but then put something else that’s used less often on the key that’s easier to use, unless you limit yourself to doing only that one (first) thing.

A dual-orientation would solve the issue, allowing the user to set them up as they wish for whichever circumstance, editing objects globally, or armatures locally.

A less functional but likely easier to implement alternative could be a checkbox in the orientation menu that swaps between global being first or the selected orientation being first.

Hence why I suggested it be moved closer than ‘,’ - because it will be more useful and commonly used now. I didn’t even know the hotkey for it until today, but with this change I’ll want to make it part of my workflow so that I can keep global transforms on single presses.

I am not taking the position of the transform orientation pie menu key into account, since I expect whoever needs it closer will customize it. The keymap is not hardcoded, so as you said, you can move it closer if the need arises.

Now, first of all, local transforms are not typically performed only when animating armatures. In the second link on my original post, there is a video showcasing the typical scenario where you will want to move in local space more often. A very common case of positioning an object that’s not aligned with the world axes, requiring the alignment with its local axes to stay the way it is.

Second of all, let’s go over your practical example - performing a bunch of global transforms in a row, then needing to do a single local one, then more globals again. Let’s be specific here, and say 5 globals, one local, 5 more globals. Let’s also assume you are a pro user who cares about efficiency, so you have put your transform orientation pie menu on a hotkey close enough so that you don’t need to relocate your hand on the keyboard.
So, old one
5x G-X (10 presses)
1x G-X-X (3 presses)
5x G-X (10 presses)
23 total key presses

New one:
5x G-X (10 presses)
1x transform pie (1 press)
1x G-X (2 presses)
1x transform pie (1 press)
5x G-X (10 presses)
24 total key presses

Yes, you are right in this case it’s slower. But even in this scenario, purposefully designed in favor of the old method, you still end up with only negligible drawback. And the time wasted by this tiny drawback will be more than well enough compensated by time saved in other scenarios this new solution enables.

I always assume the default keymap or at the very least a preset. It’s pointless to presume otherwise because then “you can customise it” renders all conversation on the matter pointless.
There is also a break in concentration/flow when you have to change modes midway like that which is difficult to factor.

But why can’t we have both?

I actually asked about that under the commit, but according to Campbell, it would lead to inconsistency and confusion. So the consistency was condition for this change to be accepted. I myself would be okay if in Global mode, secondary axis press would trigger local. But I also understand the view that it feels like an arbitrary exception.

Yeah I did see that, bit of a shame, but I more meant that in lieu of that, something like one of these.

One day I’ll get to logging on to the dev sites…

it’d really need something faster than a pie menu button. we have so many shortcuts, though, that a button or indicator/widget/ clickable mark on the corner of the gizmo itself in the viewport would be better.

We already have ctrl, shift and alt shortcuts on the “o” key, right? if not, Alt-O (“alternate Orientation”) seems like a good one

Because then you’d have (obviously) an option on the settings to either always save the last used orientation, toggle between the last 2, cycle between the last 3 or always revert to global/local after the operation. Less menus,more shortcuts

supposing you chose “save last” option

(in the example, you want to make 2 local x grabs then a global)

starting with global orientation

shortcut to change the orientation (a click or 2 buttons)

GX
GX

shortcut again

GX

this is a nice change … however ‘Also, when global is the user-orientation, pressing GX and GXX
does the same thing.’ why can’t it use local space does that cause cyclic problem?

Aaaand it’s gone… It was reverted back to old behavior :frowning:

Oh, thank god. The new behavior is terrible and it doesn´t appear to be mappable by the user.

1 Like

It was, actually. All you needed to do was to switch “Select tool by name” operator in input editor for your G key to “Transform.translate” and then activate “Global” suboption. Then it worked like before.

Ah, very good.
It would be even better if the user could define what exactly double pressing x when in G mode does. But I think that behavior is hard coded.
Personally I´d love to be able to press tripple x or something like for even more orientation space options.