# Blender Conference 2024: "New Animation System - Progress Report"
This is the work doc for our presentation at Blender Conference.
Slides can be separated with `---`, that should make things compatible with RevealJS later.
---
# A New Animation System
## Progress Report
Christoph Lendenfeld / Nathan Vegdahl / Sybren Stüvel
---
# The Dream
---
# Focusing Down
## to practical reality
---
# Layered Animation
- Replacing the NLA
- Strips should animate multiple related data-blocks
- Animation of multiple things ends up in the same strip, so definitely in the same layer, so DEFINITIONLY in the same Action
- So Slotted Actions
---
# Slotted Actions
- Useful without layering
- Camera: motion, focus, zoom
- Lights: motion, energy, colour, spot size
- Meshes: motion, shape key values, positions of 'hook' empties
- Metaballs: one blobby cluster is multiple objects
- Object rigs: one 'character' is multiple objects
- Building up game anim libraries
---
# How you work with it
- No thought: just key, stuff gets animated.
- Action + Slot Selectors
- In Action Editor (only active object, slot selector is assigning just like Action selector)
- In Properties Editor (for any animatable data-block in there, not all data-blocks are available there)
- Name + ID Type of slots
- ID type moves from Action to Slot.
- What they are (mutually exclusive points:)
* Action has Slots, which contain the F-Curves
* Action has Slots, and a Channel Bag for each, containing the F-Curves
- Work the same as Actions (IDs 'subscribe' to the anim data, Action/Slot doesn't 'push' anim to the ID)
- Just like Actions now, slots can be shared by IDs to get identical animation.
---
# Multiple Data-Blocks
- Things that appear to be "one thing" may not be:
- Embedded IDs get their own Action (might change in future version of Blender)
- Shape Keys are HIGHLY related to their Mesh, and cannot be shared, but still are a different, non-embedded ID.
- Single cluster of Metaballs actually are multiple Objects, but may share their Object Data (for consistent resolution, etc).
- Action Slots make it possible for those to share one Action.
- Blender 4.4 will automatically share Actions between:
- Object & Data (unless Data is shared between multiple Objects)
- Embedded IDs
- Mesh & Shape Key
- But not automatically between Object & Material, and some other relations where there is a stronger emph on reuse.
- Manual Control is always possible by assigning Actions before starting to key.
- Can even put _all_ animation of everything into one Action.
- Future Blender will have pref for this.
- Each Scene with all its anim in one Action.
- Operators to join & split.
---
# Mayyyybe some datamodel explanation / graphics
---
# Already in Blender (4.0-4.3)
## 4.0
- See presentation last year
## 4.1
- Hierarchical Bone Collections, with new 'Solo' property
- Action Baking: choose which channels (loc/rot/scale/bbone/custom)
- F-Curve Baking (contrary to Action Baking, which evaluates transforms and is more invasive)
- No more list of options when keyframing with `I` → prefs instead
- `K` to still show the Keying menu
- Hold `I` with 'Pie Menu on Drag' to choose loc/rot/scale/available.
- 'Only Insert Needed' split between manual & auto keying.
- Drivers have a fallback value.
- Graph Editor:
- Scale from Neighbour
- Auto-lock to either X or Y axis (View → Auto-Lock Axis)
- Right-click on animated property: View F-Curve
- Motion Paths in camera space (except zoom/shift)
## 4.2
- Colorable motion paths (theme + before/after custom colors, latter also themeable in 4.3)
- Frame Scene Range operation in the animation editors
- Graph Editor performance
- New 'Generated' key type + Fix to Camera operator + Copy Global Transform (relative)
- Bone Subdivision is now in sensible order (Bone.001 will be the first child, instead of the last)
- Custom bone wire width (Windows & Linux, has some issues on mac ← CHECK!)
- Copy Drivers to Selected
## 4.3
- Action Selectors (but without slots)
- Inserting keyframes deselect all other keys (UI only, Python unaffected)
- Bone Eyedropper (select/eyedropp Armature first, then eyedropper bone)
- Autokeying indicator is red when enabled (themable)
---
# The Future
---
# Layered Actions
- Workshop results (brief, because not enough time to prep full prezzo)
- Current thoughts, not yet final shape.
- Actual work will start later, first let Slotted Actions rest & polish workflows.
---
# More Ideas & Desires
https://hackmd.io/@anim-rigging/B1PGl8VBC
- Polishing existing features
- Pushing to pose library
- Auto-selection of pose library catalog based on active object
- Moving Timeline header contents to a more sensible place (then 💣 the timeline)
- Animation-level Constraints
- Mini Map
- Rig Nodes
- Declarative Constraints