Solution to a number of conflicts: SHIFT+Lclick for radius + strength UI wide

Draise's picture
Project: 
Bforartists Tracker

Ok, I went down the rabbit hole and did an analysis in the Radius in all modes, and thought of a cool solution..... And even remapped it to test. Tomorrow I'll upload the concept. This solution will close 3 tasks in one go.

What if, what if we remove the Hotkey combo hotkeys for Radius types and implement a single modifier and Lclick for the radius AND strength (and potentially Weight too) with a mouse press and tweak in a direction direction? Change that workflow to be more ergonomic from the get go?

Example: SHIFT+Lclick left and right = radius and SHIFT+Lclick up and down = strength

Case:

  • Software that do something like this are Mudbox, Zbrush, Krita, Softimage. Photoshop and others where you hold a key and move mouse, let go of key and viola you have the new radius.
  • Will create room for F hotkey for Focus, industry standard - fixes conflict with Grease Pencil
  • Will create room for WER radius proposals and other conflicts in other mods - fixes conflict in Weight Paint mode with W
  • Will create a new more ergonomic workflow for radius AND strength in the one single modifier hotkey and mouse workflow using SHIFT
  • Little or no conflicts elsewhere with said change

I digged and found all theSHIFT+Lclick in other modes - and most of them are in modes that don't use Radius. Only conflict is in the Grease Pencil Edit mode, but even then, that feature doesn't conflict with SHIFT+Lclick press, as you need to tweak with it held down.

The funcionatlity is more ergonomic and minimalistic and it is a quick press/mousemove then let go and you have a new radius (and also intuitive skill in a number of various software that focus on painting and sculpting) instead of Hotkey activation to activate, move mouse, click to set and then use ANOTHER multikey combo to then change strength with similar "activate, move, click to set" workflow. We could get rid of a whole multi hotkey combo workflow and also save a click with SHIFT+Lclick to radius+strength tweaks + close 3 other hotkey conflicts and this one.

I think this could be the holy grail to all these issues, and the rest will be a breeze for the full keymap.

Status: 
Closed (duplicate)
Priority: 
Normal
Category: 
Feature request
Component: 
User interface
Assigned: 
Unassigned
Reporter: 
Created: 
Tue, 03/06/2018 - 02:20
Updated: 
Sat, 03/10/2018 - 09:58

Comments

9
Reiner's picture

This is a task for the experimental keymap. This experimental keymap needs to be based at the full keymap. And this full keymap does not exist yet.

Postponing.

Reiner's picture

Status: Active » Postponed
Draise's picture

What is the experimental keymap? Is this supposed to be a task?

Aren't the conflicts located in the Standard Keymap?

Isn't the tuning the Standard now (before future release) and Full BFA Keymap already "experimental" and WIP already? Why do we need to build another experimental map to solve issues in the original Standard Keymap?

Here is the code we would need to resolve and see (from Standard and Full Map) to implement this system - needing to fix only three resulting conflicts:

### Areas that have the F for radius
 
# Map Grease Pencil Stroke Edit Mode
# Map Image Paint
# Map Vertex Paint
# Map Weight Paint
# Map Sculpt
# Map UV Sculpt
 
## Using the tweak and diretion we can improve the radius/strength system, remove a click to confirm, and remove other conflicts within any area with Radius, and remove any new SHIFT+Lclick conflicts in three two areas. 
#
#       'EVT_TWEAK_L', 'ANY', shift=True)
#
 
 
 
 
### Areas with SHIFT+Lclick searching for potential conflicts
 
# Map NLA Channels
kmi = km.keymap_items.new('nla.channels_click', 'LEFTMOUSE', 'PRESS', shift=True)
 
# Map Clip Graph Editor
kmi = km.keymap_items.new('clip.graph_select', 'SELECTMOUSE', 'PRESS', shift=True)
 
# Map Paint Curve
kmi = km.keymap_items.new('paintcurve.select', 'SELECTMOUSE', 'PRESS', shift=True)
 
 
 
# Map Clip Editor
kmi = km.keymap_items.new('clip.select', 'SELECTMOUSE', 'PRESS', shift=True)
 
 
## Needs remapping, but may not cause conflict with tweak, will test
# Map Grease Pencil Stroke Edit Mode
kmi = km.keymap_items.new('gpencil.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
kmi_props_setattr(kmi.properties, 'toggle', True)
 
 
 
# Map Mask Editing
kmi = km.keymap_items.new('mask.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', False)
kmi_props_setattr(kmi.properties, 'deselect', False)
kmi_props_setattr(kmi.properties, 'toggle', True)
 
# Map 3D View
kmi = km.keymap_items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'release_confirm', True)
kmi_props_setattr(kmi.properties, 'use_planar_constraint', True)
kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', False)
kmi_props_setattr(kmi.properties, 'deselect', False)
kmi_props_setattr(kmi.properties, 'toggle', True)
kmi_props_setattr(kmi.properties, 'center', False)
kmi_props_setattr(kmi.properties, 'enumerate', False)
kmi_props_setattr(kmi.properties, 'object', False)
 
