Commit Graph

1693 Commits

Author SHA1 Message Date
Campbell Barton
9bd2e3554a Merge branch 'blender-v4.3-release' 2024-10-16 15:07:33 +11:00
Campbell Barton
c3b067dc80 Cleanup: single/double quote use in scripts 2024-10-16 14:45:08 +11:00
Sean Kim
3b87673eb8 Merge branch 'blender-v4.3-release' 2024-10-15 16:19:40 -07:00
Sean Kim
f5e660f5f0 Fix #129076: Missing headers in Weight Paint
Introduced in 79ae0f86da

Pull Request: https://projects.blender.org/blender/blender/pulls/129082
2024-10-16 01:10:33 +02:00
Sybren A. Stüvel
43d7558e5b Anim: Remove 'Slotted Actions' experimental flag
This commit takes the 'Slotted Actions' out of the experimental phase.
As a result:

- All newly created Actions will be slotted Actions.
- Legacy Actions loaded from disk will be versioned to slotted Actions.
- The new Python API for slots, layers, strips, and channel bags is
  available.
- The legacy Python API for accessing F-Curves and Action Groups is
  still available, and will operate on the F-Curves/Groups for the first
  slot only.
- Creating an Action by keying (via the UI, operators, or the
  `rna_struct.keyframe_insert` function) will try and share Actions
  between related data-blocks. See !126655 for more info about this.
- Assigning an Action to a data-block will auto-assign a suitable Action
  Slot. The logic for this is described below. However, There are cases
  where this does _not_ automatically assign a slot, and thus the Action
  will effectively _not_ animate the data-block. Effort has been spent
  to make Action selection work both reliably for Blender users as well
  as keep the behaviour the same for Python scripts. Where these two
  goals did not converge, reliability and understandability for users
  was prioritised.

Auto-selection of the Action Slot upon assigning the Action works as
follows. The first rule to find a slot wins.

1. The data-block remembers the slot name that was last assigned. If the
    newly assigned Action has a slot with that name, it is chosen.
2. If the Action has a slot with the same name as the data-block, it is
    chosen.
3. If the Action has only one slot, and it has never been assigned to
    anything, it is chosen.
4. If the Action is assigned to an NLA strip or an Action constraint,
    and the Action has a single slot, and that slot has a suitable ID
    type, it is chosen.

