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

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

NLA Strip extrapolation mode

According to BKE_nla_validate_state() in 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.

Bendy Bones parameters

Matrix-based constraint system

Blender's constraint system is matrix based. Although this is powerful, it does have issues with gimbal lock.