Custom brush property input slider with shortcuts

The problem

I have noticed a recurring theme in recent suggestions, and many revolve around the fact that PS has a secondary shortcut for brush hardness. As it stands, one of the only ways to control brush properties is to manually adjust them in the brush editor docker, use the quick popup tool, or assign them to relatively hard to control inputs such as pen pressure, pen speed, or tilt.

While it is great that these inputs exist, I believe we can give pen presets unprecedented new depth and control, while also simultaneously fixing the problem that plagues people who move from other software.

I suggest: The custom input slider.
(name pending, please come up with something cooler)

The basic idea

We give users the ability to control, through shortcuts or by manually dragging the slider, a ‘brush settings input’.

image

image

It can be used just like any other input, right alongside things like fuzzy dab or pen pressure.
It can be mapped to a curve, or compound with other inputs like pen pressure, just like the rest.

By giving users the ability to manually control a single input for a brush preset, we give them limitless possibilities for many, many different workflows. Here are just a couple:

  • You’re using a grass brush to paint a row of grass, but now you want to spread the grass blades out and have them dotted over a field. You can now assign a shortcut to control how much scatter the grass has.
  • You’re painting using a grayscale brush. You want to slowly move up in brightness as the parts of your subject get closer to the light source. Now you can assign a shortcut that controls the lightness of your brush.
  • Calligraphers can adjust with a shortcut how thick or thin (ratio) their pen tip is.
  • Artists with stamp brushes can use the secondary shortcut to rotate their brush’s texture left or right
  • Lineworkers and crosshatchers can adjust how much texture shows through their strokes

The possibilities are nearly endless when you consider that multiple brush properties can be assigned to change with the custom slider simultaneously.

Example video

I have put together a video that I hope will show the concept better:

Note: While making this video I explain that this can replace the ‘flow’ slider. I realize now that ‘flow’ is not a basic pen property, so that’s not entirely true. It could, possibly replace the opacity slider. But then there’s the argument of global vs pen preset specific, and whether tying flow/opacity to the custom slider limits its uses.

Where it fits

Right now we have a small handful of sliders available in the main toolbar. This can sit comfortably in that dropdown menu, so that people who wish to use it can assign it to the top just like the opacity or flow slider.
This makes it easily accessible for those who want to manually enter values or drag the slider, rather than use shortcuts.
It can also be shown, or optionally shown, somewhere on the quick popup.
Ideally, it will mainly sit in the background and be used through shortcuts. The entire idea is to speed up the drawing process and prevent unnecessary fiddling with brush preset settings.

The shortcuts

Increase/Decrease value
I think by default shift + [ should decrease, and shift + ] should increase the custom slider. I don’t see these as being used currently, but I may be wrong.

Set custom value to 0 / 100
Some may use this feature as a toggle for something in their brush settings. While they could potentially do this by modifying the curve of that property, I think a shortcut to go to the extremes would be nice. I wouldn’t give it a default shortcut

The future

There are many ways to improve this and extend its usability even further, here are some examples for things to consider for the future is demand is high enough:

Naming slider(s) per-brush
Instead of saying ‘custom’ or whatever name it eventually takes, the custom slider can be named per-brush, and is transferred through the brush preset if someone else downloads it. This allows for brush creators to make custom sliders for their brush, and clearly indicate what the custom slider is used for in that brush preset.

Multiple custom sliders
I don’t think having a ‘custom number of custom sliders’ is entirely doable, but I could be wrong. Instead I’d suggest just upping the number of custom inputs to 2 or 3, for even further brush customization.

Linked or separate custom values for eraser/drawing mode
Users can check a box in a brush preset to unlink the custom value between eraser and brush mode.
This would personally solve a problem I have, in which I enjoy my linework having small texture holes in it, but when I switch to eraser mode, the eraser has holes as well and leaves tiny specks behind.
Having the custom slider control texture intensity, then setting it to ‘0%’ for my eraser would fix this problem.

Two birds one stone

Here are several threads which could potentially be solved by this feature:
https://krita-artists.org/t/rotating-a-brush-by-holding-down-a-modifier-similar-to-shift-for-brush-size/32108
https://krita-artists.org/t/shortcut-to-rotate-brush/43675
https://krita-artists.org/t/shortcut-to-control-brushtip-hardness/44316/12
https://krita-artists.org/t/more-brush-option-slider-options-and-buttons-to-turn-off-pressure-sensitivity/33647
https://krita-artists.org/t/brush-settings-gui/32149

