NijiGPen - Grease Pencil 2D Boolean, conversion to meshes and other features

demo_gif1

NijiGPen is an add-on that brings more features to Grease Pencil. I would like to use Blender more for graphic design and 2D illustration/animation. Therefore, I implemented some new 2D-shape-based functions, taking some other design software as references. Current features include:

  • 2D Boolean:
    • Union, difference and intersection of multiple GPencil strokes
  • 2D Offset:
    • Fill Mode: Dilation/erosion of a stroke without self-overlapping
    • Line Mode: Turn lines into shapes
    • Corner Mode: Bevel-like effects
  • Mesh Generation:
    • Generate 3D structures from GPencil strokes in various styles
  • Clipboard Pasting:
    • Copy-and-paste of SVG codes with hole processing
    • Generate palette from XML codes of Adobe Color and other tools

Codes are available at:

And there is also a full demo video:

8 Likes

This addon has some great utilities, thank you!

At first it was constantly crashing and had no idea why until I re-read the instructions and notice it only works on the X/Y axes… I keep using the Z/Y axe and since there would be basically nothing to work on blender would crash. Let this be a warning for people that don’t follow directions, lol

1 Like

really helpful bro

Thank you for your feedback! You make me realize that there is a bug which may lead to crash for some corner cases even when operating in XZ-plane. I will fix it soon.

I think I will also make the add-on work with all three axes in future versions.

2 Likes

at 0:15 it looks like normal painting , like in any painting program with a flat round brush and then cconverted to a gp plane

which version of blender ? i always get error messages when trying to convert to mesh

on boolean selected:

Python: Traceback (most recent call last):
  File "C:\Users\alexm\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\nijigp\operator_polygon.py", line 276, in execute
    for j,stroke in enumerate(layer.active_frame.strokes):
AttributeError: 'NoneType' object has no attribute 'strokes'

on converting to mesh:

Python: Traceback (most recent call last):
  File "C:\Users\alexm\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\nijigp\operator_mesh.py", line 104, in execute
    for j,stroke in enumerate(layer.active_frame.strokes):
AttributeError: 'NoneType' object has no attribute 'strokes'

ive seen the same error in another gp addon recently but i cant remember which one

Currently, I can only focus on stable Blender versions. (I am using 3.0.0. and 3.2.1 myself.) Thank you for the feedback. I will add this statement to the GitHub page.

For this specific issue, I tried to fix it and published v0.1.1 available at:

But I cannot guarantee there are no other problems with alpha or beta versions of Blender. For example, the Blender SVG import module is under some changes in 3.4, so it is very likely that SVG-related operators of this add-on will not work.

1 Like