Commit graph

98 commits

Author SHA1 Message Date
Sybren A. Stüvel
90ed330a82 Anim: improve UI of Replace Action operator
Three small changes that improve the Replace Action UI:

- Add "..." to the label in the menus, to indicate there will be a
  popup.
- If the old or new Action cannot be found, show the Action names
  without the `AC` ID type prefix.
- If the old and new Action are the same, show "Cannot replace Action
  with itself" instead of the more cryptic "Invalid old/new Action
  pair".

Pull Request: https://projects.blender.org/blender/blender/pulls/163959
2026-09-15 16:22:28 +02:00
Guillermo Venegas
bad8871dc5 UI: Add UILayout::property_split_factor static value
This adds the `UILayout::property_split_factor` property which contains
the split factor used in the layout system, and avoids to use the this
as raw value all over the place.

Pull Request: https://projects.blender.org/blender/blender/pulls/163393
2026-09-09 00:27:44 +02:00
Christoph Lendenfeld
323d5a0758 Anim: Replace with duplicate Action operator
Add a new operator `Replace with duplicate Action`.
Similar to `Replace with new Action` this looks at the action
of the active object and replaces all users of that action with
a duplicate.

Pull Request: https://projects.blender.org/blender/blender/pulls/158258
2026-07-13 11:44:31 +02:00
Omar Emara
0f5669bbfb Compositor: Add playback cache
This patch adds support for frame animation playback caching in the
compositor. There is now a Frame Cache option in the side bar, when
enabled, the compositor will cache its final viewer result across
frames. The cache is drawn in the timeline editor with a new display
option for that cache. The cache is invalidated on any change that
affects the node tree. The cache respects the memory cache limit and
will evict cached frames in the limit was surpassed. This caching
mechanism only concerns the interactive compositor, not the viewport
compositor or the VSE compositors.

A few changes were made to support this patch:

- A new DEG_id_is_user_modified query function was added to detect if an
  ID changed due to user input or not. This is used to do proper cached
  invalidation. Thanks to Brecht for the implementation.
- The compositor job now internally suspends animation playback until
  the compositor is done to make sure the entire frame range is computed
  and cached. The previous behavior of frame dropping can still be
  achieved using the playback frame dropping option.

Pull Request: https://projects.blender.org/blender/blender/pulls/159902
2026-06-18 07:40:41 +02:00
Eitan Traurig
ae79e324d0 UI: Reorganize context and "Key" menus in Dope Sheet
Images in the PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/159603
2026-06-06 10:40:56 +02:00
Wayne Dixon
15a975ea3c Anim: Add F-Modifier Remove Operator
Add an operator to remove F-Curve modifiers, either all or limited by
a few criteria. By default, all are removed. The 'Adjust Last
Operation' (Redo) panel can be used to choose differently.

- **All**: remove all the f-modifiers
- **First**: only remove the first f-modifier
- **Type**: the user can specify what type they want to remove, and
  all of those types are removed.

Pull Request: https://projects.blender.org/blender/blender/pulls/156847
2026-05-11 15:37:28 +02:00
Christoph Lendenfeld
c1015a006b UI: Consistent "Key" menu between Dope Sheet and Graph Editor
No functional changes.
This changes the ordering of the "Key" menu in the Dope Sheet to be
consistent with the Graph Editor.
It also modifies the text "Jump to Keyframes" to "Jump to Selected".

Pull Request: https://projects.blender.org/blender/blender/pulls/157633
2026-04-21 14:28:46 +02:00
Christoph Lendenfeld
1447bfd22b Anim: Add operator to select keyframes by type
This adds an operator to the Dope Sheet that selects
all keyframes of a given type.

Idea based on the workflow by Wayne Dixon
Based on a discussion from an Animation & Rigging module meeting [1]

[1] https://devtalk.blender.org/t/2026-03-05-animation-rigging-module-meeting/44533#p-161088-patches-review-decision-time-7

