Bug 356059 - Krita Animation Beta - Wrap-around Frame Scrubbing
Summary: Krita Animation Beta - Wrap-around Frame Scrubbing
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Animation (show other bugs)
Version: 2.9.9
Platform: Ubuntu Linux
: NOR wishlist
Target Milestone: ---
Assignee: Emmet O'Neill
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-29 09:09 UTC by sayantan.chaudhuri+kde
Modified: 2020-07-01 22:05 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sayantan.chaudhuri+kde 2015-11-29 09:09:52 UTC
Feature request: When scrubbing frames or keyframes using the Animation Docker (or keyboard shortcuts), the active frame should wrap-around the designated animation range. 

I believe this is would be desirable feature when animating loops, which is a common enough use-case when producing animation.

Reproducible: Always
Comment 1 sayantan.chaudhuri+kde 2015-11-29 11:30:35 UTC
Steps to Reproduce: 

1. Create some frames. 
2. Begin to scrub by frame or keyframe.

Actual Results: 

The scrubbing stops at the first or last non-empty frame when moving next-wards or previous-wards respectively.

Expected Results: 

The active frame should wrap around after reaching the limits of the defined animation loop range and begin to scrub from the opposite end. Perhaps as an optional mode.
Comment 2 Halla Rempt 2016-01-24 10:00:13 UTC
If you select a sequence of frames and press play, it will loop. Will that functionality be sufficient for your usecase?
Comment 3 sayantan.chaudhuri+kde 2016-01-24 15:14:55 UTC
I'm afraid this does not address my use-case, which is orthogonal to that feature. 

Scrubbing frames with the keyboard or mouse in order to more carefully visualize timing or frame quality isn't something we can get in real-time. 

We can already scrub by frames or key-frames which proffers this very helpful feature for _non-looping_ animation, as well as looping animation _as long as_ we don't try go over the loop's boundaries. But this boundary only exists in the interface, not in the intuition when dealing with loops; as it stands, one would have to manually go all the way to the opposite end of the range, and that process breaks the visualization entirely. In practice we may often want to scrub both ways beyond the boundary to check the animation there. In fact, we may want to cross the loop boundaries _even more so_ to see if the animation there is seamless.

Of course, playing back the animation helps a _lot_ too, but, as I mentioned, frame-by-frame scrubbing allows more careful observation than real-time playback. Since we already have that within the range of a loop, this request is to extend it to loop across the boundary much like the playback.

P.S. That said, the ability to loop any arbitrary selection range would be another very useful feature, if we are to work on a sequence with sub-ranges that loop by themselves, such as when trying to make two different loops of a game-sprite be sequentially seamless, making sure that either loops are seamless themselves upon making changes to their transition. But that use-case is a lot more _specific_ than scrubbing the entire range of allocated frames for a given shot that loops in its entirety, and doesn't aid with that. And animating complete loops is a lot more common use-case encountered frequently in games.

At the risk of sounding greedy, If looping over arbitrary selection ranges is implemented, I would in fact also request the same feature as this issue be extended to that! Looped scrubbing really is sincerely very useful when dealing with any kinds of loops!
Comment 4 Halla Rempt 2016-06-16 11:58:30 UTC
Okay, I can confirm that Krita doesn't do this and that it might be useful. I doubt it'll get done soon, though!
Comment 5 Eoin O'Neill 2020-07-01 22:05:52 UTC
Git commit 92c46014259a63bad7ab9401ad1e3649eecce898 by Eoin O'Neill.
Committed on 01/07/2020 at 22:05.
Pushed by eoinoneill into branch 'master'.

Added Basic Frame-Wrap Scrubbing for Next / Previous Frame Actions.

(For Krita 5.0)

M  +21   -5    plugins/dockers/animation/timeline_docker.cpp

https://invent.kde.org/graphics/krita/commit/92c46014259a63bad7ab9401ad1e3649eecce898