And it even solves the top voted comment on the 5.1RC announcement video

Thank you for your time. While this doesn’t necessarily help a major problem I’m having currently, I hope that it could find its usefulness in the minds of people I’ve seen around the suggestion subforum recently.

7 Likes

So, if I’m understanding this correctly, this would be macro controls in the form of additional sensors? I think that’s a nice idea.

Also, what you’re listing under ‘the future’, I’d consider essential for this feature in order to be really useful. What I’d like to see, is 4 sliders in a docker which optionally can be arranged as 2 x/y controls.

Such a feature could solve a problem that I’m running into all the time: brush variants. Instead of having to save umpteen versions of the same brush with just some small differences, a single preset could cover a whole range of variations.

Of course setting the macros up properly doesn’t make the life of brush makers easier :crazy_face: but would be well worth it imho. The number of presets in some bundles could be drastically reduced, as not every variant needs its own preset. Users, who are uncomfortable with adjusting settings in the brush editor directly, now could dial in the desired brush behaviour/properties with just a few intuitively named controls.

3 Likes

It would be a macro control that is used by the end-user artist to adjust certain parameters of the brush, yes. It would definitely be usable as a way to create variants of brushes without having to save multiple variants.

It would also be great as a way to provide control over the brushes to the end user, even if the end user of the brush isn’t comfortable or knowledgeable enough to go and modify it themselves.

I put the ‘future’ section because I understand development is hard, and I want to make sure the idea isn’t thrown out entirely because I ask too much from the feature. But I do agree that all ‘future’ features would definitely be amazing additions to the idea as a whole, especially for the premade brush preset scene.
It would come at a great time too, shortly after the rework of the resource management. Perhaps it could add a whole new dimension of originality and customization to downloaded brushes in Krita.

1 Like

My thoughts exactly! It seems so obvious, that I almost ask myself, why no one has had the idea already - but I’m grateful for everything we’ve got so far.

Also, I think going from a single macro to say 4 with customizable labels isn’t such a huge step in terms of development. But we’ll see what the devs will have to say - if at all…

1 Like

This is a neat idea. I think the opacity and flow sliders control the strength of the parameter here do you mean the same? I am a bit confused about the “custom” being listed inside the sensor list.

Yes, so sensors are great to allow the brush to change depending on external inputs. Things like speed or pen pressure. But why not manual inputs? Why not have a ‘sensor’ that’s just a slider that we can slide? Or multiple sliders?

We have all of these amazing ways to customize brushes, but no way for the end user to customize them once they’re made (Without making a new preset entirely). Or to apply shortcuts to them.

The idea is that ‘custom’ can be used exactly like pen pressure, but instead of the input being the pen, it’s just a slider/sliders with attached shortcuts. I can’t imagine it’d be that difficult on the back end. What I imagine being difficult would be allowing brush creators the ability to define and name their own inputs that are saved in the brush itself. But we’d have to wait on a dev’s input for that. I’ll make more examples with multiple sliders in an x/y graph like what @dreamkeeper was talking about, since I think that’d be pretty cool as well.

2 Likes

Okay so you are saying that there should be a strength slider for individual sensors? Assuming you want to affect the parameters won’t the strength slider at the top being shown in the toolbar help?

I am still confused about how having a slider for sensors and not the parameters themselves will help. Do you want to limit the input coming from pen pressure or other sensors? Isn’t it already possible from the strength slider at the top, Will showing this strength slider in the drop-down be enough?

The idea is that the ‘custom’ slider is itself a sensor input. I’ll walk through an example:

  1. The user drags the custom slider, or uses shortcuts to set it to “70%”
  2. because the hue property is set to change based on the custom input, Krita calculates how it is affected by it. it does this by going 70% from the left of the graph, then up until it ‘hits’ the curve.
  3. In this case, 70% from the left is about +80° on the hue slider.
  4. The brush is now shifted +80° in hue because the artist changed the custom slider.

This same principle can be used on any property of a brush that can accept inputs.

1 Like

