Sculpt/Painting Modes: Revamp Keymap #105298

Closed
opened 2023-02-28 15:23:23 +01:00 by Julien Kaspar · 18 comments
Member

Motivation

For the 4.0 release we should resolve some long standing issues with the default keymaps.

This design only affects the painting, sculpting and draw modes for mesh, curve and grease pencil objects.

Goals

  • #108712 Remove all brush shortcuts & unused shortcuts (Leave this level of customization to users)
  • #110960 More consistency between LCS and RCS keymap preferences
  • Better support for 3 Mouse Button Emulation (fb54d3f865) (69e290d2fe)
  • #109750 Overhaul industry compatible keymap for module ownership and maintenance
  • #110019 No unnecessary shortcut inheritance in the 3D View (For example all transform operators in sculpt mode)
  • #108714 Consistent use of number keys for selection/mask modes
  • #110013 Consistent and intuitive selection/masking workflows via shortcuts and pie menus
  • #108791 Broader keymap overhaul to remove inconsistenies and improve maintenance (Support D13857, Color/Weight picking, etc)
  • Shortcut tables in the user manual for helping users understand and find current keymap layouts
  • #110425 Splash screen warning to inform users of changes to their preferences

Each of these goals are isolated changes that can be reviewed and merged separately.

Consistent LCS & RCS support

This table of shortcuts needs to be kept consistent to make future maintenance of the keymaps easier.
This will be the extend of the LCS and RCS differences in draw, sculpt & paint modes.

Action LCS RCS
Context Menu Right Click W
Set Selection Alt LC RC
Extend/Toggle Selection Alt Shift LC Shift RC
Lasso Select Ctrl RC None
Lasso Deselect Ctrl Shift RC Ctrl Shift LC

Emulate 3 Mouse Button support

Alt LC is already used for "Emulate 3 Mouse Button" navigation.
This should no longer block the default keymap from using this shortcut.
Instead any conflicting shortcuts needs to be accessible in another way (even if this is less convenient).

For example, component selection will only be accessible when switching from a brush to a selection tool in the toolbar.
Once any selection tool is active these shortcuts become available:

  • LC on Press to set a selection
  • Shift LC on Press to extend/toggle the selection
  • ALt LC / Shift Alt LC for face loop selection

To ensure that bone selection still works in weight paint mode while a brush is active, Ctrl Shift LC is also assigned to set a selection.

Industry Compatible Keymap

Core changes are kept very minimal to this keymap.
The main effort was in

  • Synching shortcuts across modes to be more consistent and easier to maintain
  • Adding missing shortcuts that are essential for common workflows
  • Making the keymap more user friendly towards painting workflows (instead of focusing primarily on modeling)

Notable proposed changes are:

  • 1-3 number keys are assigned to the selection/mask modes of the current mode, not edit mode specifically. The exception is object mode, which will always switch to the edit mode selection modes.
  • 4 is utilizing the full mode switching pie menu to make any mode easier to access

Selection Pie Menus

For painting and sculpting modes, multiple selection shortcuts with A + modifier keys will be replaced with a single pie menu.
This is based on the Mask Pie Menu in mesh sculpt mode. THis will help to

  • free up all other selection shortcuts
  • use Alt A for the auto-masking pie menu
Regular Selection Pie Menu Weight Paint Selection Pie Menu

If options are unavailable, they will be grayed out.

3D View Inheritance

Keymap entries for Transform operators (Move, Rotate, Scale, Bend, Sphere, etc) need to be prevented from appearing automatically in the sculpting and painting modes once some shortcuts are freed.
Even though they can somewhat function, they aren't optimized for these modes.

Proposal

Full table of all the keymap entries and changes:
https://docs.google.com/spreadsheets/d/1dadL6PLj8hjToKBzXgY3eJRg6SWPJFfWuFLl8wtOf-k/edit?usp=sharing

An easier to read overview will be available in the relevant PR's.

Deeper changes

Grease Pencil