Pull Request: https://projects.blender.org/blender/blender/pulls/157629
2026-04-21 11:12:13 +02:00
Pratik Borhade
ffd3e01281 Fix: UI: Small tweaks in dopesheet overlay panel
Remove redundant collapsible which is caused by c31dcbc0fa.
Fix is same as !154299
Also reduce the panel width.

Pull Request: https://projects.blender.org/blender/blender/pulls/154937
2026-03-02 12:49:40 +01:00
Sybren A. Stüvel
6e791ac79a Revert "Fix #152671: Hide "Show Only Selected" button in Action Editor"
This reverts commit 4344244c3f. "Only Show
Selected" is still useful for armatures, as then the bone selection is
relevant for the shown channels.

Pull Request: https://projects.blender.org/blender/blender/pulls/153960
2026-02-05 17:33:45 +01:00
Christoph Lendenfeld
1a8298109f Anim: Replace Action uses with new action
This patch adds a new operator to replace all uses
of a given animation with a newly created one.

The operator can be found just below the "Replace Action" operator
in the Action editor (Action dropdown) and in the 3D viewport
(Object or Pose -> Animation)

I extracted the common code with `ANIM_OT_replace_action`
into common functions

Part of #150572

Pull Request: https://projects.blender.org/blender/blender/pulls/153812
2026-02-04 11:56:11 +01:00
Christoph Lendenfeld
4344244c3f Fix #152671: Hide "Show Only Selected" button in Action Editor
The "Show Only Selected" button does nothing in the action editor.
That editor only shows the action of the active object anyway.
To hide any Slots that are not of selected objects, the appropriate button exists.
The button is now hidden in the action editor to communicate that to the user.

Pull Request: https://projects.blender.org/blender/blender/pulls/152706
2026-02-03 14:35:48 +01:00
Christoph Lendenfeld
0760e3a380 Anim: Add operator to swap action on multiple datablocks
This patch adds an operator to switch all users of one action to a different action.
It works on the action of the active object, which makes it possible to use in the 3D viewport.

We need this operator since we switched to slotted actions and many datablocks
can now point to the same action. Swapping out said action was previously possible
with the "Remap Users" operator in the Outliner, but that replaces *all* references to
said action including NLA strips and Action constraints.

This operator will  *only* work on `AnimData.action`.

The operator can be found in the Action menu of the Action Editor or the Animation menu in the 3D viewport.

for Design #133725
part of the winter of quality #150572

Pull Request: https://projects.blender.org/blender/blender/pulls/153455
2026-02-02 16:06:03 +01:00
Christoph Lendenfeld
12e628ea43 Refactor: remove remaining legacy action code
This removes the remaining legacy action code, that includes any unit tests for
legacy actions.
The only place that still deals with legacy actions is the versioning code.

I left the RNA functions `is_action_legacy` and `is_action_layered` in
place to not cause a breaking change for addons. However the functions
are now just hardcoded to return false and true respectively.

Part of #150644

Pull Request: https://projects.blender.org/blender/blender/pulls/152526
2026-01-12 11:35:10 +01:00
John Kiril Swenson
6f9556c561 Cleanup: UI: Standardize ellipsis for menu operators
This patch standardizes ellipses on labels that require further input
from the user before running the operator as per our
HIG.

- PR does not include buttons (e.g. "Purge" in Outliner) and only
  modifies menu items.
- PR does not include operators that wait for input from the user during
  modal operation (e.g. `view3d.select_box`, `paint.sample_color`).
- Some usage of ellipses were removed since they were only present to
  indicate the start of the sentence (to be finished by submenu items).
  E.g. "Make Local...", "Sort Elements...", "Move..." do not require extra
  input from the user.

Pull Request: https://projects.blender.org/blender/blender/pulls/150950
2025-12-04 23:04:28 +01:00
Sybren A. Stüvel
5836f48ce7 Anim: Bring back Timeline as mode of the Dope Sheet
Bring back the Timeline editor, as a sub-type of the Dope Sheet
editor. Effectively this reverts 2ae953d7f5, but in a way
that still doesn't undo everything. The changes are:

