slotted-actions-animation
Installation
SKILL.md
Slotted Actions Animation
Trigger
Use this skill when the user:
- Wants to create or edit animation from Python in Blender 5.x
- Mentions
Action,slot,channelbag,keyframe_insert,fcurves - Has older 4.x animation code (
action.fcurves.new(...)) that no longer works in 5.x - Asks how to insert keyframes programmatically and have them persist
What changed and why
Blender 4.4 introduced the Slotted Actions data model to support non-linear, multi-target animation. The old model was a flat list of F-curves owned directly by the Action, which made it impossible for one Action to drive two different IDs (e.g. an armature pose and the armature's custom property channels at the same time) without overwriting each other.
Two version boundaries matter:
- Blender 4.4 / 4.5 LTS: the slotted data model (
action.slots,action.layers,strip.channelbag) is present alongside the legacy flat API (action.fcurves,action.groups,action.id_root), which still works as a proxy. The helperbpy_extras.anim_utils.action_get_channelbag_for_slot(action, slot)exists;action_ensure_channelbag_for_slotdoes not. - Blender 5.0+: the legacy flat API was removed (
action.fcurvesraisesAttributeError). The new helperbpy_extras.anim_utils.action_ensure_channelbag_for_slot(action, slot)is added.