Bug 458862

Summary: Issues and feature requests regarding animation (timeline / onion skinning)
Product: [Applications] krita Reporter: Maarten <info>
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal CC: emmetoneill.pdx, eoinoneill1991
Priority: NOR    
Version First Reported In: 5.1.0   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Maarten 2022-09-08 06:31:38 UTC
ISSUES

* Layers aren't synchronized while playing
When playing an animation consisting multiple layers with keyframes these layers don't synchronise but seem to be individual instances playing individually at a different speed/refresh rate. This is obviously not what we want when creating frame by frame animations and makes the preview of animations unreliable.

* Double onion skins, when just one is requested
Having onion skins turned on for showing oninon skinning on previous frame only it happens a lot that more onion from-skins are shown. So more than one. When this happens switching to another frame in the timeline and back again fixes it (redraws) by showing just the wanted onion skin.

* Sync issues between layers in timeline and layers in layer panel
It happened a few times here now that actions applied to layers shown in the timeline docker don't match with the same layers in the layers docker causing wrong layers to be edited. When knowing more about when exactly this happens I'll let you know.

* Timeline is skipping keyframes
While playing often keyframes are skipped while playing. They aren't only skipped in the display of the timeline view, but also in the viewport the frame is not shown. This makes previewing animations unreliable.

(* Glitches in the onion skinning, but already mentioned in https://bugs.kde.org/show_bug.cgi?id=446506)

--

FEATURE REQUESTS

* Please keep start and end frames fixed!!!!
When working with animations it's pretty frustrating to constantly see the start and end frames of the timeline loop change 'automatically'. I guess this got automatically changed when adding frames before the current start frame or after the end frame, but we never want these start and end framenumbers to loop to automatically change. It's frustrating the workflow now, is prone to errors and so time consuming when this should be easy to solve: just keep the start and end framenumbers fixed until we manually change it. if we'd like to have a different view range we would easily change the framenumbers ourselves for that single time we'd like to have a different range.

* Please add a checkbox/switch to toggle repeat/loop of the timeline on or off
Often we don't want to preview our animations looped, but there seem to be no way to turn looping off other than changing the end-frame (which we'd like to keep the same, as other times we do want to loop the same animation while previewing)

* Please add a way to cycle onion skinning
When creating looping animations there's no way now to see the onion skin of the last frame when working on the first frame and visa versa. This is important to see when creating looping animations as the last frame comes before the first frame and the first frame comes after the last frame. We should see the onion skinning of these frames of the 'other side' to be able to make seamless loops. That's impossible now. We can copy these frames by hand, but that's tedious and far from an ideal workflow as we need to add frames we don't want to add, need to apply changes everytime to the other frames etc.

SOFTWARE/OS VERSIONS
Windows:  10
Krita: 5.1.0
Comment 1 Eoin O'Neill 2022-09-12 18:43:09 UTC
Hi Maarten,

Thanks for taking the time to file bugs/wishlist requests. There's quite a few issues to tackle here, so I'll probably take the time to split this up into multiple bug reports once I can confirm them as that's typically how we do things (since 1 post with many issues within makes it hard to track actual progress). If you could, in the future, post 1 issue or wish per post, that would be great.

Before I do that though, I have a few questions or observations...

> * Layers aren't synchronized while playing
> When playing an animation consisting multiple layers with keyframes these layers don't synchronise but seem to be individual instances playing individually at a different speed/refresh rate. This is obviously not what we want when creating frame by frame animations and makes the preview of animations unreliable.

This doesn't sound right, it shouldn't be possible as the image itself is the only keeper of time (a layer and another layer cannot have different "current times", for example.) Can you provide an example project for this? Are you positive you haven't misaligned two keyframe positions in the timeline docker?

> * Please keep start and end frames fixed!!!!
> When working with animations it's pretty frustrating to constantly see the start and end frames of the timeline loop change 'automatically'. I guess this got automatically changed when adding frames before the current start frame or after the end frame, but we never want these start and end framenumbers to loop to automatically change.

