= "Animation Next" Project =
> Since the release of version 3.0, Krita has developed into a potent tool for digital raster animation. While a solid groundwork has been laid, the next step for Krita should be to focus on addressing remaining issues and making necessary improvements to facilitate the animation workflow for learners, hobbyists and industry professionals alike. In essence, that’s what this project is about—doing the remaining research, development and documentation needed to make sure that Krita is on the path to meeting the wants and needs of animators of all levels.
[[ https://docs.google.com/document/d/1yulbPhZO2UovJCPJu-hr4v3U4JjWPE8Ej_EVQmveEQU/edit?usp=sharing | You can read and comment on our project proposal here. ]]
This task will serve as the work area and to-do list for the project.
== Contacts: ==
Eoin and I are working on Krita during weekdays in the PST time zone.
While those are the best times to get in touch with us about this project, feel free to send us a message or mail at any time. =]
@emmetoneill <emmetoneill.pdx@gmail.com> (emmetpdx on IRC)
@eoinoneill <eoinoneill1991@gmail.com> (eoinoneill on IRC)
== Scope ==
As of now, the scope of this project considers only the core //traditional animation workflow//.
In other words, the creation, manipulation and timing of hand-drawn and pixel art key/inbetween frames.
As such, other key workflows within the animation-making pipeline (storyboarding, compositing, etc.)
are outside of the current scope and should be discussed separately.
However, what is or is not in scope is an important point of discussion in and of itself,
so don't hold back if you have any thoughts or ideas that you think could be in scope.
== Sub-tasks ==
NOTE: As we gather feedback and suggestions from the community we will be adding potential tasks to the appropriate sections below.
Nothing is set in stone, however, and each point will need to be assessed for quality, scope and viability.
In other words, existence in this task should //not// be taken as a promise or official feature announcement.
//(Reserve new tasks for bigger jobs only, please link to them here.)//
**1.) Outreach** (Links forthcoming)
I've written [[ https://docs.google.com/document/d/1N9ZIRElBcJuZzMpHiTapoZnQEdebKIo9WizR_l2LK88/edit?usp=sharing | a draft outreach post]] and an [[ https://forms.gle/Hjw4FkZ26x8NMiKL9 | animation feedback survey ]].
[x] Krita-Artists https://krita-artists.org/t/feedback-wanted-help-us-improve-kritas-animation-tools/4171
[x] Reddit /r/krita https://www.reddit.com/r/krita/comments/ffy60q/feedback_wanted_help_us_improve_kritas_animation/
[x] Reddit /r/animation (checked with mods, no reply) https://www.reddit.com/r/animation/comments/foa2eg/krita_animation_feedback_wanted/
[x] Krita Steam Community https://steamcommunity.com/gid/103582791435216837/announcements/detail/1712995722671843343
[x] @Krita_Painting twitter. https://twitter.com/Krita_Painting/status/1237286799862611968
[x] SakugaBooru https://www.sakugabooru.com/forum/show/908?page=0
Results:
{F8263535}
{F8263538}
{F8263539}
**2.) Polish** //(Papercuts, improvements and fixes for existing features and workflows as of Krita 4.2.9)//
https://bugs.kde.org/buglist.cgi?component=Animation&list_id=1733487&product=krita&resolution=---
[x] Animation Caching: Let's make sure that it's solid. **(Pending Merge Requests)**
[x] Improvement to "Current Frame" Caching for Improved Scrubbing (https://bugs.kde.org/show_bug.cgi?id=413859) **[[ https://invent.kde.org/kde/krita/-/merge_requests/259 | Merge Request ]]**
[x] Opacity Keyframe Caching Fixes **[[ https://invent.kde.org/kde/krita/-/merge_requests/264 | Merge Request ]]**
[x] Animation Caching for Animations with Layer Masks ( https://bugs.kde.org/show_bug.cgi?id=377289 ) **[[ https://invent.kde.org/kde/krita/-/merge_requests/260 | Merge Request ]]**
[ ] Animated fill layer lags behind by 1 frame. https://bugs.kde.org/show_bug.cgi?id=405740
[x] Timeline Docker Right Click Menu Polish: Avoid having critical operations as the first element to avoid accidental selection on right click release. (related: https://bugs.kde.org/show_bug.cgi?id=413807) [[ https://invent.kde.org/kde/krita/-/merge_requests/293 | Merge Request ]]
[x] Timeline Docker: Remove layer sometimes deletes the wrong layer entirely. (see boud comment @ https://bugs.kde.org/show_bug.cgi?id=407416) [[ https://invent.kde.org/kde/krita/-/merge_requests/289 | Merge Request ]]
[x] Timeline Docker: Remove Layer doesn't just remove layer but deletes it. There should be a remove layer and delete layer option that are separate. (https://bugs.kde.org/show_bug.cgi?id=407416)
[ ] Timeline Docker: Time Change Shouldn't Mark Document as "Changed" (https://bugs.kde.org/show_bug.cgi?id=409443)
[ ] ~~Timeline Docker: Frame selection should also select layer for editing. (https://bugs.kde.org/show_bug.cgi?id=415977) (Ivan has [[ https://invent.kde.org/kde/krita/-/merge_requests/235 | an MR here ]] but it needs testing.)~~ //MR Rejected//
[x] Timeline Docker: Reconsider default "show in timeline" option. (https://krita-artists.org/t/toggle-show-in-timeline-default-setting/1754/4) There are cases where it isn't useful (masks, group layers) and there's an argument to be made that it makes the animation interface too messy. [[ https://invent.kde.org/kde/krita/-/merge_requests/289 | Merge Request ]]
[x] Timeline Docker: For layers that aren't added to the timeline docker, there should be a clearer indication that the selected layer is being shown as a temporary timeline layer. Could simply be named *Selected Layer or a checkered background, or something. https://bugs.kde.org/show_bug.cgi?id=376887 [[ https://invent.kde.org/kde/krita/-/merge_requests/334 | Merge Request ]]
[ ] Timeline Docker: Recursive Pinning or Better Group Handling. (What should it mean to "pin" a group and how do we best show it.) https://bugs.kde.org/show_bug.cgi?id=376889
[ ] Timeline Docker: Visualize playback range. (It should be clear at a glance where anim starts and ends.) https://bugs.kde.org/show_bug.cgi?id=373357
[ ] Timeline Docker: What should happen when frames are selected while animation in playing? https://bugs.kde.org/show_bug.cgi?id=373690
[ ] Timeline Docker: UI: Clean up hotkey interaction between navigation/moving layers on the timeline & translating image layer contents on the canvas. https://bugs.kde.org/show_bug.cgi?id=395866 https://bugs.kde.org/show_bug.cgi?id=372698 (Maybe should be done if/when merging with Animation Docker?)
[ ] Timeline Docker: UI: Save Timeline zoom level. https://bugs.kde.org/show_bug.cgi?id=372134
[x] Render Animation: Ensure all file formats available are functional and viable (https://bugs.kde.org/show_bug.cgi?id=412456) **[[ https://invent.kde.org/kde/krita/-/merge_requests/273 | Merge Request ]]**
[x] Render Animation: HDR settings from image sequence cannot be edited in the video tab. (https://bugs.kde.org/show_bug.cgi?id=417521) **[[ https://invent.kde.org/kde/krita/-/merge_requests/273 | Merge Request ]]**
[x] Render Animation: Warnings regarding HDR mode in Save -> PNG options and Render Animation dialog - https://bugs.kde.org/show_bug.cgi?id=416772 (note there is a similar one with issues with HDR mode; well, it needs a bit of discussion, I guess it would be best if both were implemented). **[[ https://invent.kde.org/kde/krita/-/merge_requests/273 | Merge Request ]]**
- [[ https://bugs.kde.org/show_bug.cgi?id=416325 | Related? ]]
[ ] Render Animation: Store export path (and possibly other render settings) in .KRA. (Suggested by @hurgar below) https://bugs.kde.org/show_bug.cgi?id=377158 https://bugs.kde.org/show_bug.cgi?id=370483
[x] Render Animation: Export only unique frames, not including holds or clones. (Requested by @Bollebib in T7070) **[[ https://invent.kde.org/kde/krita/-/merge_requests/273 | Merge Request ]]**
[x] Render Animation: Better handle odd render dimensions. (ffmpeg issue) https://bugs.kde.org/show_bug.cgi?id=396128
[ ] Render Animation: Render FPS should default to Timeline FPS. https://bugs.kde.org/show_bug.cgi?id=395230
[x] Layers Docker: "Non-recursive coloring of the group" (Requested by @Bollebib in T7070) -- Is the real problem here that coloring a group is overriding the user specified colors of children layers?
[x] Layers Docker: Filter layer handles by name. (Suggested by @Bollebib in T7070) -> KisLayerFilterWidget T12902 **[[ https://invent.kde.org/kde/krita/-/merge_requests/292 | Merge Request ]]**
[ ] Layers Docker: Decrease opacity of a layer handle while dragging and dropping.
[ ] Performance: Improve scrubbing performance by compressing/delaying onion skin rendering. (Suggested by @Bollebib in T7070)
[x] Misc: Frame change notifications. (Requested by @Bollebib in T7070) **[[ https://invent.kde.org/kde/krita/-/merge_requests/294 | Merge Request ]]**
[x] Misc: Allow editing and painting on normally-hidden isolated layers. (Requested by @Bollebib in https://bugs.kde.org/show_bug.cgi?id=383900 and T7070) **[[ https://invent.kde.org/kde/krita/-/merge_requests/267 | Merge Request ]]**
[ ] Misc: Better and more obvious integration of layer "soloing" feature (Shift+Click eyeball), including action/hotkey/menu item.
[ ] Misc: Re-apply last used filter, but prompt for settings. (Requested by @Bollebib in T7070)
[ ] Misc: Node Manager: Paint Layer -> Transparency Mask conversion works as expected but T.Mask -> P.Layer does not! https://bugs.kde.org/show_bug.cgi?id=419223
[ ] Misc: Node Manager: Conver animated Fill Layer -> Paint Layer removes frames https://bugs.kde.org/show_bug.cgi?id=405741
[x] Misc: Onion Skins: Cropping causes temporarily misaligned Onion Skin: https://bugs.kde.org/show_bug.cgi?id=419462
[ ] Misc: Onion Skins: Issues with onion skin compositing. https://bugs.kde.org/show_bug.cgi?id=405753
[x] Misc: Canvas display and timeline selection desynchronize on file load. https://bugs.kde.org/show_bug.cgi?id=403854
[x] Misc: Layer Rendering issues with Isolation + Visibility. https://bugs.kde.org/show_bug.cgi?id=394199
**3.) Refactors**
[ ] Misc: `QAction` naming should **always** match their representation in the menu system. See: https://bugs.kde.org/show_bug.cgi?id=393228
**4.) Features**
[ ] Audio: R&D Audio Subsystem (Bigger task. Will require separate phabricator task.) T2371 T12846 https://bugs.kde.org/show_bug.cgi?id=375867
[ ] Audio / Timeline Docker: Audio Waveform Preview in Timeline. T12846 https://bugs.kde.org/show_bug.cgi?id=393140
[ ] Audio: Allow for filepaths relative to Krita document. https://bugs.kde.org/show_bug.cgi?id=377095
[-] Animation Docker: Suggestion - Mark/create blank frames during playback (Pause button? Insert frames during playback?) https://bugs.kde.org/show_bug.cgi?id=412907
[ ] Animation Docker: Auto Keyframe Modes: "Combo Button" with two modes for automatic blank frames (new) and automatic duplicate frames (current behavior) https://bugs.kde.org/show_bug.cgi?id=367524
[x] Timeline Docker Redux! Incorporating the Animation Docker INTO the Timeline Docker. https://krita-artists.org/t/about-animation-related-dockers/2828/3 [[ https://invent.kde.org/kde/krita/-/merge_requests/317 | **MR** ]] [[ https://invent.kde.org/kde/krita/-/merge_requests/311 | **Related MR2** ]]
[ ] Timeline Docker: Frame Timing Adjustment Tool (related: https://bugs.kde.org/show_bug.cgi?id=418243 & https://bugs.kde.org/show_bug.cgi?id=404519) for quick adjustment to "1s, 2s, 3s, etc." for a selection of keyframes.
[ ] Timeline Docker: Wrap Scrubbing (https://bugs.kde.org/show_bug.cgi?id=356059) and possibly frame addition. (Also requested by @Bollebib in T7070)
[ ] Timeline Docker: Animation cycles. In-progress by @jounip. (https://invent.kde.org/kde/krita/-/merge_requests/157) Will reach out to him.
[ ] Timeline Docker: Add more Layers Docker functionality. @Bollebib Needs more info.
[ ] Timeline Docker: Improved Copy/Paste/Merge/Select All/etc. [Should probably work with existing hotkeys (ctrl-c, ctrl-v, etc.)!] https://bugs.kde.org/show_bug.cgi?id=377387 (kind of) https://bugs.kde.org/show_bug.cgi?id=417481 https://bugs.kde.org/show_bug.cgi?id=376883 https://bugs.kde.org/show_bug.cgi?id=377098
[x] Timeline Docker: Display active frame's number near playhead https://bugs.kde.org/show_bug.cgi?id=377111
[ ] Timeline Docker: Double-click empty frame to create a new keyframe? https://bugs.kde.org/show_bug.cgi?id=374856
[x] Timeline Docker: Actions for selecting the previous/next frame of the same color as the currently selected frame. (Suggested by Ahmet T)
[x] Synchronize timeline docker highlighted frame with animation docker frame number. https://bugs.kde.org/show_bug.cgi?id=377112
[ ] KisLayerFilterWidget on TimelineDocker. https://bugs.kde.org/show_bug.cgi?id=377731
[x] Render Animation: PNG/Image Export Setting That Only Exports Unique Frames (Requested by @Bollebib)
[ ] Render Animation: Add a way to render animation from prerendered image sequence https://bugs.kde.org/show_bug.cgi?id=411109 https://bugs.kde.org/show_bug.cgi?id=369503 (really helpful for big animation when the user is short of RAM... and the bigger the animation is, the easier it gets ;) ) (@confifu showed interest in working on this)
[ ] Render Animation: WebM support https://bugs.kde.org/show_bug.cgi?id=407301
[ ] Render Animation: Compositions Docker: Render Animations from Compositions https://bugs.kde.org/show_bug.cgi?id=404245
[ ] Render Animation: Render Selected Timeline Region https://bugs.kde.org/show_bug.cgi?id=389198
[x] Misc: Activate Next/Prev Sibling Layer aka Breadth First traversal aka Page Up/Down, without entering groups (Requested by @Bollebib in T7070) [[ https://invent.kde.org/kde/krita/-/merge_requests/291 | Merge Request ]]
[ ] Misc: Activate Next/Prev visible onion skin frame. https://bugs.kde.org/show_bug.cgi?id=405431
[ ] Misc: Convert multiple layers into one animation layer, convert one animation layer into multiple layers. (Requested by @Bollebib)
[ ] Misc: Convert animation layer (or range of frames within an animation layer) into an animated brush, cropping by selection area. (Requested by @Bollebib)
[ ] Misc: "Show Animation While Editing" Feature. (https://bugs.kde.org/show_bug.cgi?id=372449). I think maybe having a "Play Animation" checkbox in the overview docker would be acceptable?
[ ] Misc: Color Replace Filter (https://bugs.kde.org/show_bug.cgi?id=373571) as a complimenting tool for animation production.
[ ] Misc: Color Split operation https://bugs.kde.org/show_bug.cgi?id=373573
[ ] Misc: Crop "Applies to" Current Frame. (New Crop Tool Option) https://bugs.kde.org/show_bug.cgi?id=395891
[ ] Misc: Onion Skins: Reference Frames / "Tap Wari" https://bugs.kde.org/show_bug.cgi?id=395928 M148
[ ] Misc: Multi-frame operations and filters. https://bugs.kde.org/show_bug.cgi?id=406327 https://bugs.kde.org/show_bug.cgi?id=373305
[x] Misc: "Isolate Active Layer" (rename) & "Isolate Active Group" (new isolation mode). https://bugs.kde.org/show_bug.cgi?id=377468 [[ https://invent.kde.org/kde/krita/-/merge_requests/310 | Merge Request ]]
[x] Misc: *Wig-style* zoomable scrollbar (for use on Timeline Docker and elsewhere). [[ https://invent.kde.org/kde/krita/-/merge_requests/311 | Merge Request ]]
[ ] Misc: Playback FPS counter. https://bugs.kde.org/show_bug.cgi?id=377164
[ ] Misc: Tools: "Speed based smooth dropoff" Stabilization decreases gradually as stroke movement speed increases. (Requested by @Bollebib in T7070)
[ ] Camera: https://bugs.kde.org/show_bug.cgi?id=378288 https://bugs.kde.org/show_bug.cgi?id=377997
[ ] Animation Curves Docker: Workflow UI/UX improvements. https://bugs.kde.org/show_bug.cgi?id=399120 [Might be out of scope...]
**5.) Documentation**
[ ] Layers Docker: Update documentation to reflect new KisLayerFilterWidget functionality.
-----
Finally, as with all things Krita, **this is an open project and we welcome input and comments from everybody, especially artists and other community members.**
As such, please feel free to leave a comment or question below, [[ https://docs.krita.org/en/contributors_manual/community.html | chat with us on IRC ]], participate in threads linked above,
or send a mail to the mailing list or Eoin and I directly to join the ongoing discussion about the next steps and future direction of animation with Krita.
Thanks!