Graphite icon indicating copy to clipboard operation
Graphite copied to clipboard

Add animation channels

Open skoriop opened this issue 1 year ago • 1 comments

This PR is part of my work on a proposed animation system for Graphite.

In specific, this should add features to the node system that will be used for animation:

  • [x] Add animation-related structs and linear interpolation of values
  • [x] Add linear & Bezier easing
  • [x] Add animation channel nodes that use EditorApi to dynamically update their value
  • [x] Add AnimationMessageHandler and allow it to set animation-related values that are propagated to EditorApi
  • [x] Implement animation playback by continuously sending AnimationMessage::NextFrame messages in editor_api.rs
    • [x] Pass AnimationConfig to editor_api.rs for variable frame rate and optimisations
  • [x] Add keyboard shortcuts to control playback
  • [x] Fix bugs

skoriop avatar May 30 '24 12:05 skoriop

Pasting this here for the record from my Discord message last week, as it still needs to be completed:

Please bind Pause/Play toggle to Shift+Space, setting the playback time to 0 with Ctrl+Shift+LeftArrow, and stepping left and right one frame with Ctrl+Left/Right arrow keys. And remove all the F* key bindings.

I'll also mark this as a draft because it requires changes from @TrueDoctor to fix the inlined compilation issue that makes this not work.

Keavon avatar Jun 21 '24 06:06 Keavon