Grease Pencil also needs a deselect property for gpencil.select_linked to be mapped to Shift L.

For gpencil.select there are two unique "extend" properties but only use_shift_extend is used. This should be unified.

Grease Pencil Draw and Vertex Mode are also missing operator to sample local colors.

Grease Pencil Weight Paint Mode does not support inverted or smooth brush stroke operations.
This needs to be added to replace the current shortcut D to flip brush direction.

Weight Paint Mode

The set_weight operator needs support when no selection mode is active.

The gradient operators are always waiting for mouse inputs, even when started via keyboard shortcuts. This would need changes to work like the Expand operators in sculpt mode.

IC Keymap

The operator object.mode_set_with_submode should still be mapped to object mode to immediately switch to edit mode in the appropriate selection mode.
The issue is that this only works with mesh objects and not with grease pencil or curve objects. This limitation needs to be addressed.

Sculpt Mode

The shortcut to increase the Multires level also needs an option to subdivide. This needs some research.

# Motivation For the 4.0 release we should resolve some long standing issues with the default keymaps. This design only affects the painting, sculpting and draw modes for mesh, curve and grease pencil objects. # Goals - [x] #108712 Remove all brush shortcuts & unused shortcuts (Leave this level of customization to users) - [x] #110960 More consistency between LCS and RCS keymap preferences - [x] Better support for 3 Mouse Button Emulation (fb54d3f865) (69e290d2fe) - [x] #109750 Overhaul industry compatible keymap for module ownership and maintenance - [x] #110019 No unnecessary shortcut inheritance in the 3D View (For example all transform operators in sculpt mode) - [x] #108714 Consistent use of number keys for selection/mask modes - [ ] ~~#110013 Consistent and intuitive selection/masking workflows via shortcuts and pie menus~~ - [X] #108791 Broader keymap overhaul to remove inconsistenies and improve maintenance (Support [D13857](https://archive.blender.org/developer/D13857), Color/Weight picking, etc) - [ ] Shortcut tables in the user manual for helping users understand and find current keymap layouts - [x] #110425 Splash screen warning to inform users of changes to their preferences Each of these goals are isolated changes that can be reviewed and merged separately. ## Consistent LCS & RCS support This table of shortcuts needs to be kept consistent to make future maintenance of the keymaps easier. This will be the extend of the LCS and RCS differences in draw, sculpt & paint modes. | Action | LCS | RCS | | -------- | -------- | -------- | | Context Menu | Right Click | W | | Set Selection | Alt LC | RC | | Extend/Toggle Selection | Alt Shift LC | Shift RC | | Lasso Select | Ctrl RC | None | | Lasso Deselect | Ctrl Shift RC | Ctrl Shift LC | ## Emulate 3 Mouse Button support `Alt LC` is already used for "Emulate 3 Mouse Button" navigation. This should **no longer block the default keymap from using this shortcut**. Instead any conflicting shortcuts needs to be accessible in another way (even if this is less convenient). For example, component selection will only be accessible when switching from a brush to a selection tool in the toolbar. Once any selection tool is active these shortcuts become available: - `LC` on `Press` to set a selection - `Shift LC` on `Press` to extend/toggle the selection - `ALt LC` / `Shift Alt LC` for face loop selection To ensure that bone selection still works in weight paint mode while a brush is active, `Ctrl Shift LC` is also assigned to set a selection. ## Industry Compatible Keymap Core changes are kept very minimal to this keymap. The main effort was in - Synching shortcuts across modes to be more consistent and easier to maintain - Adding missing shortcuts that are essential for common workflows - Making the keymap more user friendly towards painting workflows (instead of focusing primarily on modeling) Notable proposed changes are: - `1-3` number keys are assigned to the selection/mask modes of the current mode, not edit mode specifically. The exception is object mode, which will always switch to the edit mode selection modes. - `4` is utilizing the full mode switching pie menu to make any mode easier to access ## Selection Pie Menus For painting and sculpting modes, multiple selection shortcuts with `A` + `modifier keys` will be replaced with a single pie menu. This is based on the Mask Pie Menu in mesh sculpt mode. THis will help to - free up all other selection shortcuts - use `Alt A` for the auto-masking pie menu | Regular Selection Pie Menu | Weight Paint Selection Pie Menu | | -------- | -------- | | ![](https://projects.blender.org/attachments/3ddf629b-feef-47b0-afdc-0bdaff995207) | ![](https://projects.blender.org/attachments/b7bc8e32-88be-4371-ba56-68269dcd0d6f) | If options are unavailable, they will be grayed out. ## 3D View Inheritance Keymap entries for Transform operators (Move, Rotate, Scale, Bend, Sphere, etc) need to be prevented from appearing automatically in the sculpting and painting modes once some shortcuts are freed. Even though they can somewhat function, they aren't optimized for these modes. # Proposal Full table of all the keymap entries and changes: https://docs.google.com/spreadsheets/d/1dadL6PLj8hjToKBzXgY3eJRg6SWPJFfWuFLl8wtOf-k/edit?usp=sharing An easier to read overview will be available in the relevant PR's. ## Deeper changes #### Grease Pencil Grease Pencil also needs a deselect property for `gpencil.select_linked` to be mapped to `Shift L`. For `gpencil.select` there are two unique "extend" properties but only `use_shift_extend` is used. This should be unified. Grease Pencil Draw and Vertex Mode are also missing operator to sample local colors. Grease Pencil Weight Paint Mode does not support inverted or smooth brush stroke operations. This needs to be added to replace the current shortcut `D` to flip brush direction. #### Weight Paint Mode The set_weight operator needs support when no selection mode is active. The gradient operators are always waiting for mouse inputs, even when started via keyboard shortcuts. This would need changes to work like the Expand operators in sculpt mode. #### IC Keymap The operator `object.mode_set_with_submode` should still be mapped to object mode to immediately switch to edit mode in the appropriate selection mode. The issue is that this only works with mesh objects and not with grease pencil or curve objects. This limitation needs to be addressed. #### Sculpt Mode The shortcut to increase the Multires level also needs an option to subdivide. This needs some research.
Julien Kaspar added this to the 4.0 milestone 2023-02-28 15:23:23 +01:00
Julien Kaspar added this to the Sculpt, Paint & Texture project 2023-02-28 15:23:25 +01:00
Julien Kaspar self-assigned this 2023-02-28 15:23:44 +01:00