- Regions that should be hidden in the Timeline (N-panel, footer) are
  now managed by their poll functions. Earlier, when switching between
  Dope Sheet and Timeline, Blender would simply overwrite user-chosen
  visibility flags; this no longer happens.
- Defaults are set better, when an editor is switched to Timeline or
  Dope Sheet for the first time. This used to not be the case, and was
  manually configured in the startup file (but subsequently created
  editors did not adhere to this):
    - Timeline: channel box is hidden (but can be opened), the Summary
      line s collapsed so that only a single line is visible.
    - Dope Sheet: channel box is shown, Summary line is expanded,
      N-panel is shown.
- Filtering by type (so whether Scene, World, Material, Object etc.
  animation is shown) was 'leaking' from the Dope Sheet into the
  Timeline editor (once set in the Dope Sheet, the Timeline would
  still adhere to them, even though there are no visible controls to
  edit those filters). This is now fixed, so that the Timeline always
  has a hard-coded set of filters.
- The "Keying" menu has been removed from the Timeline header. The new
  additions to the header in 5.0 take up more space. This menu now is
  labeled after the chosen keying set, which can get quite long, so
  it's fighting for this space. Furthermore, the menu is seen as
  "animator feature", so it is now "only" available in the footer of
  every animation editor except the Timeline.

Pull Request: https://projects.blender.org/blender/blender/pulls/148278
2025-10-20 17:40:26 +02:00
Falk David
0c18c1cfc2 Anim: VSE: Add overlay to visualize scene strip range when using scene syncing
This adds an overlay to the animation editors to visualize the current scene strip
in and out points in the scene timeline when the `Sync Scene Time` option in
the sequencer is used.

* Adds an overlay toggle + panel to the dopesheet.
* Adds a new theme setting (for the overlay) under
  `Common` > `Animation` > `Scene Strip Range`.
* Adds the overlay drawing to the dopesheet.

Pull Request: https://projects.blender.org/blender/blender/pulls/146165
2025-10-07 17:34:47 +02:00
Christoph Lendenfeld
2ae953d7f5 UI: remove the Timeline
This adds versioning code that replaces any timeline with a
dopesheet where the footer is shown, AND it removes the
timeline from the menu options.

If the area is too small to show both, the footer and the
header then only the footer is shown.
This assumes that users created the small timeline
just for the playback controls

Any uses of `SACTCONT_TIMELINE` (except for versioning) have been removed.

part of #145577

Pull Request: https://projects.blender.org/blender/blender/pulls/147058
2025-10-02 09:44:53 +02:00
Casey Bianco-Davis
d2269441bb Python: Rename bpy.data.grease_pencils_v3 to bpy.data.grease_pencils
This renames `bpy.data.grease_pencils_v3` to `bpy.data.grease_pencils`.

Part of #125058.

Pull Request: https://projects.blender.org/blender/blender/pulls/146904
2025-09-29 12:32:08 +02:00
Pablo Vazquez
4193cb4f17 UI: Rename animation footers to Playback Controls
Rename the menu item "Footer" in Animation/VSE to "Playback Controls".

This only affects the menu item label under `View`, in the following editors:
* Dope Sheet
* Graph Editor
* NLA Editor
* Sequencer

The name "footer" has issues:

* It's not descriptive of what it does/contains.
* It can be moved to the top, so no longer a footer.
* When used in other editors, it may contain different things so it
  is unexpected what to find in it.

See PR for screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/146727
2025-09-25 12:16:32 +02:00
Campbell Barton
85788f3dea Cleanup: resolve pylint warnings 2025-09-10 11:31:23 +10:00
Pratik Borhade
4a4bf82de0 UI: Shape key properties in Dopesheet
Similar to Grease Pencil layer, include shape key properties in side
panel of dopesheet for ease of access.

