QWER Addon - or how I stopped using the transform active tools

add-ons
(dpdp) #1

QWER Controls

Industry standard move, rotate and scale interaction for Blender 2.80.

Why did I make this addon? Watch a video explanation featuring the default cube.

General Description

This is a simple addon and accompanying keymaps that make the transform tools and select active tools work in a way more similar to other DCCs while also making the traditional Blender fast transform tools more discoverable.

Using this addon, the move rotate and scale gizmos can be triggered via shortcut key, using the M/R/S buttons in the top bar, or using the QWER tab in the N panel.

note: the tool settings topbar is hidden by default in 3d views. Right click on the 3d view header and enable “Tool Settings”
QWER Panel

There is also a “Tweak Better” modifier that is meant change the tweak behavior in the Select Active Tool from always being “stuck in move mode” to respecting the active gizmo’s transform mode. To say it another way, if you enable the rotate gizmo and the select active tool, blender behaves like the rotate active tool is enabled.

Select Active Tool

What this all means is that the move rotate and scale Active Tools never need to be used. They are replaced with the QWER Panel tools which basically just activate the Gizmos currently found in the Viewport Gizmos dropdown in the 3d View. These work independently of the other Active Tools, meaning you can have Box Select, Circle Select, or Lasso select enabled and a drag in the viewport makes a selection instead of transforming (as in the transform active tools). If instead, you have the Select active tool enabled, a drag will perform the action of whatever Gizmo is currently active. If you have no gizmo active, the tool performs as usual with a move tweak action. Multiple gizmos active will transform based on the highest selected transform type (Move taking precedence over Rotate).

The buttons in the QWER Panel can be assigned shortcuts like any other button in blender. Just right click on the button and choose “Assign Shortcut” from the dropdown. Also the Select Active Tool can be modified to tweak using my Tweak Better transform tool by adding a new entry under the “3D View Tool: Select” category like as in the picture below:
TweakBetter

Background

The 2.80 active tools are great in some respects, but the paradigm breaks down with the transform active tools. These make selecting and transforming multiple objects a slow, tedious process requiring the user to switch back and forth between transform tools like move and the selection tools like box select. This issue has been addressed by Blender developers by adding gizmo visibility toggles, but these are hidded in a dropdown in the 3d view and require too many clicks to activate. This addon allows you to have various selection modes enabled while also having access to the transform tools. The main difference being that clicking and dragging from a blank area of the screen will select instead of translating. This is not only the most common way of handling select and transform operations by the majority of DCC software, but is also a faster and more intuitive way of working when compared to using the Active Tools alone.

The addon has 8 operators/modes.

  • Move (view3d.qwer_controls.(mode=“Move”)) activates only the move gizmo. Other transform gizmos are hidden.
  • Rotate (view3d.qwer_controls.(mode=“Rotate”)) activates only the rotate gizmo. Other transform gizmos are hidden.
  • Scale (view3d.qwer_controls.(mode=“Scale”)) activates only the scale gizmo. Other transform gizmos are hidden.
  • AddMove (view3d.qwer_controls.(mode=“AddMove”)) activates the move gizmo, and also keeps any other transform gizmos active. This allows you to have any or all transform gizmos active simultaneously.
  • AddRotate (view3d.qwer_controls.(mode=“AddRotate”)) activates the Rotate gizmo, and also keeps any other transform gizmos active.
  • AddScale (view3d.qwer_controls.(mode=“AddScale”)) activates the move gizmo, and also keeps any other transform gizmos active.
  • Cycle (view3d.qwer_cycle) cycles through the transform gizmos. Assign this to the spacebar for UE4 style gizmo cycling.
  • TweakBetter (object.tweak_better) a smart transform operator that checks to see what transform gizmos are active and Moves, Rotates or Scales accordingly.

There are also three keymaps included for your convenience.
note: the keymaps that ship with the addon are problematic. It is probably best if you create a keymap of your own.

  • WGRS_Blender_Keymap.py is based on the default Blender 2.80 keymap

  • QWER_Blender_Keymap.py is based on the default Blender 2.80 keymap only it uses the QWER keys to switch between select modes (active tools) and the different gizmo modes.

  • QWER_Industry_Keymap.py is based on the Industry Compatible Keymap that ships with Blender

Read more about what these keymaps change in the Read.me and download it here

7 Likes
No tool widgets when using hotkeys (G,R,S)?
#2

:thinking: uhm… what is where :upside_down_face: 404

1 Like
(dpdp) #3