(I hope that my feedback is specific enough to post it in this place. If my post is to cumbersome to read, I would very much like to demonstrate the described behaviour at one of your video-meetings.)

I believe that I noticed a keymap/ui-conflict when customizing blenders key-mapping for use with a buttonless pen device which cannot be resolved through user configuration:

When setting up blender to rotate/zoom/move the viewport by either pen or mouse (click+drag on the background) actions are performed inconsistently depending on the active selection-mode/active sculpting-tool.
Blenders current behaviour:

  1. Select Tweak: click + drag rotates the viewport but at the same time also deselects the current selection (which is not supposed to happen)
  2. Select Box: rotates the viewport (while it should actually deactivate viewport-navigation and instead perform a box-selection)
  3. Select Circle: this selection mode behaves correctly as it deactivates viewport-navigation and instead performs a circle selection
  4. Select Lasso: same as Select Box
  5. In sculpting-mode the brushes behave correctly (by letting the user navigate the viewport when clicking on the background and performing the sculpting-operation when clicking on the mesh) but the box-operations can not be performed as the viewport-navigation is prioritized over the sculpting-operation.

Here is a proposal for how blender could eventually resolve these conflicts:

Selection: Box, Circle, Lasso Selection: Tweak Sculpt: Brushes Sculpt: Box-Operations
deactivate viewport navigation and only perform selection (as currently only circle-selection does) clicking on the mesh -> selection - clicking on the background -> deselection - clicking + draging on the background -> viewport-navigation unchanged behaviour: clicking on mesh -> sculpting - clicking + draging on the background -> viewport navigation deactivate viewport navigation so that the user can performe the box-operation

