---
# System prepended metadata

title: Animation & Rigging Regression Scenarios

---

# Animation & Rigging Regression Scenarios

🤖: could/should be an automated test.

For building the final test scenarios: make them more user-oriented than test-oriented. Like animating a bouncing ball with various specific steps, so that many tests are covered by this one "being an animator" flow.

## Animation

- The slider operators, both in the 3D Viewport & the animation editors.
    - Check for smoothness of sliding, pressing hotkey to (dis)allow overshoot should immediately update the value & display (without requiring mouse move).
    - Check mid-way an NLA stack (currently likely doesn't work, but with layered actions, at some point it should).
- Playback in multiple viewports.
    - Try different options in Playback options (Dope Sheet footer / Timeline header).
    - Try different windows.
    - TODO: document what's expected here.
- Keying things
    - Keying sets.
        - 🤖 "Whole Character": Lock some loc/rot/scale channels, then insert key → shouldn't key locked things.
        - 🤖 "Available": should work well with multiple slots (so not get confused about anim data of other slots)
    - Deselect other keys on key insertion.
- Pose Library
    - Usage:
        - Apply Pose
        - Blend Pose
        - TODO: prepare file + precise instructions + viewport-render the final pose of the character for reference.
    - Editing/maintaining library:
        - Create Pose in current file + apply it
        - Push Pose to asset library + apply it
        - Edit metadata of pose in asset library (so not current file)
- Motion Paths
    - Insert keyframes, create motion path, scrub to check correctness.
    - Set pre/post colour, check it's drawn correctly
    - Move object, see current key is (not?) updated.
    - Press 'Update', see entire path updated.
- Auto-IK
    - Test on Rigify → Human metarig
    - With(out) X-Mirror enabled.
- Transforming keys
    - Graph editor
        - Select keys & transform (grab, rotate, scale from 2D cursor)
        - Also with(out) handles
        - Different handle types
        - TODO: get Action from production file
    - Dope Sheet
        - Retime keys, also with different kinds of data (like F-Curve keys + Grease Pencil frames)
        - 🤖 Copy-Paste Keys
            - One-to-one
            - Array-to-array
            - Many-to-many
            - Nothing selected when pasting
    - Framing keys (select all, hit 'frame' button, should zoom out)
- Graph Editor
    - "Normalize" mode
    - Ghost curves (button is between the filter options in the header)
- Channel list manipulations
    - Filtering by name
    - Selection syncing (select bone → selects channel group, and vice versa)
    - Reordering channels (groups, individual F-Curves, non-continuous selection of channels, slots)
    - Group & ungroup
- Copy Global Transform
    - Copy & Paste, with(out) mirroring
    - Relative Copy/Paste
        - Relative to object
        - Relative to bone of specific armature
        - Relative to only bone name, so of currently-active armature
    - Paste & Bake
    - Fix to Camera
        - Use operator
        - Use 'trashcan' to delete generated keys



## Rigging

- Weight Painting
    - Painting
    - Locking
    - Auto-normalisation
    - With mirroring (should also deal with flipping group names)
    - Manually editing vertex weights
    - Smoothing & other operators
- Armature Editing
    - Edit two instances of the same Armature
    - Edit with X-mirror on
    - Create half an armature, use Symmetrize to create the other half
        - Should only duplicate 'sided' bones
        - Should duplicate constraints
        - Should copy rest pose of selected bones to their mirrored counterparts (even when all bones already existed).
    - Try out the operators in the left-hand toolbar.
- Drivers
    - Add driver, edit its F-Curve (should behave as driver curve, not property-animating F-Curve)
- Creating IK/FK blend system
- Shape Keys
- Lattice deformation (also with shape keys)
- Bone Collections
    - Showing/hiding/solo'ing
    - Nesting collections (with visibility togglging)
    - Coloring
