# 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