frankly it seems like it solves scenerio 2? Sure, it only works with line-based assistants, but that’s where the problem was, with perspective, right? See this:
(Sure, the preview line is a tiny bit invisible, when it is covered with preview line from the assistants, but I’m sure there are some ways to help that).
What do you think?
Btw of course it isn’t so slow, it’s instant when you finish the line and it changes direction also instantly, it’s just that I wanted to show the painted line to make sure you see that it changes the direction, and the painted line has some significant delay compared to the preview line which is not very visible in this situation. (And recording is also a bit laggy).
Looks good @tiar! So if I understand you correctly, if you use the line tool instead of drawing a line with the brush, Krita changes the line direction to where you move the cursor to? So if we want to do this, we have to use the line tool rather than the brush?
I haven’t studied a lot of other software for a very long time, but I remembered I saw some Sketchbook Pro videos where their assistants felt a lot more user-friendly. Here’s a link to a presentation about the tools Sketchbook Pro Tutorial Part 1 - YouTube
With that said I like that Krita keeps track of all your assistants and the above idea to link them to layers, but one thing I’d probably change is to have the assistant editing panel available in brush mode as well or maybe bring it up with a modifier while painting so you don’t have to switch the tools.
scenario 1:
I’d keep the current behavior and the only thing I’d change is to have sensible default shortcuts. Shortcuts I’d say pretty much single-handedly solve this scenario. In my case, I use assistants from time to time and I have this workflow: W (switch to assistants) → add whatever spline etc. → B (switch to brush) → Shift + Q (toggle Snap to Assistants) and this works quite fast in practice.
scenario 2:
In case the assistant tool has a hard time figuring out the direction/vanishing point/axis, I’d go with something like Blender pie menu (while drawing, so with the brush tool active) where you quickly bring it up with Tab (or some other key) and pick an option.
As for general editing, I’d say we need scaling and rotating, not just translation. For example in Sketchbook Pro, the ellipse tool is so much more intuitive because of these controls.
Yes, that’s how Medibang assistants work, too (roughly). However there is the issue that in both of those programs the assistants are somewhat temporary, you have only one assistant active at a time and they are not remembered. This is good for some cases but not for all. For example if you want accurate perspective and you want to save the file and return to it next day, you’ll have to adjust it again. On the other hand, rulers like that are useful.
If someone make a UX design for incorporating this kind of temporary rulers behaviour with the existing assistants in Krita (like, how it will all work together without confusing the user that there are two types of rulers etc.). I’d need some specific details, step by step instructions for example. Would there be any buttons, where would they be, which assistants could be created in this temporary way, how to add them, how to remove them, etc.
Yeah that’s why I prefer the way Krita handles the assistants as is. The most non-intuitive part is the lack of rotation and scale. Translation work perfect, as expected, but to fiddle with the controls all the time is a big drawback, especially for the ellipses.
I’d wager that just adding scale & rotation and keeping everything else the same would improve the workflow quite a bit.
I think that it could be a toolbar thing, just like in Sketchbook. I think it is indeed only useful for certain assistants. If you enable one of the temporary assistants, it’ll disable all the other temporary assistants and regular assistants (just like enabling one of the brush smoothing presets).
That would give plenty of feedback that such an assistant is enabled. It can’t be a tool either, because it has to be a sub-mode for the brush tool (to work like Sketchbook).
I think that you may be able to increase the toolbar real estate with the blend modes:
As for the ones that would be viable for temporary assistants:
2 Point Perspective
Concentric Ellipse
Ellipse
Fish Eye Point
Infinite Ruler/ Parallel Ruler/ Ruler
Perspective
Perspective Ellipse > I think it could be useful (haven’t yet used it myself)
Spline
Vanishing Point
I made some rough icons, I added an exclamation mark and dashed circle to indicate that these assistants would be temporary:
Other options like “Limit assistant to area” would work exactly the same as they are right now. The option would appear in the Tool Options when relevant.
In my concept, there wouldn’t be any “Assistant Tool”, but instead they’d be split into individual tools grouped together like in the picture.
We click on a tool and relevant options appear in the Tool Options docker.
I was thinking that a default assistant gets created as soon as we click the assistant tool button and then we manipulate it, just like when adding new objects in Blender. But if there are options in the Tool Options docker that change the behavior maybe it’s better to click on an Assistant Tool → adjust Tool Options if relevant → click on the canvas to start creating it. Exactly like the current behavior. Once the assistant gets created the tool toggles to the Brush tool or the previously used tool - Optional.
The assistant is created with controls visible so we can immediately adjust it. These controls are visible no matter the tool we currently have selected in the Toolbox docker. The pointer changes accordingly on hovering relevant controls. When we use the tool from the Toolbox instead of manipulating the controls on the assistant, the controls hide from view. We bring back the controls with a modifier key when the mouse pointer is placed over an assistant, just like we currently use R for picking layers except we don’t need the click in this case.
Repeat from 1. to create new assistants.
Global options would maybe appear in the Right-Click panel and maybe a new docker.
Some terms:
Cone of Vision=COV
Horizon Line=HL
Vanishing Point=VP
I feel like krita allows more than 3 VPs great, but manually aligning those VPs to HL is a nightmare.
Aligning VPs to HL is too slow, because there is no function to snap to HL.
Suppose I want to draw a complex scene graph (requires more than 3vp.)
I can’t quickly align multiple VPs to HL, I can only manually align them slowly,
For example the picture below.
This is what I took from my teaching book on Learning Perspective.
This picture can be a good illustration of the situation greater than 3vp.
So is it possible to add HL? And allow VP can be adsorbed to HL?
I also want something like COV.
I haven’t seen a linear perspective tool with COV in any painting software.
I know about COVs etc. from instructable books on linear perspective, but they don’t exist in any painting software’s linear perspective tools.
There are many other such situations, which are available in the linear perspective teaching books, but the linear perspective function of the painting software does not provide.
Even some software (such as sai2) omit the linear perspective as 1VP, 2VP, 3VP to distinguish, which is not rigorous. This approach is also difficult to apply to the complex scene graphs I mentioned above.
I edited the previous post and added some terminology explanations.
If you want to learn more about linear perspective, I recommend the English book How To Draw.
I don’t know if there is a better linear perspective book in English, in fact I mainly rely on a Chinese linear perspective book 《中国艺术教育大系_美术卷_透视》 and this “How To Draw” to learn linear perspective.
Lazy Nezumi Pro’s link talks about its linear perspective function, and some of its linear perspective functions are really good.
I didn’t mean to use that link to explain the terminology, I just forgot to add the terminology explanation earlier.
Thanks for your explanation of this abbreviation, so even an old geezer like me can understand it now!
And now (again) my beloved off-topic:
I just did not manage to fathom this abbreviation, about perspective drawing, vanishing points, as well as their representation and everything that belongs to it, I do not have to learn more.
I did a professional training as a technical draftsman, and later I did another training as a surveyor in engineering surveying and I worked in land surveying and worked out plans of several small towns, completely or in parts, together with my teams. If I can’t get something constructed in Krita, I will do it by CAD and import it, I am a pragmatist.
And even in my first training as a carpenter, technical drawing was part of the curriculum, although not quite as extreme as in the other two professions. Typical for Germany, every profession in which you later want to call yourself a qualified worker requires a vocational training of usually three years, some trainings last even longer.
Then once shortcut is activated, the assistant tool is activated to let you create a single assistant
Once assistant is created, it’s still possible to modify it (move nodes to adjust) but as the user click on canvas, exit automatically the assistant tool and go back to previous used tool state
This allows each user to define the best shortcut for their own need and the assistants they use the most, and also let them to add a specific button in toolbar if needed
Add a shortcut “Quick assistant edit”
While key is pressed, activate assistant tool to let user modify nodes position
Once key is released, go back to previous used tool state
I still think it should be possible to modify node positions while having the brush tool active, so I am thinking about a deadzone in which you cannot paint as you will be able to manipulate the nodes in this area. In that case, I would want to use a shortcut to lock/ unlock an assistant so you can paibt within the deadzone. I think this method requires the leat amount if user interaction.
I think making assistants like a layer than can be moved and grouped in folders would solve a lot of problems. If there was a way to snap vanishing points to the horizon line that would help a lot. I’m coming to Krita from CSP so this is one of the biggest things I’m noticing could be improved in Krita. This way if you have an object rotated relative to the vanishing points already placed on the board it is possible to keep them separate, yet toggle them off and on as needed.