See images in PR description

Pull Request: https://projects.blender.org/blender/blender/pulls/143033
2025-09-09 11:38:19 +02:00
Sybren A. Stüvel
d1962be44c Anim: remove deprecated SpaceAction::action pointer
Other code that needs to operate on "the Action that's shown in the
Dope Sheet" now accesses the newly-added
`bAnimContext::active_action`, which is now also used by
`context.active_action`. I've also added
`bAnimContext::active_action_user` in case the ID that is animated by
this Action is needed. That's either the active `Object` or the active
`Key`, again depending on the mode of the Dope Sheet editor.

The active Action can also be obtained via
`ANIM_active_action_from_area(scene, view_layer, area)`. This is a
faster method than the usual `ANIM_animdata_get_context(C, &ac)` and
it doesn't need the entire `bContext`.

The "Stash Action" and "Push Down Action" to the NLA were also
implemented by writing to `SpaceAction::action` via RNA. They now use
`ANIM_animdata_get_context()` to get the active action owner ID, and a
direct call to `blender::animrig::assign_action()` instead.

The remaining use of `SpaceAction::action` was for display &
manipulation of Scene/Action markers. This required some work to get
addressed, as there was quite a bit of spaghetti and duplicate logic
to churn through. More can be improved there, but I had to limit the
time I spent on this.

Python code that was still using `context.space_data.action` to find
the currently-showing Action has been migrated to
`context.active_action`.

Related: #119626
Pull Request: https://projects.blender.org/blender/blender/pulls/145672
2025-09-08 18:12:18 +02:00
Pratik Borhade
08cf64315d Cleanup: Grease Pencil: Remove legacy UI code
Remove stale legacy python UI code, not used anymore by new grease
pencil structure.

Pull Request: https://projects.blender.org/blender/blender/pulls/135507
2025-09-08 11:52:00 +02:00
Christoph Lendenfeld
49d3d29355 UI: move playhead snapping to footer
This patch moves the playhead snapping UI element to the
new footer introduced with 35bcbad7e9
This is in preparation for removing the timeline editor, see #131102