(Eventually this feedback can be incorporated in some way.)

(I hope that my feedback is specific enough to post it in this place. If my post is to cumbersome to read, I would very much like to demonstrate the described behaviour at one of your video-meetings.) I believe that I noticed a keymap/ui-conflict when customizing blenders key-mapping for use with a buttonless pen device which cannot be resolved through user configuration: When setting up blender to rotate/zoom/move the viewport by either pen or mouse (click+drag on the background) actions are performed inconsistently depending on the active selection-mode/active sculpting-tool. Blenders current behaviour: 1. Select Tweak: click + drag rotates the viewport but at the same time also deselects the current selection (which is not supposed to happen) 2. Select Box: rotates the viewport (while it should actually deactivate viewport-navigation and instead perform a box-selection) 3. Select Circle: this selection mode behaves correctly as it deactivates viewport-navigation and instead performs a circle selection 4. Select Lasso: same as Select Box 5. In sculpting-mode the brushes behave correctly (by letting the user navigate the viewport when clicking on the background and performing the sculpting-operation when clicking on the mesh) but the box-operations can not be performed as the viewport-navigation is prioritized over the sculpting-operation. Here is a proposal for how blender could eventually resolve these conflicts: | Selection: Box, Circle, Lasso | Selection: Tweak | Sculpt: Brushes | Sculpt: Box-Operations | | -------- | -------- | -------- | -------- | | deactivate viewport navigation and only perform selection (as currently only circle-selection does) | clicking on the mesh -> selection - clicking on the background -> deselection - clicking + draging on the background -> viewport-navigation | unchanged behaviour: clicking on mesh -> sculpting - clicking + draging on the background -> viewport navigation | deactivate viewport navigation so that the user can performe the box-operation | (Eventually this feedback can be incorporated in some way.)
Author
Member

@A.Leo I think this is outside the scope of this task. It's more of a general limitation of the keymap customization what you're describing.
There is right now no way to frelly define additional contexts like if a click happens on the background or not. And there is also no way to make this a consistent feature within Blender. Some operations will have to run no matter where you click.

@A.Leo I think this is outside the scope of this task. It's more of a general limitation of the keymap customization what you're describing. There is right now no way to frelly define additional contexts like if a click happens on the background or not. And there is also no way to make this a consistent feature within Blender. Some operations will have to run no matter where you click.

@JulienKaspar Thank You very much for taking a look at my question!

@JulienKaspar Thank You very much for taking a look at my question!
Author
Member

I've been compiling a lot of issues on the LCS and RCS keymap so far.
Proposals are still WIP but I'd like to put together some tests and highlight what all the key changes are.

Here's a table of all the keymap entries for now:
https://docs.google.com/spreadsheets/d/1dadL6PLj8hjToKBzXgY3eJRg6SWPJFfWuFLl8wtOf-k/edit?usp=sharing

I've been compiling a lot of issues on the LCS and RCS keymap so far. Proposals are still WIP but I'd like to put together some tests and highlight what all the key changes are. Here's a table of all the keymap entries for now: https://docs.google.com/spreadsheets/d/1dadL6PLj8hjToKBzXgY3eJRg6SWPJFfWuFLl8wtOf-k/edit?usp=sharing
Author
Member

EDIT: More updated proposal in the task description above.

To give a bit more of an overview of the changes in that spreadsheet:

  • Free up space for user customization
    • Remove redundant shortcuts
    • Remove all brush shortcuts
  • Number Keys for selection modes
  • Shift LC for brush smoothing
  • Ctrl LC for inverted brush effect (or erasing)
  • Consistent LCS & RCS selection and context menus (see table below)
    • Consistent Lasso masking shortcuts
    • Consistent component selection
    • Consistent context menu access
  • A pie menu for selection operators (For consistency and easy auto-masking access)
    • Free up all other selection shortcuts
  • Alt A for auto-masking (Consistency)
  • E for face set operators and pie menu (To remove RCS conflict)
  • Shift S to toggle stabilize stroke
  • X for color swap
  • Shift X for color/weight sampling and Ctrl Shift X for vertex group sampling

