User:Sybren/Animation Weak Areas
Animation: Weak Areas
This is a personal page where I keep track of (what I feel are) weak areas in the animation system. It may become an official page at some point, in which case I'll move it to a more official location.
NOTE: This is not meant to be an exhaustive list of all known issues. We have the issue tracker for that.
Parent Inverse Matrix
The way the Parent Inverse matrix works can be confusing. It's not directly visible in the UI, and its existence is only hinted at in the parent/unparent operator popups.
Selection synchronisation between pose bones and animation channels
- T48145: All bone drivers selected when reselecting bone
- T58718: Clicking on Dope Sheet deselects all bones
- T62463: Skeleton rig with keyframes prevents selection of Shader Nodetree channels in Dope Sheet and Graph Editor
- T71615: Select key in dopesheet deselect bone in the viewport
- T73215: Blender autokeying deselects objects channels but not Armatures
In short, there is space for improvement regarding the synchronisation between the selection state of bones (in the viewport) and channel rows (in the dope sheet/action editor/etc). Hjalti mentioned that it's probably better to synchronise less, that is, have the selections more separate. This new behaviour would need to be properly designed & discussed, though.
Visibility State and Animatability
Armatures and Negative Scale
- T64314 Scaling an edit bone negatively rolls the bone by 90° instead of 180°
- (there were other reports about this as well)
NLA Strip extrapolation mode
nla.c, only the first NLA Strip can be set to Extrapolation Mode: Hold. However, this was not documented in the manual, and this function is only called after moving a strip, which makes its behaviour appear like a bug. It's also not really intuitive, as one strip could contain only location animation, and the other only scale animation, and both could be set to 'Extrapolation: Hold' at the same time without creating a conflicting situation. This is hard to implement, though, as it requires a deep analysis of every channel in an action (and then there could be drivers causing cross-influence), so I understand why it's implemented the way it is.
- T42808 Moving one strip resets extrapolation on other strip
- T66946 NLA Hold_Forward holds backwards when orange action
- T79577 NLA Strips reverting their Extrapolation from "hold" to "hold forward"
Bendy Bones parameters
- T64908: In Pose Mode, clearing a bones Scale Transform also clears that bone's Bendy Bone Ease in/out values and also Scale in/out values. It's probably better to have specialised 'Clear Transform' operators for Bendy Bone parameters.
Matrix-based constraint system
Blender's constraint system is matrix based. Although this is powerful, it does have issues with gimbal lock.