This last step is what I was referring to with "Where these two goals
did not converge, reliability and understandability for users was
prioritised." For regular Action assignments (like via the Action
selectors in the Properties editor) this rule doesn't apply, even though
with legacy Actions the final state ("it is animated by this Action")
differs from the final state with slotted Actions ("it has no slot so is
not animated"). This is done to support the following workflow:

- Create an Action by animating Cube.
- In order to animate Suzanne with that same Action, assign the Action
  to Suzanne.
- Start keying Suzanne. This auto-creates and auto-assigns a new slot
  for Suzanne.

If rule 4. above would apply in this case, the 2nd step would
automatically select the Cube slot for Suzanne as well, which would
immediately overwrite Suzanne's properties with the Cube animation.

Technically, this commit:
- removes the `WITH_ANIM_BAKLAVA` build flag,
- removes the `use_animation_baklava` experimental flag in preferences,
- updates the code to properly deal with the fact that empty Actions are
  now always considered slotted/layered Actions (instead of that relying
  on the user preference).

Note that 'slotted Actions' and 'layered Actions' are the exact same
thing, just focusing on different aspects (slot & layers) of the new
data model.

The "Baklava phase 1" assumptions are still asserted. This means that:
- an Action can have zero or one layer,
- that layer can have zero or one strip,
- that strip must be of type 'keyframe' and be infinite with zero
  offset.

The code to handle legacy Actions is NOT removed in this commit. It will
be removed later. For now it's likely better to keep it around as
reference to the old behaviour in order to aid in some inevitable
bugfixing.

Ref: #120406
2024-10-15 16:29:53 +02:00
Damien Picard
5715693a97 UI: Use title case for Grease Pencil, Freestyle, Line Art
This was already the case for the vast majority of occurrences, and is
recommended by the human interface guideline's writing style.

Pull Request: https://projects.blender.org/blender/blender/pulls/129000
2024-10-15 13:00:47 +02:00
Sergey Sharybin
91eb980891 Merge branch 'blender-v4.3-release' 2024-10-15 11:42:48 +02:00
Nika Kutsniashvili
f909bf2b13 Fix: GPv3: Add missing keymaps
Adds missing keymaps in Grease Pencil modes. Two menus are also added which are needed to be called by keymaps to match GPv2.

**Paint Mode**
| Keymap | Operator |
| -------- | -------- |
| Shift I     | Insert Blank Keyframe |
| Alt I | Delete Animation (menu) |
| Shift Delete | Delete Active Keyframes (all layers) |
| Shift Ctrl M | Merge Layers |

**Edit Mode**
| Keymap | Operator |
| -------- | -------- |
| Shift I | Insert Blank Keyframe |
| Alt I | Delete Animation (menu) |
| Shift Ctrl M | Merge Layers |
| Shift Q | Edit Lines (overlay toggle) |
| Shift Alt Q | Edit Lines Multi-Frame (overlay toggle) |
| Shift G | Vertex Groups |

**Sculpt Mode**
| Keymap | Operator |
| -------- | -------- |
| I | Animation (menu) |
| Shift I | Insert Blank Keyframe |
| Alt I | Delete Animation (menu) |
| Shift Delete | Delete Active Keyframes (all layers) |
| Shift Ctrl M | Merge Layers |
| Shift Q | Edit Lines (overlay toggle) |
| Shift Alt Q | Edit Lines Multi-Frame (overlay toggle) |
| Y | Active Layer |
| U | Active Material |
| Ctrl C | Copy Strokes |
| Ctrl V | Paste Strokes |
| Shift Ctrl V | Paste Strokes (back) |
| Shift Alt A | Automasking (menu) |

**Weight Paint and Vertex Paint Modes**
| Keymap | Operator |
| -------- | -------- |
| I | Animation (menu) |
| Shift I | Insert Blank Keyframe |
| Alt I | Delete Animation (menu) |
| Shift Delete | Delete Active Keyframes (all layers) |
| Shift Ctrl M | Merge Layers |
| Shift Q | Edit Lines (overlay toggle) |
| Shift Alt Q | Edit Lines Multi-Frame (overlay toggle) |
| Y | Active Layer |

Pull Request: https://projects.blender.org/blender/blender/pulls/128705
2024-10-15 11:35:57 +02:00
Sybren A. Stüvel
975b5f4533 Anim: invert Action editor 'Show All Slots' filter flag meaning
In the Action editor header, change the "Show All Slots" filter to
become "Only Show Slot of Active Object". The default state remains
"off".

This means that any new/upgraded Action editor will show all slots in
the Action by default. I think this is a good idea, especially since
cb6ed12ef1 makes related data-blocks share
the same Action, and thus the Action will have a mixture of Object and
non-Object animation. I suspect that it'll help in understanding the new
functionality of slotted Actions when they are most visible, i.e. when
the multiple slots are all shown.

Since slotted Actions are so new, I don't think we need to add
versioning code to accomodate this change.

Pull Request: https://projects.blender.org/blender/blender/pulls/129011
2024-10-14 19:21:36 +02:00
Sean Kim
6ff33b7e92 Merge branch 'blender-v4.3-release' 2024-10-11 15:25:07 -07:00
Julian Eisel
d177388979 Sculpt/Paint: Tag brushes for unsaved changes for UI indication
Part of the brush assets project followups, see #116337.

Based on feedback, it seems important to indicate to the user when a brush has
unsaved changes.

There's no reliable updating mechanism we can use or hook into here, except for
RNA "update" callbacks. Brush data gets changed in many places in code, the only
way to do this seems manual tagging every time a brush property gets changed.
This PR introduces `BKE_brush_tag_unsaved_changes()` for this. I spent some time
going through all brush properties to ensure changes call the tagging function.

A known limitation with this will be that changes to dependencies won't be
indicated in the brush. E.g. Changing the texture attached to a brush won't make
the brush be indicated as changed.

The UI to indicate the changed brushes is being discussed still, see #128846.

Pull Request: https://projects.blender.org/blender/blender/pulls/128845
2024-10-11 22:08:14 +02:00
Aras Pranckevicius
7f48c931a4 Cleanup: format 2024-10-11 12:07:09 +03:00
Pratik Borhade
0b18eaf43c FIx: GPv3: Segment context menu missing
Use points context menu for segments in edit mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/128743
2024-10-11 10:05:22 +02:00
Clément Foucault
5b70445460 Merge branch 'blender-v4.3-release'
# Conflicts:
#	scripts/addons_core/bl_pkg/bl_extension_ops.py
2024-10-10 16:21:51 +02:00
Sybren A. Stüvel
a564e678f0 Fix #128797: Custom property Data-Block Type only has Object ID Type
In the WindowManager code, use `bpy.types.ID.id_type` enum property to
get all valid ID types, instead of using a property on the `Action`
type.

Pull Request: https://projects.blender.org/blender/blender/pulls/128834
2024-10-10 14:33:31 +02:00
Campbell Barton
de0cfcba67 Merge branch 'blender-v4.3-release' 2024-10-10 12:19:47 +11:00
Germano Cavalcante
75ffda39b2 Fix #126665: Reintroduce 'Absolute Grid Snap' (now 'Absolute Increment Snap')
The 'Absolute Grid Snap' feature remains useful even alongside
'Snap to Grid', so this option is being reintroduced, partially
reverting commit f0479e915f.

Pull Request: https://projects.blender.org/blender/blender/pulls/128135
2024-10-09 22:52:28 +02:00
Philipp Oeser
866f7d7ff0 Merge branch 'blender-v4.3-release' 2024-10-09 16:10:37 +02:00
Philipp Oeser
ee3fdf4099 Fix: curves editmode operators available in pointcloud editmode
Poincloud editmode support was added in f89b32382a.
Then fd9d22ba57 added geonode operator support.
But 01ee34ebd1 & 6c25c66194 added operators not meant for
pointclouds.

To resolve, check modes more carefully.

Pull Request: https://projects.blender.org/blender/blender/pulls/128794
2024-10-09 16:10:06 +02:00
Bastien Montagne
2b72cccc85 Merge branch 'blender-v4.3-release' 2024-10-09 15:59:01 +02:00
Bastien Montagne
e2705a432a Fix #128767: Regression: Batch Rename failed to rename bones.
Regression from 8c3a3bb9a3, did not realize all items were not
necessarily actual IDs.
2024-10-09 15:57:19 +02:00
Philipp Oeser
927769899b Merge branch 'blender-v4.3-release' 2024-10-09 13:02:49 +02:00
Philipp Oeser
3b9a07d49a Fix #128746: SequenceCache modifier not available in dropdown for Curves
In a Curves (not Curve) object, the MeshSequenceCache modifier is not
available from the "Add Modifier" dropdown.

However, the Alembic importer adds such a modifier onto the Curves
objects it creates. It is also possible to transfer such a modifier from
another object, regardless of its type.
Thus, this seems not to be an issue of compatibility of the modifier
with the Curves object type, but an UI/UX oversight.

`BKE_object_support_modifier_type_check` already has a correct check for
this, so just adding CURVES support to the appropriate menu.

Same is true for the POINTCLOUD type, so adding that as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/128756
2024-10-09 13:02:15 +02:00
Lukas Tönne
ab75dc35ea Merge branch 'blender-v4.3-release' 2024-10-09 10:28:39 +02:00
Lukas Tönne
5c57e24fea Cleanup: GPv3: Remove unused BKE functions from GPv2
Removes unused GPv2 functions in blenkernel.

Notes:
-  Functions for layer masks are still in use, but annotations never
  have layer masks in the first place. Would be good to remove the data
  structures so we can remove the functions too.
- Some multi-frame edit functions are also still nominally used, but
multi-frame editing is not an active feature for annotations. This
  should also be removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/128709
2024-10-09 10:27:45 +02:00
Laurynas Duburas
fc5f89a520 Curves: Support View3DOverlay.display_handle property
Support for View3DOverlay.display_handle property accessible in "Curves Edit Mode Overlays" panel.

Rel #105037

Pull Request: https://projects.blender.org/blender/blender/pulls/128142
2024-10-08 21:17:16 +02:00
Miguel Pozo
e0927c1f6e Merge branch 'blender-v4.3-release' 2024-10-08 19:34:59 +02:00
Pratik Borhade
79ae0f86da Fix: GPv3: Missing topbar layer panel in weight/vertex paint
Caused by 7b91f71ebf.

Pull Request: https://projects.blender.org/blender/blender/pulls/128603
2024-10-08 18:27:28 +02:00
Huw Pascoe
7d98a24e3e UI: Expose view rotation lock in the 3D Viewport
Expose view rotation lock in the View panel.

This is handy to prevent accidentally changing
the rotation of the viewport.

Pull Request: https://projects.blender.org/blender/blender/pulls/122185
2024-10-08 18:16:36 +02:00
Sybren A. Stüvel
411f399a7f Anim: disable 'New Slot' operator on linked Actions
The 'New Slot' operator now checks for editability of the Action.

Pull Request: https://projects.blender.org/blender/blender/pulls/128708
2024-10-08 15:20:55 +02:00
Aaron Carlisle
0e8980c118 Fix: UI: Restore GP3 Join operator in menu
This was accidentally removed in https://projects.blender.org/blender/blender/commit/d70b10dcd4
2024-10-07 20:12:13 -04:00
Aaron Carlisle
dc652aeedb Fix: UI: Restore GP3 Join operator in menu
This was accidentally removed in https://projects.blender.org/blender/blender/commit/d70b10dcd4
2024-10-07 20:08:44 -04:00
Sybren A. Stüvel
dba78ebb66 Cleanup: clarify 'disabled' message in anim.slot_new_for_id poll function
The old text seemed to suggest that an Action Slot can only be created at
the moment of assigning the Action to something. That is not the case.
The operator just works on the assigned Action, and if none is assigned,
there is nothing it can do.
2024-10-07 18:29:50 +02:00
Lukas Tönne
d7e3f55eea Merge branch 'blender-v4.3-release' 2024-10-07 18:22:17 +02:00
Lukas Tönne
a57206dd59 GPv3: Remove unused legacy editor functions for GPv2
Removes all unused functions in ED_gpencil_legacy.hh

Pull Request: https://projects.blender.org/blender/blender/pulls/128597
2024-10-07 18:21:28 +02:00
Falk David
3364cb34ee Merge branch 'blender-v4.3-release' 2024-10-04 19:28:16 +02:00
Falk David
5f5b1b83d0 GPv3: Rename mode enum names and python identifiers
This renames the mode identifiers to be consistent with e.g. the context mode identifiers and other names used for the new Grease Pencil.

For `object.mode`:
* `PAINT_GPENCIL` -> `PAINT_GREASE_PENCIL`
* `SCULPT_GPENCIL` -> `SCULPT_GREASE_PENCIL`
* `VERTEX_GPENCIL` -> `VERTEX_GREASE_PENCIL`
* `WEIGHT_GPENCIL` -> `WEIGHT_GREASE_PENCIL`

For the internal `ob->mode` flag:
* `OB_MODE_PAINT_GPENCIL_LEGACY` -> `OB_MODE_PAINT_GREASE_PENCIL`
* `OB_MODE_SCULPT_GPENCIL_LEGACY` -> `OB_MODE_SCULPT_GREASE_PENCIL`
* `OB_MODE_VERTEX_GPENCIL_LEGACY` -> `OB_MODE_VERTEX_GREASE_PENCIL`
* `OB_MODE_WEIGHT_GPENCIL_LEGACY` -> `OB_MODE_WEIGHT_GREASE_PENCIL`

Resolves #127374.

Pull Request: https://projects.blender.org/blender/blender/pulls/128604
2024-10-04 19:20:00 +02:00
Lukas Tönne
7b9d4d7503 Merge branch 'blender-v4.3-release' 2024-10-04 16:17:15 +02:00
Lukas Tönne
9e70c6de4e Cleanup: Delete accidentally committed .orig file
This was a sloppy addition during #128521.

Pull Request: https://projects.blender.org/blender/blender/pulls/128596
2024-10-04 16:16:29 +02:00
Falk David
5783c0e8c0 Merge branch 'blender-v4.3-release' 2024-10-04 16:07:37 +02:00
Falk David
12eecb1504 Cleanup: GPv3: Don't show snap increment menu in topbar
In addc0ecb13, this also enabled
the `VIEW3D_PT_sculpt_snapping` menu which is not used
in Grease Pencil weight painting.
2024-10-04 16:03:59 +02:00
Philipp Oeser
98472ee510 Merge branch 'blender-v4.3-release' 2024-10-04 15:57:23 +02:00
Philipp Oeser
addc0ecb13 GPv3: Add vertex group selector to topbar
Allows for switching the vertex group to be painted in weight paint mode
without having to have the Properties Editor open (same as for meshes).

Pull Request: https://projects.blender.org/blender/blender/pulls/128590
2024-10-04 15:55:07 +02:00
Falk David
ff03857aa3 Merge branch 'blender-v4.3-release' 2024-10-04 14:52:08 +02:00
Falk David
e848bcdbbe Fix: GPv3: Flip primary and secondary toggle and shortcut missing
The `paint.brush_colors_flip` option was not exposed in the vertex color
panel.

This adds the toggle in the panel and also adds the keymap `X` to flip
the colors.
2024-10-04 14:48:09 +02:00
Falk David
9433ffe80a Fix: GPv3: Tint color property and panel
The tint color and panel was not used consistently.
In Vertex Paint mode we're using the unified paint settings,
but in Draw mode, we only use the brush color for tinting.

This fixes the issue by using the unified paint settings
for all the uses of the vertex color.
2024-10-04 14:41:45 +02:00
Lukas Tönne
c1634dbe4b Merge branch 'blender-v4.3-release' 2024-10-04 13:06:44 +02:00
Lukas Tönne
3d6a142162 GPv3: Remove unused GPv2 operators
Removes many of the operators, panels, and menus used exclusively by Grease Pencil v2 that are no longer needed in v3.
No functional changes are expected.

Some operators are still used by the annotations system and have to be kept around. These may be renamed in future.

Pull Request: https://projects.blender.org/blender/blender/pulls/128521
2024-10-04 13:05:09 +02:00
Falk David
f1ea86bd04 Merge branch 'blender-v4.3-release' 2024-10-04 12:38:08 +02:00
Julian Eisel
7191608a98 Sculpt/Paint: Hide asset shelf by default in a few modes
Hides the brush asset shelf by default in weight paint, grease pencil
weight paint and grease pencil vertex paint mode. These only have one
bundled brush per tool available.

After bringing back some tools for brushes in certain modes
(3798852071), we want to hide the asset shelf in modes where there's
only one brush bundled per tool. While having these tools support
brushes can be useful, we don't expect to bundle more brushes soon. So
avoid a mostly empty asset shelf for a single brush by hiding it by
default and keeping it hidden until the user expands it (bf52f6f723 made
it possible to remember the visibility per mode).

Part of #128066 and #116337.
2024-10-04 12:27:04 +02:00