LCS & RCS in affected modes

Any keybindings on Ctrl LC will be removed to avoid conflicts.
This will result in a bit of missing functionality in each keymap but nothing too major, as this means users will need to fall back on the Invert & Clear selection operators more.

Action LCS RCS
Context Menu Right Click W
Set Selection Ctrl LC → None RC
Extend/Toggle Selection Ctrl Shift LC Shift RC
Lasso Select Ctrl RC Ctrl LC → None
Lasso Deselect Ctrl Shift RC Ctrl Shift LC

Keymap inheritance

Keymap entries for Transform operators (Move, Rotate, Scale, Bend, Sphere) also need to be prevented from appearing automatically in the sculpting and painting modes once some shortcuts are freed.

EDIT: More updated proposal in the task description above. To give a bit more of an overview of the changes in that spreadsheet: - Free up space for user customization - Remove redundant shortcuts - Remove all brush shortcuts - `Number Keys` for selection modes - `Shift LC` for brush smoothing - `Ctrl LC` for inverted brush effect (or erasing) - Consistent LCS & RCS selection and context menus (see table below) - Consistent Lasso masking shortcuts - Consistent component selection - Consistent context menu access - `A` pie menu for selection operators (For consistency and easy auto-masking access) - Free up all other selection shortcuts - `Alt A` for auto-masking (Consistency) - `E` for face set operators and pie menu (To remove RCS conflict) - `Shift S` to toggle stabilize stroke - `X` for color swap - `Shift X` for color/weight sampling and `Ctrl Shift X` for vertex group sampling ### LCS & RCS in affected modes Any keybindings on `Ctrl LC` will be removed to avoid conflicts. This will result in a bit of missing functionality in each keymap but nothing too major, as this means users will need to fall back on the Invert & Clear selection operators more. | Action | LCS | RCS | | -------- | -------- | -------- | | Context Menu | Right Click | W | | Set Selection | Ctrl LC → None | RC | | Extend/Toggle Selection | Ctrl Shift LC | Shift RC | | Lasso Select | Ctrl RC | Ctrl LC → None | | Lasso Deselect | Ctrl Shift RC | Ctrl Shift LC | ### Keymap inheritance Keymap entries for Transform operators (Move, Rotate, Scale, Bend, Sphere) also need to be prevented from appearing automatically in the sculpting and painting modes once some shortcuts are freed.
Author
Member

Also: The operator to set selections in Weight Paint mode is vital, because it is used to select bones. It's not just to select components.
So leaving this unassigned on LCS is not wise. Maybe this can be solved in some way.

EDIT: I think the best solution is to map any brush action on Click Drag and any single click operator like select on Click.
This way in LCS we can still assign both select and the inverted brush effect on Shift LC.
This would affect all painting modes and grease pencil sculpt mode.
Mesh sculpt mode already made the decision to execute brushes on Click Drag years ago.

Also: The operator to set selections in Weight Paint mode is vital, because it is used to select bones. It's not just to select components. So leaving this unassigned on LCS is not wise. Maybe this can be solved in some way. EDIT: I think the best solution is to map any brush action on `Click Drag` and any single click operator like select on `Click`. This way in LCS we can still assign both select and the inverted brush effect on `Shift LC`. This would affect all painting modes and grease pencil sculpt mode. Mesh sculpt mode already made the decision to execute brushes on `Click Drag` years ago.
Author
Member

The Pie Menus for selections operations is probably the only controversial part of the proposal.
Main motivators behind this change are right now:

  • Free up Alt A for auto-masking pie menu
  • Offer fast Invert operator (On RCS this will be a frequent operator since there is no Lasso Select operator mapped. Only Lasso Deselect is available, just like in Sculpt Mode)
  • Consistency among all paint/draw/sculpt modes (Object/edit/pose modes keep their own mapping)