Okay so this will be in addition to the other sensors which are in effect? If not then how is this different than sliding the strength slider at the top of that particular parameter ( that is hue here). How will a slider handle the graph say my graph has a curve, will the slider move along the curve to get the values?

Yes, it is a sensor, but with manual input instead of random (fuzzy dab) or physical (pen pressure)

Hue does not have a strength slider. The slider at the top of the pen settings is global for all inputs and it defines the opacity of the effect. This suggestion neither conflicts with nor replaces the global pen input strength slider.

It will handle the values the same way it handles the values for every other input. If there is a curve in the graph, there will be a curve in the output for that property. The slider itself remains unaffected as it’s an input, and the graph is a tool which affects the output.

3 Likes

Just to clarify: by x/y control I mean a little puck that can be dragged around within a square, so 2 parameters can be adjusted simultaniously - left/right for the the 1st parameter/slider and up/down for the 2nd. Kinda like a joystick…

Yeah I pictured it pretty clearly when you first mentioned x/y, I think it’s a great idea. I just used the word graph because it’d have the two axis, for instance ‘roughness’ and ‘ink amount’ and it kind of resembles a graph.

Ah, OK. It was a pretty obvious idea for me, as I’m into electronic music, and such controls are quite common on synthesizers etc. The same goes for macro controls in general.

1 Like

I’ve updated the OP with a list of previous feature requests which could be solved with this feature.

@z01ks, @RPictures, @Yuri_B, @TheTwo, @Hologram

Do you think this addition could solve your use case?

The name of the custom sensor can be “manual input” or something like that. Although it is not related to the sensors as in value for it is not coming from the tablet, but I guess value coming from the keyboard or mouse combo is fair enough for it to be included in the sensor list.

1 Like

Now that’s just genius! Not only would fit one of my requests but it’s much more complete and useful.
I am not quite sure it would be faster than my double axis control but it would certainly be a step up, not having to dive in the brush settings everytime.

The request mention shortcuts and it may completely solve my proposition if it could be integrated in the shift+drag. I kind of doubt it would be that simple but I would accept any shortcut to hardness since we don’t have any at moment.

I would call it a neat solution to lots if stuff and much more but a partial solution to mine depending on the shortcuts available to customize.

It would be rad to see it paired with other ‘modifier_key+double axis drag’ where you could assign which sliders are controlled by which direction.

Imagine you could shif+drag and control 2 sliders then Ctrl+drag and control another 2.
That would be the main four controls most used in 2 very compact shortcuts! And you would see the values changing on the sliders to give you additional feedback.

2 Likes

The thing I am worried about is that if you add an additional sensor that you hotkey, it messes with all brushes. I like how you can have control for each brush, but that comes with the downside of having to spend a lot of time to customise existing brushes.

Can’t you use the strength value instead? At least that doesn’t affect the relative values of other sensors that are in use. The custom sensir would add/ reduce or multiply values, rather than increasing/ decreasing their overall combined result more linearly (which strength does). If Hue doesn’t have a strength value, maybe it should get one. So adjust for the exception, rather than for the most common one.

So if I understand this correctly, you map this sensor to one particular hotkey per brush.

How would you incorporate this then?

1 Like

Also, when you are assigning the parameters to the sliders (since you mentioned more than one per slider), a pop up with some check boxes and an x y graph could appear.
In the check box you could determine if the parameter would increase or decrease a value.
So you could make a slider that decrease one thing but increased another at the same time.
And in the graphic you could set a curve to determine how the sliders would control parameter.
Like that curve adjustment where you change from RGBa/red/…/…
A combo pop up to customize the slider. Using same filter design structure already there.

1 Like

Yes, it could potentionally speed up my journey and I’m so glad to you for listening us and taking part of your time for this “lifechanger” to happen. Today I was feeling a bit depressed about all the mini-failures that happened around my life and I was starting to think that no matter how much I shout, no one was going to hear me…

But now I know that there are good people in this world that I can rely on them, I thank you very much good man or woman, thanks to you I can sleep fine tonight.

1 Like

That would be handled in the brush editor by activating the custom sensor(s) and setting up their respective curves. Exactly the same as setting e.g. the pressure control of parameters - except, that the input value isn’t pen pressure but the custom slider.

2 Likes