Dev:Ref/Proposals/UI/Modular Keymaps

提供: wiki
< Dev:Ref‎ | Proposals‎ | UI
移動先: 案内検索

Disclaimer 1: I am a mere Blender user, no coding skills whatsoever, I find Blender's UI to be quite good and coherent throughout the various areas, especially comparing to other software. It already does an excellent job in keeping consistency, namely in conserving keymaps and functionality across editors, I also think however that this consistency and coherence could be augmented and improved and use some clearer emphasis.

Disclaimer 2: My use of Blender is quite limited, I mostly use the 3D view for modeling and quite a bit less the node editor for materials and UV image editor, so this view is inherently partial and these proposals will inevitably generate conflicts that would have to eventually be solved in other areas, but again what is important is the concept behind the proposal.

Disclaimer 3: The idea of this proposal is not to set in stone which keys preform which actions but rather to set a concept and principles behind the design idea of "general modifier keys" so that on top of it, an agreed upon skeleton could be worked on and improved. That being said these will be based on what I think are common keybindings for most other applications or at least that most users would be accustomed to, trying at the same time to respect what blender is already using so as to not be too disruptive to current users. These concepts could obviously still be applicable if one wishes to keep the current right click select, or other current key bindings for most tools, only consolidating they're modifier behavior.

Keymap

Proposal for a better default keymap for Blender by Duarte Farrajota Ramos

Principles

  • Use "general" modifier keys (SHIFT + ALT + CTRL) that affect selection modes globally and consistently.
  • Always leave all the mouse wheel actions (middle click, scroll up/down, and the combined SHIFT+ALT modifier counterparts) free for navigation and view control, never steal this from user.
  • Leave more "direct" key maps for commonly used functions

So the idea is to have a common ground for selection modes in all editors, in such way that

  • SHIFT > would always ADD to current selection
  • ALT > would ONLY REMOVE from current selection
  • SHIFT + ALT > Toggles selection
  • CTRL > MODIFIER Key For Other Selection Modes/Tool options
    • Middle Mouse Button > Always free for navigation
    • Scroll > Always zooms
    • Middle-click > always pans in all editors. (Currently it pans in most "2D" editors like UV, Nodes etc. but orbits in 3D view)
    • SHIFT or ALT + MMB > always orbits
    • CTRL+MMB > always Zooms (unchanged)
    • Scroll up or down > always does the stepped zooms (unchanged)
    • CTRL + Scroll > Setting tool options like Number of loopcuts, size of circle select etc. (I guess it is rarely used to do the current horizontal scroll right, so why not leave it for these tools?)

Blender already does this with the SHIFT and ALT keys in a way: The SHIFT "augments" or "adds" and the ALT "removes" or "negates" or "undoes"

For example H hides and ALT+H unhides and P parents and ALT+P unparents etc., So the idea would be to extend and emphasize this concept.

In object mode

  • Selection
    • Click Object > Select (clears selection)
    • SHIFT + Click Object > Add to current selection
    • ALT + Click Object > Remove from current selection
    • SHIFT+ALT > Toggle
  • Border Select
    • Click Drag > Select (clears selection)
    • SHIFT + Click Drag > Add to current selection
    • ALT + Click Drag > Remove from current selection
    • SHIFT+ALT + Click Drag > Toggle (currently unsupported, see improvements below)
  • Circle Select
    • Click Drag > Select (clears selection)
    • SHIFT + Click Drag > Add to current selection
    • ALT + Click Drag > Remove from current selection
    • SHIFT+ALT Click Drag > Toggle (currently unsupported, see improvements below)
    • Leave the mousewheel free to navigate/zoom scene (use CTRL+Scroll for size instead)
  • Lasso Select
    • Darg > Select (clears selection)
    • SHIFT + Drag > Add to current selection
    • ALT + Drag > Remove from current selection
    • Shift ALT + Drag > Toggle selection (currently unsupported, see improvements below)
  • Set the cursor with CTRL or SHIFT or ALT right mouse > Most of the time placing the 3D cursor is probably done with much more useful and precise the snap (SHIFT+S) menu so perhaps release the right click for other important tasks (like a context menu? other select modes? see bellow)

In edit modes

(Edit/Bone/Pose/Paint) All the same as above on Object mode plus:

  • Perhaps use right click as an exception to select other objects in edit mode (seems like a reasonable exception since selecting other objects in edit mode is itself an exception to blender's philosophy of editing one object at a time??)
    • Like bones in paint mode
    • Other objects to hook to (etc.)
  • Mesh edit Mode selection (here I run out of combos, for shift and alt, but the toggle kind of saves the concept)
    • CTRL + Click > Loop Select toggle
    • CTRL + ALT + Click > Loop Select only remove from current selection
    • CTRL + SHIFT + Click > Ring Select toggle
    • CTRL + SHIFT + ALT + Click > Ring Select only remove from current selection

Other principles

  • Wherever possible extend these concepts to other editors, like the UVEditor, Node Editor, File Browser, etc. Like CTRL selecting connected nodes or similar useful behavior
  • Avoid using double click for "destructive" operations like selection operators (loop, ring etc) of entering edit mode.
    • Sometimes computer/software becomes unresponsive and furiously clicking users may find undesired behavior
    • Also faster users may inadvertently double click if they are doing something else very fast.

Improvements

  • If possible make clicking aware of context to allow for more fine grained control:
    • Click&drag on an object > Grab and move
    • Click&drag on an empty area > Border Select
    • Click on an object > select it
    • Click on Empty area > Clear selection
  • Add a toggle to the Border and Circle and lasso select modal
  • With the release of the middle mouse button for navigation > allow view adjustments (move rotate view) during certain modals (circle select, lasso, border, Knife cut, etc.)
  • Add a "Cancel" operator to the Rotate View and Move View modal key maps (could be assigned to right click like cancel on other modals) so the user may make a temporary view adjustment to clear any viewpoint ambiguities and easily revert to the previous view point unchanged.
  • A "View Previous" or "Undo View Change" or "View History" queue would be useful to revert to a previous viewpoint in a scene.
  • Spacebar Search menu
    • When opened instead of memorizing the last used operator, memorize the last used search term so that last search results are still kept in list.
    • Pressing ENTER still always executes last used operator or the first item in the list.

Sample

I created a sample keymap you can download bellow to help studying the viability, improvements, and any possible conflicts that may arise.

Again this was done using my personal preference, however the concept could be applied to other mappings, keeping right click select or using modifier keys in different manner.

Besides all of the above mentioned this keymap adds double click to view selected, and double MMB click to view all, experimental 1,2,3,4 for mesh select modes and alt+1,2,3 for exclusive mesh select modes

DPFRKeymap.py


Duarte Ramos 23 Nov 2013