I'll keep thinking about an alternative solution to this than the A pie menu.

The Pie Menus for selections operations is probably the only controversial part of the proposal. Main motivators behind this change are right now: - Free up `Alt A` for auto-masking pie menu - Offer fast Invert operator (On RCS this will be a frequent operator since there is no Lasso Select operator mapped. Only Lasso Deselect is available, just like in Sculpt Mode) - Consistency among all paint/draw/sculpt modes (Object/edit/pose modes keep their own mapping) I'll keep thinking about an alternative solution to this than the A pie menu.
Author
Member

Some more ideas from talking with people:

  • Ctrl R can be assigned to 'Detail Flood Fill' for when Dyntopo is used. This would mirror the same shortcut for voxel remeshing

  • The necessity to use Click & Drag for brushes instead of on Press can be isolated to LCS. On RCS there is never a conflict between action & selection, so the brushes can still use on Press.

  • An alternative to the introduction of Click & Drag for strokes is to set '3 Mouse Button Emualtion' navigation on Alt LC to Click & Drag and use on Click Alt LC to set selections and Alt Shift LC to select extend/toggle. The only conflict with this is are the Gradient operators in Weight Paint Mode. These could be rebound to Shift A and Shift Alt A similar to Expand operators in sculpt mode, but need to be reworked so they don't wait for another click input.

  • The A pie menu should include operations for bone selection as well in diagonal directions. 'Deselect All Bones' and 'Invert Bone Selection' as well as selection operators for vert/face selection would all be availible at once. 'Select Parent Bone' and 'Select Child Bone' could also be included.

EDIT: Turns out this is not quite helpful because only a click selection makes the bone active and targets the assigned vertex group.
Instead the pie menu should be concext sensitive:
If no selection mode is active, the pie menu relates to bones.
If a selection mode is active, the pie menu relates to the targeted components.

  • The pie menu on E could be carried over to more modes as well for common visibility operators ('Invert visible' and 'Show All')

  • The original shortcut menu on E for stroke methods is still useful to some users. If it is replaced, the use case of switching between stroke types needs to be covered in a different way. Accessing the brush setting requires more clicks than using the menu. For now I put it back into the keymap revamp on Ctrl E.

  • Drag threshold on either brushes or navigation are not great. Another solution could be to restrict use of selection operators to selection tools on LCS.

Some more ideas from talking with people: - `Ctrl R` can be assigned to 'Detail Flood Fill' for when Dyntopo is used. This would mirror the same shortcut for voxel remeshing - The necessity to use `Click & Drag` for brushes instead of on `Press` can be isolated to LCS. On RCS there is never a conflict between action & selection, so the brushes can still use on `Press`. - An alternative to the introduction of `Click & Drag` for strokes is to set '3 Mouse Button Emualtion' navigation on `Alt LC` to `Click & Drag` and use on `Click` `Alt LC` to set selections and `Alt Shift LC` to select extend/toggle. The only conflict with this is are the Gradient operators in Weight Paint Mode. These could be rebound to `Shift A` and `Shift Alt A` similar to Expand operators in sculpt mode, but need to be reworked so they don't wait for another click input. - The `A` pie menu should include operations for bone selection as well in diagonal directions. 'Deselect All Bones' and 'Invert Bone Selection' as well as selection operators for vert/face selection would all be availible at once. 'Select Parent Bone' and 'Select Child Bone' could also be included. EDIT: Turns out this is not quite helpful because only a click selection makes the bone active and targets the assigned vertex group. Instead the pie menu should be concext sensitive: If no selection mode is active, the pie menu relates to bones. If a selection mode is active, the pie menu relates to the targeted components. - The pie menu on `E` could be carried over to more modes as well for common visibility operators ('Invert visible' and 'Show All') - The original shortcut menu on `E` for stroke methods is still useful to some users. If it is replaced, the use case of switching between stroke types needs to be covered in a different way. Accessing the brush setting requires more clicks than using the menu. For now I put it back into the keymap revamp on `Ctrl E`. - Drag threshold on either brushes or navigation are not great. Another solution could be to restrict use of selection operators to selection tools on LCS.
Julien Kaspar added
Status
Confirmed
and removed
Status
Needs Info from Developers
labels 2023-04-25 13:31:40 +02:00
Author
Member

