Hi, thanks for working on this. Most of it looks really cool.
Will there be more documentation on how to use the attribute system to manipulate points and strokes in python? The single sentence in the migration guide that just links to the general docs for attributes really leaves something to be desired. I had to read this post and do some investigation on my own in blender to figure it out, and I’m still not even sure that I have it right.
It seems like now if I want to get point data from a specific stroke, I have to use an index offset that I get from an array based on the stroke index and add the stroke point index to that to get the overall point index and then use that to access different arrays for each property I need to modify. And then if I want to know how many points are in a stroke, I think I have to subtract the current offset from the next stroke’s offset unless the current stroke is the last stroke in which case I’ll have to subtract it from the total number of points?
I trust it’s for good reason and I just want to make sure that there aren’t better ways of doing things. Additional documentation would be nice for:
All attributes the drawing has and whether they correspond to strokes or points
Examples for how to do common tasks with strokes and points
If this already exists, I apologize but I haven’t seen it. Thanks
Hi! This has been broad up by others as well and I think we should definitely have a better resource with better examples. I just haven’t had the time to get to this yet.
In one of the previous module meetings we were thinking about where this resource should go.
Currently, I think the best option might be to add examples here: GreasePencilDrawing(bpy_struct) - Blender Python API
We have this for other bpy.types as well where there are examples at the top of the page. There are some other options that were discussed, but I don’t think they are as good.
Here’s a list of what we could put there:
What is the name of the attribute that does X?
How do I get the set of selected strokes using the attributes API?
How can I set the color of some set of strokes?
How can I add/remove points/strokes?
etc. (let me know if you can come up with other good examples!)
Ideally we just have a handful of very common examples.
Hello , i have some feedback about a function that was changed in grease pencil 3.
It has to do with how locked layers works.
This also effects the “auto lock inactive layers” setting too.
In grease pencil 2 you could move strokes to layers even if they’re locked. But in grease pencil 3 that was changed so the layers work like " nothing in nothing out".
At first i reported it as a bug, but i’ve come to find out that this is just a change. I think this adds a unnecessary pain point to users who always have on " auto lock in active layers ". They’ll have to either not use auto lock , take the extra steps to unlock layers before moving stokes, or toggle it on and off. I think the utility of the old functionality out weights the logic. And isn’t that what ux is all about?
Moving stokes to layers is a very specific thing. You can’t just do it by accident. You press M , a layer panel pops up to show which layer, and you click it. If you accidently click any where else the box goes away and nothing happens. So it’s very hard to mess up.
The old behavior is useful when making complex rigs with multiple parts. Solid strokes/fills that are shapes and have to be over other shapes. Alot of times you’ll need to move stokes around and try things out. Think about what shape go’s over what in perspective.
I feel like The old behavior has existed all the way up until now without problems. I haven’t herd any grumblings about it. If it wasn’t broken , and nothing is improved , should it be change? At the least could we have the option for the old behavior?
In current version when you fill and have visual aids checkbox off, it will still ask me to confirm the gap closure reach when it wasn’t like that previously.
@filedescriptor Hi Falk, I’m new to this forum and format so forgive me if this is the wrong place to ask this . Thanks for all the amazing work on gp3.
Regarding the screen space stroke change. I saw your link to the documentation ’ Screen Space Stroke Thickness¶
In Blender 4.3, the Screen Space stroke thickness option has been removed from the Grease Pencil object-data properties. In order to get the same effect, a geometry nodes modifier can be used to scale the points procedurally to match a specific thickness in pixels in the render.
Go to File>Append navigate to the file and append the “Screen Space Thickness” node group into your file, then add a Geometry Nodes modifier to the Grease Pencil object and select the “Screen Space Thickness” group from the node group selector. Enter the Camera Data information of the camera to be used. Optionally, it’s also possible to add drivers to these fields to make sure they match the settings of the scene and camera.’
Is this the plan permanently, or is it planned that the screen space will eventually be made to act as it did before without having to do this?
The problem I have with the new ‘view’ mode, while it is a very cool and interesting function, is that the use case of screen space was knowing that the lines would all be the same thickness (relative to camera/view)we chose, regardless of how zoomed in we went to draw. The new view mode creates different size strokes, depending on how zoomed in we are.Or to put it another way, the same relative to screen at the time of drawing, but not relative to the other strokes. So If Im cleaning up, and I just want to zoom in for finer control, then now I end up with varying line thickness when I zoom back out.
It’s a great mode, but feels like a 3rd option to have and still have a toggle for the old screen space way. If the only way to achieve this as the above, could a toggle button ‘screen’ auto add that node tree?
thanks for all the amazing work!
I’m running into a problem with multiframe editing in 4.3.0. Changes made while in Edit mode seem to be ignoring Multiframe falloff, instead all changes are made in full to all selected frames. Is this a bug, or new expected behavior? If it’s the latter, how can I use the falloff chart while in Edit mode?
I’m attaching a pair of videos, one with the expected behavior in 4.2.1, and one with the new behavior in 4.3.0.
In the second video I also tried to show that the falloff chart seems to be working like I’d expect while in sculpt mode. Bug?
Any plans to make this type of transparency work with GP3? I just selected the airbrush pen and draw in the viewport. As you can see the brush stroke fully covers the grid
What happened to the Simplify edit option in grease pencil? In previous versions, while in the edit mode, using Simplify (right below subdivide etc.) would remove some points, meaning it would simplify by steps. Now that function basically removes 99% of the points and leaves you with like 2 points connected in a straight line? Meaning if you have any curve or angle with let’s say 10+ points, it basically removes all but 2, making it a line instead of a curve. And this happens even with 50+ points. Why? Why is there no “fixed simplify”? Or how can I set how much it should simplify it? Also why is there no way to simplify just a part of the stroke, like you can do with subdivide? The whole program also freezes so much now - on viewport shading change, editing…
I’ll bring this up in the module meeting to ask for more feedback on this.
To me, the core problem is that artists use auto-lock, because many tools work on all layers by default. IMHO we should find better solutions to how tools affect layers and avoid “quick fix” solutions like adding exceptions to when a locked layer’s drawing can be changed.
If you mean “will this come back as an object-data setting?” then the answer is likely no.
But I think it makes a lot of sense to have this as a built-in modifier (using a node-group asset in an essentials library). Once we have the means to ship these node group assets, we can do it with this one as well. This modifier would show up in the menus with the other modifiers.
The brush size mode is not meant as a replacement for the screen space thickness setting. It’s just a new brush size option.
The idea is that you use the screen space thickness modifier with a brush using the scene size setting (the default one). Then the brush size is e.g. 1 cm and the modifier will convert e.g. 1 cm into 1 px in screen space.
The fact that the UI still shows the brush in scene space is not ideal, but that’s a UI issue that can be solved at a later stage.
Well i don’t know about other artist but i use autolock because it makes GP layers function like a raster art program’s layers would, But with the added benefit of being able to send strokes to other layers. I always thought this was meant to function that way. Purposely added to help the user. In this case i feel like there’s no extra benefit to making layers fully sealed.
I guess it’s a exception when you think about the logic of locked layers, But in practice being able to effect locked layers in certain instances helps the user.
Does strict logic matter more than useful functionality? Especially in cases where the logic doesn’t actually help the user?
I didn’t think it was a “quick fix.” In my mind i always thought it was some sort of “Move Operation” that pushed strokes to the layer that you selected. I didn’t even question it. I thought it just ignored locked layers for my benefit, and moved the strokes. Or unlocked all layer and locked it back after my selection.
Thanks for hearing me out, and taking this under consideration
Thanks Falk. I look forward to seeing that modifier solution at a later date. I barely used screen space option personally, but I know alot of people who do, mainly when parenting GP to camera to draw in front of camera as it would provide very consistent line thickness.
Cheers
I am just getting around to trying out all the cool things you can now do with geonodes and grease pencil. Kudos to the devs for the great work!
I have been playing with generating a grease pencil mograph animation just with nodes, and it is a very promising workflow to emulate a AE or Cavalry style animation.
The main issue I am running into is for fills with compound letters like a “b” or “d”. The fill ignores the inner shape.
@filedescriptor is there any workaround for this? Would also love to know how you can set stroke or fill color in geonodes?
Unfortunately, Grease Pencil does not support holes in fills (yet). The workaround would be to create a holdout material and assign it to the hole stroke.
Regarding color: You can manually write to the vertex_color (point domain) and fill_color + fill_opacity (curve domain) to overwrite the base material color. E.g. using the Set Named Attribute node.