It is possible to have curves with cyclic extrapolation that
have a mismatch in their end keyframes, causing a jump.
Also, since the looping behavior is defined per curve rather than at
action level, it is possible for curve loop periods to get out of
sync with each other. This commit adds an option to compare curves
against the manual frame range specified in the action, and treat
any mismatches as errors for the purpose of F-Curve filtering.
When enabled, the check verifies that end values of cyclic curves
match, curves within a cyclic action have valid cyclic extrapolation,
and the action period evenly divides by the curve period (since
a curve looping at e.g. half of the action period length still
repeats in sync with the action).
Originally this was a part of D11803, but I split it off for more review after deciding to make this a filter option rather than an action option:
To summarize, this detects:
- End key mismatch in a cyclic curve.
- Non-cyclic curve in a cyclic action.
- Wrong cycle period for a curve in a cyclic action.
This patch is included in the experimental build of the temp-angavrilov branch.