In the recent module meeting we discussed the ways the conflicts with selection operators and MMB emulation can be solved.
I'll update the proposal with these notes.

The conclusion I came to is that all draw/sculpt/paint modes should be able to use

  • Alt LC Press to set a component selection (Same in weight paint mode for selecting bones)
  • Alt Shift LC Press to extend/toggle components to the selection

If MMB emulation is enabled in the preferences, the user needs to make a selection tool active to be able to use single click selection operations on

  • LC Press to set a component selection
  • Shift LC Press to extend/toggle components to the selection

The exception is selecting bones in weight paint mode which should be done on Ctrl Shift LC Press.

In the recent module meeting we discussed the ways the conflicts with selection operators and MMB emulation can be solved. I'll update the proposal with these notes. The conclusion I came to is that all draw/sculpt/paint modes should be able to use - `Alt LC` `Press` to set a component selection (Same in weight paint mode for selecting bones) - `Alt Shift LC` `Press` to extend/toggle components to the selection If MMB emulation is enabled in the preferences, the user needs to make a selection tool active to be able to use single click selection operations on - `LC` `Press` to set a component selection - `Shift LC` `Press` to extend/toggle components to the selection The exception is selecting bones in weight paint mode which should be done on `Ctrl Shift LC` `Press`.
Author
Member

Today I looked into and mapped the state of the Industry Compatible keymap for the sculpt, paint and draw modes. Here are some concerns:

  • Many important shortcuts are missing or inconsistently present between modes. Looks like a swiss cheese. It is fundamentally questionable if all sculpt, paint and grease pencil modes are usable
  • Some shortcuts of the default keymap were just copied over and don't seem very industry standard.
  • There are many shortcut conflicts and seemingly random bindings
  • New curve modes are just using the default keymap and need to be completely replaced

Overhauling the keymap seems like a necessity but also a huge undertaking with a lot of research, module involvement and testing.
The alternative is to only fix the worst conflicts and issues, which might be too little of an impact to make the keymap attractive for users.

Today I looked into and mapped the state of the Industry Compatible keymap for the sculpt, paint and draw modes. Here are some concerns: - Many important shortcuts are missing or inconsistently present between modes. Looks like a swiss cheese. It is fundamentally questionable if all sculpt, paint and grease pencil modes are usable - Some shortcuts of the default keymap were just copied over and don't seem very industry standard. - There are many shortcut conflicts and seemingly random bindings - New curve modes are just using the default keymap and need to be completely replaced Overhauling the keymap seems like a necessity but also a huge undertaking with a lot of research, module involvement and testing. The alternative is to only fix the worst conflicts and issues, which might be too little of an impact to make the keymap attractive for users.
Author
Member

Another update:
@DanielBystedt shared some common keybindings in other apps.
https://docs.google.com/spreadsheets/d/1LCxdG57MfBtRj9pbU92-S-xuRL_6G3y45HsroKyLIP0/edit#gid=0

The next step should be a table of vital pie menus and operator shortcuts from the default keymap.
Then we research what these would be in other applications.

Some feedback from users for the IC keymap:

  • Brush radial controls could be assigned to horizontal/vertical drag directions to save on shortcuts (Similar to Substance Painter). This would require some changes in the code though to allow vertical radial cahnges.
  • S could be used for stencil controls and resolve existing stencil conflicts
  • QWERT could be mapped to selection & transform tools for consistency