Pull Request: https://projects.blender.org/blender/blender/pulls/144922
2025-09-02 12:22:29 +02:00
Christoph Lendenfeld
befe6062c0 UI: Icons for playhead snapping
The recently introduced feature of playhead snapping (#137278)
added a popover menu for snap targets.
This used text to indicate the contents of said popover.
In order to bring it in line with the other snapping menu, this PR adds
icons to indicate the enabled state of snapping.

Part of #135794

Pull Request: https://projects.blender.org/blender/blender/pulls/139271
2025-08-05 09:01:56 +02:00
Philipp Oeser
458e224587 Merge branch 'blender-v4.5-release' 2025-07-04 15:01:33 +02:00
Philipp Oeser
eb82ff6166 Fix #141387: Light Probes not integrated into Animation Editors
You could basically not interact with the animation (except for
keyframes in the main region), channels region was totally empty, NLA
could not be used, ...

It is not something users will animate a lot, but we should still have
animation editors in mind when adding a new object type.

Just missing from cc31d7bb49

Pull Request: https://projects.blender.org/blender/blender/pulls/141449
2025-07-04 15:01:15 +02:00
Pablo Vazquez
a90ce938dd UI: Dope Sheet: Add Cache visualization
Add cache visualization to the Dope Sheet editor, previously limited to
just the Timeline.

See PR for details and screenshots.

Part of #131102

Pull Request: https://projects.blender.org/blender/blender/pulls/140966
2025-06-27 12:23:48 +02:00
Pablo Vazquez
35bcbad7e9 UI: Add Footer to Animation & VSE Editors
Add a footer region which contains essentially the playback and frame
range buttons from the Timeline Editor, to the following editors:
- Dope Sheet
- Graph
- NLA
- Sequencer

Available in the View menu in each editor, hidden by default.

The motivation is to provide a convenient way to access these
often used controls, and in the near future adjust these footers
to add more playback functionality related to each editor.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/135697
2025-06-19 15:54:53 +02:00
Campbell Barton
0cbcf48e69 Cleanup: move PlayheadSnappingPanel out of tool-system module
This panel is unrelated to the tool-system.
2025-06-01 15:11:51 +10:00
Christoph Lendenfeld
87a28fa117 Anim: Common Playhead snapping for all editors
This patch adds snapping options for the playhead to all animation editors.
The options can be modified through a new dropdown in the editor header.

All editors will show all those options, and they are shared,
so toggling the option in on editor will change it for all other editors too.
Some options are not working/relevant in some editors for example
Strips in the Dope Sheet. However for consistency the option is still shown.
This is a separate menu from the transform snapping menu because
you can toggle the snapping for transform and playhead separately.
Putting it in the existing snapping transform menu would imply that it can
be turned off with the magnet which is not the case.

Playhead snapping is explicitly disabled for the drivers editor
because there is no playhead to drag around.

Snapping to Frame/Second intervals takes the scene start as a starting point.
That means you can snap to the n-th second of the animation even though
it might not start at frame 1. The preview range is NOT taken into account
by design since the use case is working on a sub-section of the animation
in which case the snap target should not change.

Snapping is toggled by pressing CTRL as indicated by the status bar.

Snapping to Frames/Seconds is absolute, meaning no matter
how far away your cursor it will snap to the closest snap point.
All others only snap to things if they are close to the cursor in pixel values.
When mixing those two behaviors, it prefers relative snapping.
If no point is close enough to snap relative,
it will fall back to absolute snapping.

Based on the prototype #135913
Part of #135794

Pull Request: https://projects.blender.org/blender/blender/pulls/137278
2025-05-22 10:17:19 +02:00
Campbell Barton
d9eda9322d Cleanup: remove unused prefix from a used argument 2025-02-25 14:05:14 +11:00
Pratik Borhade
2d18046bbc Fix: Grease Pencil: Missing operator to delete breakdown keyframes
Operation to delete keys generated from interpolate sequence.

Resolves #134081

Pull Request: https://projects.blender.org/blender/blender/pulls/134091
2025-02-07 13:36:38 +01:00
Nathan Vegdahl
9f2ab9cba0 Anim: rename RNA Slot.id_root to Slot.target_id_type
The name `id_root` was not descriptive, and was just a hold-over from the
equivalent (now deprecated) property on the Action itself.  `target_id_type`
is more clear, reflecting that this is the type of ID the Slot is intended
to animate.

This PR also renames the corresponding `id_root_icon` to
`target_id_type_icon`.

Note that this PR updates the GLTF import/export core addon to adhere to
these name changes as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/133164
2025-01-20 15:24:08 +01:00
Nathan Vegdahl
1cb25d6245 Anim: declutter Action Editor header
The Action Editor was already getting crowded, but has become even
moreso with the addition of the new Slot selector. Part of this clutter
is due to the NLA-related buttons:

- The up/down track switching buttons.
- The Push Down button.
- The Stash button.

The latter two are currently still useful, but don't need to be directly
on the header itself. This PR moves them to the header's Action menu.

The up/down buttons have several issues:

- They are conceptually confusing: you cannot visually see what's
  happening or which track you're on without an NLA editor open anyway,
  so somewhere in the NLA Editor would be a better place for them.
- Their functionality is broken, and it seems has been for a long time:
  you can go down in the track stack, but often can't go back up,
  despite the existence of the up button. It doesn't appear that anyone
  has reported this cripplingly broken behavior, which strongly suggests
  that very few people (if anyone) is using or relying on these buttons.
- They don't make any sense when you have more than one strip on a track
  anyway (which strip do you go into tweak mode on?).

For all these reasons, this PR simply removes the up/down buttons.
2025-01-14 17:15:45 +01:00
Campbell Barton
be0c9174aa Cleanup: argument wrapping for Python scripts
- Wrap the closing parenthesis onto it's own line
  which makes assignments to the return value
  read better.
- Reduce right-shift with multi-line function calls.
2025-01-14 12:53:32 +11:00
Thomas Dinges
f3e5c17283 Cleanup: Remove legacy GPENCIL code from UI python files.
Also remove unused gpencil modifier defines.

Pull Request: https://projects.blender.org/blender/blender/pulls/131879
2024-12-14 11:19:24 +01:00
Pratik Borhade
03b2fc744e Grease Pencil: Add layer channel color property
This adds a `channel_color` property to layers.
The color is stored in the tree nodes.
It's currently used by the dopesheet for the channel colors.

Resolves #130370.

Pull Request: https://projects.blender.org/blender/blender/pulls/130512
2024-12-09 14:11:29 +01:00
Nathan Vegdahl
370a11342c Anim: rename .action_slots to .action_suitable_slots
`AnimData`, NLA strips, and action constraints all have an
`action_slots` field in RNA. The purpose of this field is to list
the slots of the currently assigned action (if any) that are suitable
for the relevant ID.

However, this is not clear from the naming. In particular, given that
there is another field `action_slot` that represents the currently
assigned slot, the name `action_slots` could be easily misinterpreted
as a way to assign multiple slots at once, which is not possible.

To help clarify its actual purpose and meaning, this PR renames the
field to `action_suitable_slots`.

As a bonus, this also ends up decluttering the Python autocomplete when
looking for things related to `action_slot`.

Ref: #130892
Pull Request: https://projects.blender.org/blender/blender/pulls/130754
2024-11-26 11:40:05 +01:00
Falk David
f20cd471fe Merge branch 'blender-v4.3-release' 2024-11-15 12:11:33 +01:00
Pratik Borhade
7e12131aaf Fix: GPv3: Adjustment panel in dopesheet
Missed in b4881f6b0a
Expose adjustment panel in Grease pencil dopesheet side panel as
done for others in 6e137f957f

Pull Request: https://projects.blender.org/blender/blender/pulls/130311
2024-11-15 12:10:28 +01:00
Pratik Borhade
71dd56a325 Fix: Typo in class name
Mistake in 6e137f957f
Falk noticed it in !130311

Pull Request: https://projects.blender.org/blender/blender/pulls/130315
2024-11-15 11:59:25 +01: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
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
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
Campbell Barton
4c36f9a566 Cleanup: simplify attribute access
Avoid getattr(..) when values are know to exist.
2024-10-01 10:23:04 +10:00
Campbell Barton
0afce08c20 Cleanup: use Python format specifiers 2024-10-01 10:14:48 +10:00
Christoph Lendenfeld
85e4bd19f6 Anim: Separate Slots operator
This adds an operator that splits all slots of the action on the active object,
into separate actions.

The newly created actions will be named `slot_name+Action`.
All users of those slots will be reassigned to this new action.

The exploded action will not be deleted, but will end up with 0 users
unless a fake user is set.

------

For the review, does that operator name make sense?

Pull Request: https://projects.blender.org/blender/blender/pulls/128251
2024-09-27 16:39:29 +02:00
Christoph Lendenfeld
95b6cf0099 Anim: operator to move Slots to new action
This adds an operator that moves slots of slot channels selected in
the channel box to a new action.

All slots are moved together into that new action instead of
moving them into separate actions.
I think that's more reasonable because that way the "move slots into separate actions" is
still possible by selecting the slots one by one.
The "explode action" operator that does just that can be a separate operator.

The new action is named after the slot for the case when only one slot is moved.
When multiple slots are moved, the name "CombinedAction" is used.

This also adds a menu entry "Action" to the action editor.

Pull Request: https://projects.blender.org/blender/blender/pulls/128171
2024-09-27 14:34:24 +02:00