The forum backend reformatted the text read dot me into a web address. :crazy_face:

1 Like
(John) #4

Wow this is exactly what I was looking to do when I started asking questions yesterday (Why does blender have two move tools?). Any chance you could do an install walkthrough? I got it successfully installed but I just wiped blender and started over because i’ve been tinkering with things…now I can’t seem to get it installed. Thanks so much for this!

(John) #5

Nm…got it working. It’s incredible how much more inviting blender is with your add on. Fantastic work!

(zaha) #6

Awesome, I was looking for something similar as the Industry Standard Keymap is too simplistic in my opinion but I still want something closer to the industry standard applications in terms of transforms/navigation.

A couple of questions:

  1. What happens to the Context Sensitive menu on W?
  2. Do you think it would be possible to include Maya-Style Navigation (Alt + LMB/MMB/RMB for Orbit/Pan/Zoom) in the keymaps?

I also found the Click-Drag behavior on pressing WER to be error prone. If you press WER while accidentally moving the mouse it will lock you into the click-drag behavior. The benefit of using Maya-style navigation would be you could put the Click-Drag behavior on MMB like the Industry Compatible keymap does now. It would work like this:

  • QWER activates the active transform tools (like the industry standard keymap does)
  • CTRL+ SHIFT + QWER toggles the tool/gizmos (btw, in your documentation it says CTRL + ALT + QWER :wink: )
  • Pressing MMB while the corresponding active transform tool is active put’s you into the direct transform mode of that tool, allowing you to constrain to the XYZ axis or contrain to the local axis by pressing XYZ a second time

Having Maya-Style Navigation, QWER for transforms and the default Blender Keymap would IMHO be the ideal solution to be closer to the other industry applications while retaining the power of Blenders shortcuts.

1 Like
(dpdp) #7

My thoughts exactly. They’ve kind of made the interface more confusing with these transform tools and then hid the transform gizmos - that more people are used to using - away in the Gizmo menu. I think they’re going to make the gizmos easier to assign shortcuts to before 2.80 final release, but I think it’s still too hidden away. I really feel that the transform buttons on the tool bar should just toggle the gizmos instead of locking you into the one tool. They would be unlike anything else on the toolbar, but I think they should break convention for these 3 buttons. It would make the program more intuitive, faster and easier to use.

This is the same as right click in left click select setups, which I’m assuming you’re using if you’re trying to make it behave more like Maya.

Yeah, I just finished a project that I had to have modelling, texturing, animation, and rendering done for a 1:00 spot in two days. So I was trying to work really fast and kept running into issues with the click drag behavior.

This sounds like a good idea. I’ll add this to the tweak better operator. I haven’t used Maya in a long time. Does it do confirm on release, or do you click again to confirm your transform? I kind of think that the second option is more blender like, because mmb drag during a transform lets you interactively constrain to xyz (a very cool speed up that I haven’t seen in other software). Also leaving the object in transform mode will free up your hand for, typing shortcuts x,y,z or typing in values. Then a left click or enter will confirm and right click or esc will cancel.

(John) #8

I agree completely. Straightforward transforms are key to flow in 3d…I understand the ‘blenderishness’ behind the built-in G ‘grab’ functionality…and the XYZ / Shift-X Shift-Y Shift-Z to constrain movement is cool…but I feel that it is still more over-engineered than a gizmo…especially when constraining to two planes of axis. With A gizmo I don’t need to think to myself ‘which axis DON’T I want to move on.’ I can freely move with the center of the gizmo, and then I can grab another part of the gizmo to constrain…all without having to do anything but click the left mouse button and without a pause in my head.

Also re. clicking to confirm things - I quite like this about most tools blender. It is similar to modeling in Modo where every tool needs to be ‘dropped’ before using the next one.

Thanks again for your addon…i’m really getting blender dialed in to my liking and being able to interact with objects quickly in a way that I am used to really helped me to embrace the rest of the software.

(dpdp) #9

This is a key statement. I don’t think the devs realize how important it is to have the navigation and transform tools work in a way that people are used to. If you can do the basics in a quick, intuitive way, the rest will follow. But selection, navigation and transforms are the vast majority of what you do in DCCs if you’re mostly doing modelling, scene/level layout, rendering, animation, or shading. it may be different if you do textures or sculpting.

Anyway, I updated the addon to let you choose whether you have confirm on release enabled or disabled. Make sure it is unchecked if you want the transform mode to stick after you’ve released the mmb.

