This is the ground truth document for #120406: Slotted Actions Planning.
For more context, see:
Goals: ability to animate with the new multi-slot Action, and having different data-blocks animated by the same Action.
Non-goals: layers, strips on layers, animation-level constraints, bone pickers.
Each phase after 3 should have some time to iterate on the new functionality with animators.
main
#118677: Implement the Data Model
#119875: add layered Action to anim filtering code
Goal: minimal working state for animators to animate anything.
End-of-subphase goal: Animators can animate with a file that has been set up for animation by the devs. Update: practical animation will likely be too hindered by not having F-Curve groups (which also causes things like 'only for selected bones' to not work).
WEEK 1 Sybren
WEEK 1 Christoph
)WEEK 0 Sybren
WEEK 0 Sybren
WEEK 1 Sybren
)End-of-subphase goal: Animators can animate a file from scratch.
This phase focuses on getting feature parity with the legacy Action F-Curve groups.
WEEK 1 Nathan + Sybren
WEEK 1 Nathan
action.groups
. WEEK 1 Sybren
WEEK 1 Nathan
WEEK 1 Nathan
End-of-subphase goal: Animators don't get lost in their long lists of channels.
WEEK 2 + 3 Nathan
KeyframeStrip
to ChannelBag
.End-of-subphase goal: Animators can work with the multi-slot Actions as comfortably as with legacy Actions.
There will be much code that doesn't go through the animation filtering or key insertion systems, but directly accesses action->curves
. This code needs to be updated to handle layered Actions.
WEEK 4 Sybren & WEEK 4+5 Nathan
WEEK 3 Sybren
, #127749)WEEK 3 Sybren
, #127871)WEEK 1 Christoph
WEEK 3 Christoph
1
multi-slot Action → N
single-slot Actions.WEEK 3 Christoph
WEEK 4 Sybren
(#128708, if there's more we can fix those when we find them)WEEK 2 Sybren
WEEK 5 Nathan
WEEK 5 Sybren
, #128444)WEEK 5 Sybren
, #128446)WEEK 5 Sybren
, #128700)BKE_nla_tweakedit_remap()
does not directly use the Action itself)WEEK 3 Christoph
#127842)MutableSpan<>
any more (for slots/layers/etc.) but always use Span<>
. WEEK 5 Sybren
rna_AnimaData_override_apply
WEEK 6 Sybren
(#128889)main
for Blender 4.4 (WEEK 6+ Sybren
)WEEK 5+ Nathan
: #104974WEEK (NOW+2)+
This is mostly to remove then-dead code. It is deferred until we're confident that the new code is doing the right thing, and we don't need the old code as reference any more for regressions.
Other things, which will likely have to wait until later phases:
ListBase
dependent stuff.