Page MenuHome

Sculpt: Expand 'Stroke Mode' enum to support quick switch to brushes and mask brush tool for keymaps on Sculpt
AbandonedPublic

Authored by Juanfran Matheu (jfmatheu) on Jan 3 2020, 1:50 AM.
Tokens
"Heartbreak" token, awarded by Branskugel."Like" token, awarded by TheCGCy."Love" token, awarded by Zen_YS."Like" token, awarded by dulrich."Love" token, awarded by brilliant_ape."Like" token, awarded by rice."Like" token, awarded by MetinSeven."Love" token, awarded by lopoIsaac."Love" token, awarded by shader."Love" token, awarded by ThinkingPolygons."Love" token, awarded by Debuk."Love" token, awarded by xan2622.

Details

Summary

This is based on a papercut: https://devtalk.blender.org/t/more-sculpt-modes-for-the-shift-left-mouse-hotkey/10048

The problem is clear: Insufficient brush options to momentary switch brush via shortcut without leaving the active brush

Actually we just give support to smooth, invert brush and normal brush effect. Some of the most - ask for - options/brushes to be included in this menu are: mask brush, brushes that flatten the surface such as scrape and flatten brushes, and so.

With this patch I give support to add brushes by type to the 'Stroke Mode' list as well as mask brush tool. Extend the list from this point is pretty easy as only few lines per brush have to be added. I also took in count the shared across property between texture paint and sculpt so I splitted it to be able to extend the property for sculpt while maintaining the one from the texture paint giving then more possibilities for the future to expand them independently without any problem.

Also, this patch has a reduced version of the list with just few needed brushes. But I have a patch that includes almost all brushes just in case core devs agree with it. From user feedback I got that everyone want to have the freedom to choose any brush, that is, to have the complete list of brushes. That's why I think could be positive to include all them on the list.

I have made a reduced build to test the patch: https://blender.community/c/graphicall/7jbbbc/

E D I T

Due to the most asked feature by users: support for mask brush

My new proposal is ONLY adds Mask brush to that list as the default brush is the expected behaviour a user will want plus smooth brush is already added to the list and you just can use the default smooth brush, that is the common and expected behaviour too.

For the core devs: Any thoughts on this?

Diff Detail

Event Timeline

Juanfran Matheu (jfmatheu) edited the summary of this revision. (Show Details)
Pablo Dobarro (pablodp606) requested changes to this revision.Jan 20 2020, 7:05 PM

I would rather wait to have the asset manager before trying to add something like this. This should not be a keymap option and the user should be able to choose any brush preset to use as the Shift mode, not just the default preset for the tool.
In 2.83 we are probably going to include multiple brushes per tool, so an approach like this will be confusing as you won't know which brush are you switching to.
@William Reynish (billreynish) What do you think?

This revision now requires changes to proceed.Jan 20 2020, 7:05 PM

This should not be a keymap option

Of course it should. Many dcc apps have this function built in automatically in the keymap.

This is not about the "shift mode". This is about a more fluid workflow and quick accessing the brush, and you can map it to any key ofc.
The most crucial thing for me is the mask option, which I don't know the reason why it's not on that list by default.
With this patch, I would be able to assign the M key to use this feature instead, so I could access the mask brush the same way as we do in zbrush, by press and holding, instead of toggling, which is a pain.
And no, the asset manager has nothing to do with it.

the user should be able to choose any brush preset to use as the Shift mode, not just the default preset for the tool.

@Pablo Dobarro (pablodp606) I agree with you on this, I probably want to use my brush and not the default scrape brush, for example. But so much people work with default brushes just because we don't have a good managment of brushes, as you well said, we have to:

wait to have the asset manager

So if asset manager will come soon we can make a better thing with it and support every brush the user have in the asset manager, and that's really the way to go, but the thing is, when?

If you agree I want to propose to add at least mask tool brush (draw) to the - actual - list as it's something every software with sculpt tools have, because:

  1. We already have smooth brush added to that list and you can have as much smooth brushes you want but you just will able to use the default brush, the one that is called "Smooth" and if you delete this one you won't be able to use it anymore via shortcut https://developer.blender.org/D6509 So adding , at least, mask brush to the list is not really a problem, users will love to.
  2. Mask brush is not a brush like scrape or draw where users often have so much brush variants of the same brush type/tool. People will often want the default behaviour of this brush.

Another option could be add all brush tools to the list, and when switching to a brush via shortcut, change to the active brush of that brush type/tool instead of change to the default brush, that way it will support any brush the user have as it will change to the "active" brush of that tool. I hope to explain it well.

at least mask tool brush

Yes, at least the mask brush. That's a legendary request.
Please make this happen guys, for zbrush fellows's sake. 🙂
Cheers.

I agree with @Pablo Dobarro (pablodp606). Really users should be able to set *any* custom brush as a secondary brush in your brush picker. To support that well, we first need to fundamentally improve the brush management and asset system in Blender.

Yeah, I'm here for the mask option too... Can we have that, please?

I don't understand @Pablo Dobarro (pablodp606) and @William Reynish (billreynish) answer. Nobody have asked to have a "custom" brush in the a modifier key, we only want the only brush that we need to work. The mask tool. And the "shift" have no reason. I want to use shift, alt, ctrl,... not only shift. To map correctly invert, smooth and mask.

I don't htink that nobody will put a "cloth" brush in the shift key because is not a common tool. But mask, for example, is absolutely necesary in the same way that we made a box select with left click.