For the record, this is configurable as it's something we know users have differing opinions on. You can turn this off in unchecking `Settings > Configure Krita... > General > Miscellaneous  > Adapt Playback Range to Keyframes` I think an argument could be made that this setting should be made easier to find. Some users do actually prefer to have some adaptability to playback range (particularly, new users who just want a frame to render at a certain time, for instance.)


> * Timeline is skipping keyframes
> While playing often keyframes are skipped while playing. They aren't only skipped in the display of the timeline view, but also in the viewport the frame is not shown. This makes previewing animations unreliable.

This is also a setting, though more cleanly presented in the GUI as the "drop frames" button. Generally speaking, animators like to keep frame time consistency so stopping when the computer slows down is not ideal when it comes animation. So, for example, frame 20 would either always occurs at 0.8333 seconds or is skipped when it misses that deadline in favor of the next immediate frame (when the computer is next available.) You can disable this by unchecking the `drop frames` button on the animation title bar.
Comment 2 Maarten 2022-09-13 14:33:53 UTC
Hi Eoin,

No worries. I understand that it's best to split items and I normally do, but this time it were a little bit too many for the time I had so, as an exception, posted them in one thread. Understand why you ask and I Will mention other things per item from now on.

**SYNCHRONISATION**

>> This doesn't sound right, it shouldn't be possible as the image itself is the only keeper of time (a layer and another layer cannot have different "current times", for example.) Can you provide an example project for this? Are you positive you haven't misaligned two keyframe positions in the timeline docker?

I woult think the same, but it really happened. Mostly frames are synchronized, but sometimes they're not. Look in the video I created during the making of an animation. At around 7 seconds of the video below on youtube (when the drawn body comes in), the beak is not playing synchronized with the body. While this WAS working when just manually stepping to the next frame. So frames are show differently when playing an animation compared to when stepping through the frames one by one. You can clearly see in the video that later on suddenly the exact same beak (unchanged) is (somewhat?) synchronized again with the body.

https://youtu.be/iuyUtVQAj5E?t=7


**FIXED START/END FRAMES**

>> For the record, this is configurable as it's something we know users have differing opinions on. You can turn this off in unchecking `Settings > Configure Krita... > General > Miscellaneous  > Adapt Playback Range to Keyframes` I think an argument could be made that this setting should be made easier to find. Some users do actually prefer to have some adaptability to playback range (particularly, new users who just want a frame to render at a certain time, for instance.)

Thanks! That was exactly what I was looking for, but couldn't find. That did the trick.

> This is also a setting, though more cleanly presented in the GUI as the "drop frames" button. Generally speaking, animators like to keep frame time consistency so stopping when the computer slows down is not ideal when it comes animation. So, for example, frame 20 would either always occurs at 0.8333 seconds or is skipped when it misses that deadline in favor of the next immediate frame (when the computer is next available.) You can disable this by unchecking the `drop frames` button on the animation title bar.

Yeah, I found that one after posting the issue here. Sorry for not mentioning this. BTW It's practically impossible to see if this button is selected (at least when in dark mode). It could use way better contrast at least in that theme as you just cannot notice it's on or off.

For the rest basically the 'cycle onion skin' option was the one I really missed, besides being able to copy and paste parts of one keyframe to another. Both are overly complicated and time consuming now and I missed them a lot.


But especially for free software you guys did a very great job and I can't complain. Also great that you react to this thread so soon already! There are always things that can be better, but I love the brushes and just love the overal feeling of using Krita. Keep up the great work!
Comment 3 Emmet O'Neill 2023-01-04 23:23:50 UTC
I spent some time retesting synchronization across a few of my test files, but I wasn't able to reproduce any issue.

Is this still something that you're seeing regularly, Maarten? 
If so, providing a test file or known steps to reproduce the problem might help us sort it out.

Because I can't reproduce it myself right now I'll be setting this one to "WORKS FOR ME" status, but if this is something you're able to help us reproduce then we'll re-open the bug report.

>But especially for free software you guys did a very great job and I can't complain. Also great that you react to this thread so soon already! >There are always things that can be better, but I love the brushes and just love the overal feeling of using Krita. Keep up the great work!

Thanks for the kind words, and of course for the bug report. :)