Blender Git Loki
August 20, 2017, 14:09 (GMT) |
TEMPORARY HACK: convert the old flag to the new auto_smoothing enum. Only for my branch build; not to be merged. |
August 20, 2017, 14:09 (GMT) |
Implement a new automatic handle algorithm to produce smooth F-Curves. The legacy algorithm only considers two adjacent points when computing the bezier handles, which cannot produce satisfactory results. Animators are often forced to manually adjust all curves. The new approach instead solves a system of equations to trace a cubic spline with continuous second derivative through the whole segment of auto points, delimited at ends by keyframes with handles set by other requirements. This algorithm also adjusts Vector handles that face ordinary bezier keyframes to achieve zero acceleration at the Vector keyframe, instead of simply pointing it at the adjacent point. Original idea and implementation by Benoit Bolsee <[email protected]>; code mostly rewritten to improve code clarity and extensibility. |
August 20, 2017, 14:09 (GMT) |
Support Copy To Selected and Alt-Click for F-Curves in the curve editor. This affects both the new smoothing mode setting and display color. |
August 20, 2017, 14:09 (GMT) |
Make auto handle placement aware of cyclic extrapolation. Cyclic extrapolation is implemented as an f-curve modifier, so this technically violates abstraction separation and is something of a hack. However without such behavior achieving smooth looping with cyclic extrapolation is extremely cumbersome. The new behavior is applied when the first modifier is Cyclic extrapolation in Repeat or Repeat with Offset mode without using influence, repeat count or range restrictions. This change in behavior means that curve handles have to be updated when the modifier is added, removed or its options change. Due to the way code is structured, it seems it requires a helper link to the containing curve from the modifier object. Reviewers: aligorith Differential Revision: https://developer.blender.org/D2783 |