chsh2 / nijiGPen

An add-on of Blender focusing on Grease Pencil
GNU General Public License v3.0
290 stars 13 forks source link

Blender 4.3 & GPv3 Support #48

Closed chsh2 closed 6 months ago

chsh2 commented 7 months ago

This branch and PR aim at supporting Blender 4.3 and Grease Pencil 3.0 (GPv3). Since GPv3 is a major update without backward compatibility, the add-on needs massive changes which may affect the normal usage of current features even for GPv2. Therefore, I will not merge the changes into the main branch until this add-on version works stably for both GPv2 and GPv3.

GPv3 has very different APIs to operate strokes and points compared with GPv2. My solution is to develop a wrapper that "emulates" the behavior of GPv2 APIs. The new module api_router.py is the main work of this branch. It has been proven to work for most existing operators. However, the efficiency and stability still need to be evaluated.


Some remaining issues require support from Grease Pencil developers. I have posted Git issues and forum feedback about them.

Severity Problem Reason Requires Issue Link
High All rigging operators cannot work Weights set by Python or Geometry Nodes do not work for armature GPv3 developers fixing it; correct weight_set APIs #129397
Medium Cannot determine the sequence of Boolean with 3 or more strokes Stroke selection index API is cancelled Use the stroke display order instead
Low Cannot determine the status of a layer in multi-level groups No layer_group.parent_group API provided Expect Blender 4.4 to have this API; ignore this case before that
Low Resample operator is not available Operator not migrated to GPv3 yet Expect Blender 4.4 to have it; remove the shortcut from the panel before that #130616
Low 2D shading does not smooth correctly A bug when smoothing points of a closed stroke GPv3 developers fixing it; generate open strokes to smooth before that #129276
Low Option to use boundary strokes for Smart Fill does not work There is no boundary stroke in GPv3