I don’t have time right now to change the keymaps. I tried, but the way the keymaps work right now, Blender requires you to not only set a new key binding, but also set the opposite in other keymaps. For instance, I tried to set up a new keymap that was basically the Blender Keymap with maya navigation, transform set to QWER, and tweak set to mmb. I then had to change the keybinding for mmb for every other keymap! Even the default keymap, I had to manually override what mmb did. I’m not sure what the devs are trying to accomplish with this behavior, but it makes maintaining multiple keymaps a real pain. Not only that, but there is absolutely no way to return to the default keymap without deleting your user preference folder.

You should be able to pick the keymap that is closest to what you like and then search for the “middle” Key-Binding and change it from whatever is currently assigned and set it to “object.tweak_better” and make sure you set the “Confirm on Release” property to what you prefer. It sounds like you want this unchecked.
tweak

1 Like
BMax Tools or how I left 3ds Max :)
(Danny McGrath) #10

Great initiative. The way Blender is set up natively makes the gizmo workflow practically unusable. Have you considered a single key to cycle the translation tools? Like in UE4(I also have my Max set up like this) where you can just hit spacebar to cycle M/R/S.

This addon will really align 2.80 with a more standardised approach for those coming from other DCCs. Although I really like Blender’s approach to hotkey translation and it was refreshing for me coming from Max, but sometimes I just want to use the gismo. :slight_smile:

EDIT: just tried it. Works great. The only weird thing is that the Rotation gizmo supercedes the 2-axis move/scale because it obscures the widgets. Also, I’m still a bit confused as to where the 3 different keymaps are set?(sorry, new to Blender) Say for instance I want to use G/R/S to toggle your buttons? I’ve tried setting G directly to the Move button in your tool shelf, but it has no effect and just moves as G normally does.

Thanks again for this. It really is a must have.

2 Likes
(dpdp) #11

Any built in shortcut will override any that you set, so you’ll have to disable the built in shortcut for it to work.

You may want to think twice about changing the G shortcut, though. Double tapping G lets you slide vertices along edges, and setting the G shortcut to anything other than move will make this not work. I have my gizmos set to the WER keys and left the g key untouched.

1 Like
(Danny McGrath) #12

Oh right, no keyboard override. WER should work fine. Have you thought about the single key cycle like UE4 that I mentioned above? Works really well with spacebar, for instance.

(dpdp) #13

Yeah the space tool cycling would be cool. I’ll see if I can get that added soon.

(Danny McGrath) #14

That would be perfect! I have a script for Max that does this cycling and it’s such a workflow boost. Great work you’ve done with this, it completely changes the 2.80 experience.

(dpdp) #15

I got cycling working and made a few other tweaks to the operators. For instance, I’ve added M/R/S buttons to the top bar and a cycle button to the QWER Addon panel. You can use this to assign the shortcut to the spacebar like you were wanting. Make sure and disable the spacebar shortcut that is assigned now (search, toolbar or play) because it will override anything that you assign to the spacebar.

The keymaps that come with the QWER addon are broken still, so don’t use those.

1 Like
(Danny McGrath) #16

Mate, you are a f^^king legend! That’s brilliant. Looking forward to testing it.:+1:

(RealityFox) #17

This looks dope, been using blender for a while but there are still some times where I just want a gizmo lol

#18

Does this play nice with Machin3Tools?

(Danny McGrath) #19

Works fine with Machin3Tools.

#20

You spoke my mind.

I’m no Maya/Max anim pro, just a Zbrusher with iClone DazStudio middleware experience. I have somehow “conquered” 2.79’s select/transform/snap issues and rigged a full body character in Blender, then took a break and came back to 2.8 a month ago, looking forward to the new gizmos. I fully expected to remap keys and adjust to new interfacing issues but OMG the very sexy new manipulation tools! Click-savers! Customizable workplace!

Just to… ?

Find myself clicking 3 level deep every time I need to change Global to Normal. 4 to 6 clicks and eyes darting all over he place just to move a bone! FREQUENT operations that take one click in typical anim/posing apps takes 3 clicks in Blender!

Tried industry compatible keymap, then went back to remapping Blender 2.8 keymap to get things to work as multi-app users like me expected. Bearable now. Rigged a new character. Still…

Even for agile middleware app-jumpers like myself, REentry experience to Blender is still mired with baggage of the past. I feel sorry for newcomers with zero DCC experience.

IMO the new Blender holy grail “consistency” should also mean - at the most basic level - cross common DCC apps interactive consistency…

Still, Blender devs are responsive and super dedicated. Gotta be patient I guess!