Sculpt/Painting Modes: Revamp Keymap #105298
Labels
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
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#105298
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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
fb54d3f865
) (69e290d2fe
)#110013 Consistent and intuitive selection/masking workflows via shortcuts and pie menusEach 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.
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
onPress
to set a selectionShift LC
onPress
to extend/toggle the selectionALt LC
/Shift Alt LC
for face loop selectionTo 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
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 accessSelection 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
Alt A
for the auto-masking pie menuIf 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 toShift L
.For
gpencil.select
there are two unique "extend" properties but onlyuse_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.
(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:
Here is a proposal for how blender could eventually resolve these conflicts:
(Eventually this feedback can be incorporated in some way.)
@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!
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
EDIT: More updated proposal in the task description above.
To give a bit more of an overview of the changes in that spreadsheet:
Number Keys
for selection modesShift LC
for brush smoothingCtrl LC
for inverted brush effect (or erasing)A
pie menu for selection operators (For consistency and easy auto-masking access)Alt A
for auto-masking (Consistency)E
for face set operators and pie menu (To remove RCS conflict)Shift S
to toggle stabilize strokeX
for color swapShift X
for color/weight sampling andCtrl Shift X
for vertex group samplingLCS & 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.
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.
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 onClick
.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.The Pie Menus for selections operations is probably the only controversial part of the proposal.
Main motivators behind this change are right now:
Alt A
for auto-masking pie menuI'll keep thinking about an alternative solution to this than the A pie menu.
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 remeshingThe necessity to use
Click & Drag
for brushes instead of onPress
can be isolated to LCS. On RCS there is never a conflict between action & selection, so the brushes can still use onPress
.An alternative to the introduction of
Click & Drag
for strokes is to set '3 Mouse Button Emualtion' navigation onAlt LC
toClick & Drag
and use onClick
Alt LC
to set selections andAlt Shift LC
to select extend/toggle. The only conflict with this is are the Gradient operators in Weight Paint Mode. These could be rebound toShift A
andShift 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 onCtrl 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.
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 selectionIf 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 selectionShift LC
Press
to extend/toggle components to the selectionThe exception is selecting bones in weight paint mode which should be done on
Ctrl Shift LC
Press
.Today I looked into and mapped the state of the Industry Compatible keymap for the sculpt, paint and draw modes. Here are some concerns:
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.
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:
S
could be used for stencil controls and resolve existing stencil conflictsQWERT
could be mapped to selection & transform tools for consistencyEDIT: 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
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.
A question - what kind of a shorcuts are supposed to be freed up? Something like Ctrl+i?
@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.Julien Kaspar referenced this issue2023-08-10 12:39:32 +02:00
I agree about Alt+A, but ctrl+I seems to be ok to keep, similar to ctrl++ ctrl+- shrink/extend
All important work has been completed for 4.0. I'll mark this as done.