Age | Commit message (Collapse) | Author |
|
|
|
|
|
Instead to trace the image of the sequence starting in first frame, now it uses the current frame by default.
|
|
|
|
The masking was not working as expected and allowed to paint non selected strokes.
|
|
|
|
To avoid unexpected behavior and desync issues with
stroke and curve data, the interpolation operators are deactivated
in curve edit mode.
|
|
This was related to the changes for Layer and Frame duplication.
|
|
This option allows to duplicate the layer and keyframes but without copying the strokes. This is very handy for the cleanup and paint process.
|
|
Now it's possible to copy only part of the data. This will be used in future operators.
|
|
|
|
Using primitive drawings, the point UV rotation was not initialized.
|
|
The target stroke bounding box was not checked properly and when using layer transform the error was noticeable, but really the error was before the layer transform commit.
|
|
ED_gpencil_stroke_material_editable
|
|
When using grease pencil for drawing Storyboards, it's very common to require a transform of the layers. This transform can be done using the offset modifier, but in some cases, the scene requires a lot of modifiers and makes the file hard to work.
This new feature adds a transforms Location, Rotation and Scale at Layer level, and allows to transform the layer without using a modifier, keeping the scene more clean.
{F9480695}
This feature was suggested by @pepeland after receiving feedback from several artists.
Also, done some code cleanup and rename some functions to get a better naming.
Maniphest Tasks: T83660
Differential Revision: https://developer.blender.org/D9761
|
|
Now the resolution can be reduced to get less details. This is very useful for doing storyboards to get a quick fill of any character.
Following UI review, the name "Resolution" has been changed to "Precision" because is more clear.
Differential Revision: https://developer.blender.org/D10076
|
|
`ED_undo_gpencil_step` only support valid undo step direction, passing
step name here is useless and only add confusion to what works or not.
Undo by step name or step index is fully not supported by GPencil undo
mode currently.
Note that since GPencil undo mode does not seem to ever be used anyway,
this is not an urgent issue in practice, but this needs to be cleaned up
at some point. See also T84703.
|
|
The step direction was confusingly 1 for undo, -1 for redo.
This convention is from 2004 (562d6958cbf646aba31ed92fe4f0e07d1dc495b6).
Use enum for ed_undo.c for better readability.
|
|
Maniphest Tasks: T84362
Differential Revision: https://developer.blender.org/D9983
|
|
- Remove ternary operators when both values are the same.
- Remove break after return.
- Remove redundant NULL checks for code which handles
those cases immediately beforehand.
|
|
Add explanations for cases the header-guard defines are still used.
|
|
Approximately 195 changes of capitalization to conform to MLA title style.
UI labels and property names should use MLA title case, while descriptions
should be capitalized like regular prose, generally with only the start of
a sentence capitalized.
Differential Revision: https://developer.blender.org/D9922
|
|
As now it is using a duplicated frame, the untag must be done before copying the frames.
|
|
Expand abbreviations for words like "Bright" (instead of "Brightness"),
"Premul", "Lib", "Dir", etc.
Differential Revision: https://developer.blender.org/D9862
|
|
Use the BKE_gpencil_stroke_uniform_subdivide function to subdivide strokes
before interpolation. When the target/source stroke is smaller than the other
stroke, it is subdivided until the lengths match. This improves the overall quality
of the interpolation of different sized strokes.
Before/After video:
{F9511779}
Reviewed By: #grease_pencil, antoniov, pepeland, mendio
Differential Revision: https://developer.blender.org/D9839
|
|
|
|
Remove DNA headers, using forward declarations where possible.
Also removed duplicate header, header including it's self
and unnecessary inclusion of libc system headers from BKE header.
|
|
If the destination layer hadn't keyframe, a new keyframe was added and later the merge layer strokes were added, but this could change the animation because the new frame replaced the old drawings of the target layer.
Now, before merge the layer, all keyframes are added in the target layer in order to keep the drawings.
|
|
If the stroke had zero points the pointer returned NULL.
Also replaced for loop by FOREACH macro.
This is a corner case of "empty" strokes without points.
|
|
|
|
When change the order of the stroke using the arrange operator, the arrange was done, but the viewport did not display the result until you refresh the viewport.
|
|
These operators existed since 2.83, but the menu was hidden by error.
Also the operators have been cleanup and make multiframe compatible.
Reviewed By: mendio
Differential Revision: https://developer.blender.org/D9671
|
|
This operators reset the vertex color information of the strokes.
If nothing is selected, all strokes are reset. If any is selected, only selected strokes are reset.
Also added a new menu Paint in Vertex Color mode.
Differential Revision: https://developer.blender.org/D9647
|
|
|
|
The assert was when use segment selection mode.
|
|
|
|
This option joins any stroke with an end near the actual stroke. Now it is not limited to the last stroke, any stroke in the same layer for the actual frame can be joined. The join can join two strokes drawing a third stroke.
If the end and the start of the result stroke are very small, the stroke is changed to be cyclic automatically.
There is a limit distance to join the stroke, if the distance is greater than this value, the strokes are not joined. Actually, a constant, threshold distance is used, but we could expose
as a parameter in the UI in the future.
The tool can be used with freehand drawing or with primitives.
Note: Great part of the patch is just a refactor of the old code to make it accessible and to keep code organized.
Reviewed By: mendio
Maniphest Tasks: T82377
Differential Revision: https://developer.blender.org/D9440
|
|
|
|
|
|
First detect the other selected object, then check it can be written to.
Otherwise the target object could be the first one found when
looping over objects which is random from the user perspective.
Move the type check to the operator, which also checks the data isn't
library data which was being ignored.
|
|
|
|
Differential Revision: https://developer.blender.org/D8660
This patch is the result of the GSoC 2020 "Editing Grease Pencil Strokes
Using Curves" project. It adds a submode to greasepencil edit mode that
allows for the transformation of greasepencil strokes using bezier
curves. More information about the project can be found
here: https://wiki.blender.org/wiki/User:Filedescriptor/GSoC_2020.
|
|
Instead to use the ID of the object, now the parameter is an Enum with Selected object or New.
If use selected mode, the first grease pencil object selected is used. If none of the selected objects is a grease pencil object, a new object is created.
Small cleanup changes to the original patch.
Differential Revision: https://developer.blender.org/D9529
|
|
|
|
|
|
|
|
If the annotation draw operator is used, enable the annotations in the current area.
Before this change, some editors had the annotation flag set to OFF, but this could be solved with a versioning code, but this did not solve the root problem. The user can disable annotation visibility in the overlay or side panel, depending on the editor. If the user uses the annotation tool and this flag is OFF, the annotation is not visible, and this is not correct. With this patch, every time the user uses the tool, the annotation visibility flag is set to ON to ensure the annotation is visible.
This solves the problem of T82273, T79578 and T80294
Maniphest Tasks: T82273
Differential Revision: https://developer.blender.org/D9409
|
|
|
|
The `gps_next` variable had a typo error and was wrongly used as `gps->next`
|
|
The behavior of the incremental snap did not take into account the
relative dimensions of the window, which resulted in a different behavior
if the area height was greater than the width.
|