# Map Text
kmi = km.keymap_items.new('text.selection_set', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'select', True)
 
# Map Sequencer
kmi = km.keymap_items.new('sequencer.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
kmi_props_setattr(kmi.properties, 'linked_handle', False)
kmi_props_setattr(kmi.properties, 'left_right', 'NONE')
kmi_props_setattr(kmi.properties, 'linked_time', False)
 
# Map Node Editor
kmi = km.keymap_items.new('node.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
kmi = km.keymap_items.new('node.add_reroute', 'LEFTMOUSE', 'PRESS', shift=True)
 
# Map Markers
kmi = km.keymap_items.new('marker.select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
 
# Map Armature
kmi = km.keymap_items.new('sketch.gesture', 'LEFTMOUSE', 'PRESS', shift=True)
 
# Map View2D
kmi = km.keymap_items.new('sequencer.tf_select', 'LEFTMOUSE', 'PRESS', shift=True)
 
# Map Graph Editor
kmi = km.keymap_items.new('graph.clickselect', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
kmi_props_setattr(kmi.properties, 'column', False)
kmi_props_setattr(kmi.properties, 'curves', False)
 
 
## Needs remapping, but may not cause conflict with tweak, will test
# Map Sculpt
kmi = km.keymap_items.new('sculpt.brush_stroke', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'mode', 'SMOOTH')
 
# Map Particle
kmi = km.keymap_items.new('particle.brush_edit', 'LEFTMOUSE', 'PRESS', shift=True)
kmi = km.keymap_items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', shift=True) ## not sure if these conflict with the viewport controls - Draise
 
# Map Dopesheet
kmi = km.keymap_items.new('action.clickselect', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
kmi_props_setattr(kmi.properties, 'column', False)
kmi_props_setattr(kmi.properties, 'channel', False)
 
# Map Clip Graph Editor
kmi = km.keymap_items.new('clip.graph_select', 'SELECTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
 
# Map Animation Channels
kmi = km.keymap_items.new('anim.channels_click', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)
 
## Needs remapping, but may not cause conflict with tweak, will test
# Map UV Sculpt
kmi = km.keymap_items.new('sculpt.uv_sculpt_stroke', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'mode', 'RELAX')
 
# Map NLA Channels
kmi = km.keymap_items.new('nla.channels_click', 'LEFTMOUSE', 'PRESS', shift=True)
kmi_props_setattr(kmi.properties, 'extend', True)

 

Draise's picture

Made a proof of concept so you can play with it to try it out (Sculpt Mode only)

Changes:

  • SHIFT+Lclick tweak left/right will change radius. 
  • SHIFT+Lclick tweak up/down will change strength.
  • SHIFT+ALT+Lclick tweak any will change texture rotation. 
  • F will focus selected
  • D grease pencil no conflict
  • S+Lclick will temporarily switch smooth brush to paint smooth (was SHIFT+Lclick with a double entry S in Full BFA Map)
Reiner's picture

What is the experimental keymap? Is this supposed to be a task?

Oh my. I thought this is already clear. The experimental keymap will be a extra keymap where you can for example implement your lmb drag for the sliders in the animation view. Or border select with shift and lmb. All the stuff that you want to try out. And there you can try it out. Without the danger to break Bforartists functionality.

The full keymap will be the base for this.

The full keymap is NOT for experiments. NOT to try things out. NOT to move ten other hotkeys to other locations for one fix. I don't want to repeat the mistake with the D key to center view, where i trusted you that you have checked for hotkey conflicts. And i will not play around with any proof of concept again. Just to run into the same pitfall again.

The only task with the full keymap is to add back the Blender hotkeys. As conservative as possible. And fix possible hotkey conflicts. And JUST this hotkey conflicts. Nothing more. When you need start to reorganize the whole keymap like you show here, then you do it wrong. That's crazy. That's what has cost us days here already from what i can see. You break it with the try to improve it. And i have to fix it then.

First make it working. Then look for improvements. In an experimental keymap.

 

 

Draise's picture

I missed the memo and task for experimental map.

I already use experimental keymaps before applying to the Full BFA map. It's part of my workflow, as I like backups before trying to fix things.it's just good coding practice.

Any X.X.X versioning is experimental, and the final BFA system after approval in the tasks would be just an X.X version.  Final release will just be the X version.

These experiments I'm uploading for you to try are that, experiments, and they are not - till approved - part of the Full BFA Map nor Standard.

Reiner's picture

I talk about a public experimental keymap that gets included into Bforartists. Your changes will not be the only ones that needs testing.

Reiner's picture

Ported to github. Closing.

Reiner's picture

Status: Postponed » Closed (duplicate)