Another update: @DanielBystedt shared some common keybindings in other apps. https://docs.google.com/spreadsheets/d/1LCxdG57MfBtRj9pbU92-S-xuRL_6G3y45HsroKyLIP0/edit#gid=0 The next step should be a table of vital pie menus and operator shortcuts from the default keymap. Then we research what these would be in other applications. Some feedback from users for the IC keymap: - Brush radial controls could be assigned to horizontal/vertical drag directions to save on shortcuts (Similar to Substance Painter). This would require some changes in the code though to allow vertical radial cahnges. - `S` could be used for stencil controls and resolve existing stencil conflicts - `QWERT` could be mapped to selection & transform tools for consistency
Author
Member

EDIT: This info has been added to the task description.

I've done a lot more research and a full proposal for the IC keymap.
Here's a high level overview of all the changes before I make a prototype config for people to test.
If any shortcut isn't menitoned, that means it is unchanged.

EDIT: This info has been added to the task description. I've done a lot more research and a full proposal for the IC keymap. Here's a high level overview of **all the changes** before I make a prototype config for people to test. If any shortcut isn't menitoned, that means it is unchanged.

suggestions for sculpt mode

  • LC in empty space to invert the mask

  • CTRL+SHIFT+C for toggling local view

  • add free ROLLING and assign CTRL+SHIT+R to it and PGUP PGDN for the degrees

  • make use of W & R & M for other things and make T for all transformations just like in NOMAD SCULPT

  • ALT+W enable disable WIREFRAME

  • X for enable disable X symmetry and V for color swapping

  • ALT+S for symmetrize

  • CTRL+ALT+Z for undo history panel

suggestions for sculpt mode - LC in empty space to invert the mask - CTRL+SHIFT+C for toggling local view - add free ROLLING and assign CTRL+SHIT+R to it and PGUP PGDN for the degrees - make use of W & R & M for other things and make T for all transformations just like in NOMAD SCULPT - ALT+W enable disable WIREFRAME - X for enable disable X symmetry and V for color swapping - ALT+S for symmetrize - CTRL+ALT+Z for undo history panel

FreeCad uses middle button click without drag for "Frame under cursor", and is very handy. Blender has "Frame Selected" on the dot key, in the numeric keyboard and in the Pie Menu of the (ñ) key on the Spanish keyboard (with the name of View Select). If you use a laptop, it is a bit tedious.

I'd rather discuss this on Devtalk, but I can't sign up today.

FreeCad uses middle button click without drag for "Frame under cursor", and is very handy. Blender has "Frame Selected" on the dot key, in the numeric keyboard and in the Pie Menu of the (ñ) key on the Spanish keyboard (with the name of View Select). If you use a laptop, it is a bit tedious. I'd rather discuss this on Devtalk, but I can't sign up today.

This is based on the Mask Pie Menu in mesh sculpt mode. THis will help to

  • free up all other selection shortcuts

A question - what kind of a shorcuts are supposed to be freed up? Something like Ctrl+i?

> This is based on the Mask Pie Menu in mesh sculpt mode. THis will help to - free up all other selection shortcuts A question - what kind of a shorcuts are supposed to be freed up? Something like Ctrl+i?
Author
Member

@1D_Inc This would free up:

  • dbl A
  • Alt A
  • Ctrl I

Most importantly Alt A can then consistently be assigned to the auto-masking pie menu in sculpt modes.

@1D_Inc This would free up: - `dbl A` - `Alt A` - `Ctrl I` Most importantly `Alt A` can then consistently be assigned to the auto-masking pie menu in sculpt modes.

I agree about Alt+A, but ctrl+I seems to be ok to keep, similar to ctrl++ ctrl+- shrink/extend

I agree about Alt+A, but ctrl+I seems to be ok to keep, similar to ctrl++ ctrl+- shrink/extend
Author
Member

All important work has been completed for 4.0. I'll mark this as done.

All important work has been completed for 4.0. I'll mark this as done.
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2023-10-02 17:40:19 +02:00
Julien Kaspar removed this from the Sculpt, Paint & Texture project 2023-10-02 17:40:58 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#105298
No description provided.