The source project of this merge request has been removed.
Updated Animation Curves Docker GUI
New Animation Curves Docker!
Based roughly on the mock-up and discussion here: https://phabricator.kde.org/T13517.
Here's a Linux AppImage for testing purporses! UPDATED Dec 10 2020
Changes so far:
- New KisUtilityTitlebar (Top): like the one on the Timeline Docker, with an emphasis on workflow and simplicity.
- Improved KisAnimationCurvesView (Center area): vertical and [new] horizontal lines now align to values, like a graph should!
- Lines in the curves view clearly align with the lines of the value ruler, giving a better sense of where your keys actually are.
- Curves are now drawn a bit smoother and are hard clipped to show range of the channel.
- To help things read, the current frame line is now highlighted in orange, and zero value line is highlighted in blue.
- Improved KisAnimationCurvesValueRuler (Vertical header): Basically rewritten and quite dynamic, with long notches at noteworthy values (dependent on scale) and minor notches to hint at subdivisions. (4ths or 10th depending on the scale).
- Tons of navigation options! (Also adapts to current scale!)
- Pan around with space+click+drag.
- Zoom with the drag buttons on the titlebar.
- Zoom and pan using the new KisZoomableScrollbars.
- Pan horizontally with kinetic scrolling.
- Two "Zoom Fit" action buttons: (1) "zoom-fit-curve" zooms to fit the extents of the current curve, while (2) "zoom-fit-range" zooms to fit the extents of the current scalar keyframe channel.
- Value spinbox: See and set the exact scalar value of the selected node.
- Design has been made as consistent as possible with the Timeline Docker, features that exist on both are in the exact same places.
- Various workflow papercuts have been addressed when it comes to plotting and moving points. (We try to keep the grid looking where you're working, things snap a little bit nicer, can now edit and remove the selected key, etc.)
What needs to be done:
-
The list of the channels on the left hasn't been touched yet. -
Support for other channels (like Transform Masks, for example) will need to be added. (In this MR: !493 (merged)) -
Opacity still works on an 8-bit (0-255) scale right now, as it does under the hood, but it's probably better UX to present it on the scalar channel as a percent (0-100) or normalized (0.0-1.0) and then convert behind the scenes. (Also in this MR: !493 (merged)) -
Improve "zoom fit curve" to show the entirety of the curve instead of just the keys.
Known issues:
[] The dynamic zoom is very slightly jerky due to sudden changes in step size, but that shouldn't be too hard to fix. [] The vertical KisZoomableScrollbar and mouse scroll wheel is a bit odd and deceptive right now. Ultimately it may not be the right tool for the job since we're dealing with an infinite and unpredictable range of Y values.
...That's all I can think of right now.
Please try what we have so far and let me know what you think or any ideas or suggestions that pop into mind.
(Worked with @eoinoneill on much of this, by the way.
Edited by Eoin O'Neill