# 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