Current feature list:
* Pan/Zoom grid (zoom only works in x-dir, y-dir is fixed)
* create a float based curves, up to Vec4
* multiple curves at same time
* place control points
* Move/Delete control points
* Change tangents
* Different Key Modes: straight tangents, broken tangets (active control point in new image), linear and constant
* open/save curve editor project (.CRV)
* Import/Export curve data (.OBJ)
* Fit view to graph
ToDo list:
* delete curves
* change curve name in-editor
* option settings, maybe via property window, when selecting a curve from the right side
* context menu to directly edit x-value, y-value or delete a control point
Known issues:
* viewport colors (background + grid) should be darkend
* viewport should initially view at Y=1.0 (here new curves are added)
* fitting should be improved so curves without or with only 1 point are viewed correctly, or when all curve points are at same height... => now leads into BIG issue
Videos:
Controls:
Menu:
File > Open: open curve editor file (can contain many curves)
File > Save: save curve editor file (can contain many curves)
File > Import: import a curve to current view
File > Export: export a curve to current view
Edit:
Add curve: Add a new Flt, Vec2, Vec or Vec4 curve (by default on y=1.0)
Controls:
Pan viewport: SPACE + mousemove
Zoom: mousewheel
Zoom-X: CTRL + mousewheel
Zoom-Y: Alt + mousewheel
Insert Point: mouse doubleclick on curve to insert point
Select Point: mouse leftclick
Delete point: DEL (with point selected)
Move point: CTRL + drag & drop
In the right view you can toggle each curve visibility using the related checkbox.
Clicking the colored boxes toggle subcurve visibility
Nice! I might even be useful in my game, for instance to manipulate sound speed over time. I'd like a feature to automatically 'link' the end back to the beginning, making a smooth curve if you'd loop it.
Of course, to move it to code snippets, you'd have to include the code ;-)
looping feature is difficult i think, do to the fact either you would have to create a curve for every needed solution (with different max X value), or you just set your last control point equal to your first control point...then you will have looping behaviour...