And we can't wait to this feature until the asset manager works, that can be more than a year...

I don't understand @Pablo Dobarro (pablodp606) and @William Reynish (billreynish) answer. Nobody have asked to have a "custom" brush in the a modifier key, we only want the only brush that we need to work. The mask tool. And the "shift" have no reason. I want to use shift, alt, ctrl,... not only shift. To map correctly invert, smooth and mask.
I don't htink that nobody will put a "cloth" brush in the shift key because is not a common tool. But mask, for example, is absolutely necesary in the same way that we made a box select with left click.
And we can't wait to this feature until the asset manager works, that can be more than a year...

If I want to use the Cloth Brush with the Shift key, I wish Blender could allow me to do it (that's the goal of the initial request).

E D I T
Due to the most asked feature by users: support for mask brush
My new proposal is ONLY adds Mask brush to that list as the default brush is the expected behaviour a user will want plus smooth brush is already added to the list and you just can use the default smooth brush, that is the common and expected behaviour too.
For the core devs: Any thoughts on this?

Oh please no. Don't restrict this request "to only add the Brush Mask onto the list".
I am OK if you want to add the Mask Brush onto the list but please don't remove all the other brushes from the list. This is what I hoped it could be included (to let the user choose any brush type, to let freedom).

I can understand that Pablo Dobarro and William Reynish prefer to wait for the Asset Manager to be finished before tackling with the hotkeys, but I hope that freedom (to assign any brush, or any custom brush, and to choose any hotkey for that) will lead their reflexions.

I'm not against more brushes and keeping the original patch, which is what it should be. But if that's a problem to implement, then let it be masked only.

But I do not understand the refusal or the argument to be against this patch. There are 100 lines of basic hotkeys that help the user a lot. If this is not the way you plan to implement it in the future, in the future you can delete these 100 lines of code, implement it as you wish with the asset manager and fix it.

What users cannot do is wait for the asset manager, which has been coming for 4-5 years, for the everything nodes to arrive, to arrive,... it is a patch. It is already implemented, it does not do more damage than what has already been implemented. Let's see, accept it and if in the future you are going to change as brushes are managed then change it, but give us that option because we can not be waiting for something that never comes.

I do not find anything useful for me but it gives some flexibility for other users so i still do not see why not? Code is ready.

I like the way it's going. It is a better method instead of keymaps. It will take some time.. But I believe it's worth it in the end.

Especially when there might be several smooth brushes in the future. I would hate to go to the keymap just to change the modifier's brush type each time. Yes, there could be an addon that simplifies switching the new "set" modifiers; Scrape, flatten, crease, grab, mask.. Instead of going to the keymap anyway. However, each brush would have to be added manually to this set and be maintained by the dev or devs.

If the modifier key could be accessed through an easier method, asset manager.. And the possibility of adding any brush to a modifier. I believe that would be awesome. Three brushes use a feature similar already and their modifiers are not in the keymap; Slide relax(shift), Scrape(ctrl), and Fill(ctrl).


Also to note, that the brush system is still being worked on. New features are added and then needs to be polished.
If the (shift, ctrl, and alt) modifiers are accessed with the asset manager. Maybe even with a possibility to have each brush have individual modifiers like brushes I named; again Slide relax(shift), Scrape(ctrl), and Fill(ctrl). Then brushes can have fully customized opportunities. Thus not having to worry about a keymap, and the user can have multiple variances of brushes with different modifiers.

I like the way it's going.

Then you clearly don't understand what this feature is all about.

I like the way it's going.

Then you clearly don't understand what this feature is all about.

I'm siding with Pablo instead of putting it in a keymap.. Thought that was clear in my post.. Weird, but oh well..


Currently, this build only works for sculpt mode and doesn't address Vertex paint, Texture paint, and etc. So thinking back, it would have to be heavily maintained to incorporate new and other brushes into the pool. Only limited by those brushes.

However with it being customizable to any brush... It can function in all paint modes and all paint/sculpt brushes. Sculpt mode is basically a paint mode as well as other things after all.
Here is a mockup what I was trying to talk about. Base image was taken from the User Interface Workshop


Just an idea.. That can benefit painting and sculpting at the same time. And could possibly branch this out to grease pencil in the future.

@Rodger Davis (RodDavis) Like I said, you don't get it.
This feature here is totally unrelated to the other brushes/shift key or the asset manager. Please read the description carefully, to fully understand what this feature really is. This is ancient functionality on keymaps of other softwares.

This is very straightforward and easy to understand. It's really weird what's happening here.

Seems like we could have a usable workaround to make sculpting inside Blender more user friendly for a typical Zbrush users without having to wait a year or two for Asset Manager to come true which have nothing to do with sculpting at first thought.
All you need is to get Mask brush available as a stroke method via Ctrl, even though the whole concept of having smooth brush assigned to shift as a stroke method doesn't sound right

wait a year or two for Asset Manager

The asset manager will not solve this issue, in fact, it's totally unrelated to this feature...
The only other option that could solve this problem is this: D7055: Experimental preference to support holding keys to transform, tap to activate the tool

Guys, we really need this. :(

Juanfran Matheu (jfmatheu) planned changes to this revision.Mar 26 2021, 6:51 PM

Closing patch by hoping that the future new brush/tool system under design will make it possible in a generic way (supporting all kind of brushes)