| Summary: | Request: make merging layers safer when working with animations | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | rebuilderster |
| Component: | Animation | Assignee: | Dmitry Kazakov <dimula73> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | griffinvalley |
| Priority: | NOR | ||
| Version First Reported In: | 5.2.0 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/b21ca440a6658be2869fe0d6084702f1a30b0b11 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
rebuilderster
2023-10-13 05:57:46 UTC
Assigning to dmitry as pr his request. How about the following solution: 1) When merging a non-animated layer over the top of an animated one, the layer is merged into the **current frame** (potentially, with auto-keyframing) 2) The user will also see a floating message telling "To merge the layer into all the frames create at least one frame in the source layer" A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1962 (In reply to Dmitry Kazakov from comment #2) > How about the following solution: > > 1) When merging a non-animated layer over the top of an animated one, the > layer is merged into the **current frame** (potentially, with > auto-keyframing) > > 2) The user will also see a floating message telling "To merge the layer > into all the frames create at least one frame in the source layer" This sounds good to me, as long as the floating message is relatively unobtrusive and doesn't require user interaction to dismiss. Git commit d259fa1066f8c95b0b99bfd6a0f64393050c9046 by Dmitry Kazakov. Committed on 20/10/2023 at 17:39. Pushed by dkazakov into branch 'master'. [new-string] Fix merge down of an non-animated layer to an animated one 1) When merging a non-animated layer over the top of an animated one, the layer is merged into the **current frame** (at the current time position) 2) The user also sees a floating message telling to create a new frame to fall back to the old behavior. M +2 -2 libs/image/kis_group_layer.cc M +1 -1 libs/image/kis_group_layer.h M +15 -11 libs/image/kis_layer.cc M +1 -1 libs/image/kis_layer.h M +29 -6 libs/image/kis_layer_utils.cpp M +2 -2 libs/ui/flake/kis_shape_layer.cc M +1 -1 libs/ui/flake/kis_shape_layer.h M +17 -6 libs/ui/kis_layer_manager.cc https://invent.kde.org/graphics/krita/-/commit/d259fa1066f8c95b0b99bfd6a0f64393050c9046 Git commit b21ca440a6658be2869fe0d6084702f1a30b0b11 by Dmitry Kazakov. Committed on 20/10/2023 at 17:40. Pushed by dkazakov into branch 'krita/5.2'. [new-string] Fix merge down of an non-animated layer to an animated one 1) When merging a non-animated layer over the top of an animated one, the layer is merged into the **current frame** (at the current time position) 2) The user also sees a floating message telling to create a new frame to fall back to the old behavior. (cherry picked from commit d259fa1066f8c95b0b99bfd6a0f64393050c9046) M +2 -2 libs/image/kis_group_layer.cc M +1 -1 libs/image/kis_group_layer.h M +15 -11 libs/image/kis_layer.cc M +1 -1 libs/image/kis_layer.h M +29 -6 libs/image/kis_layer_utils.cpp M +2 -2 libs/ui/flake/kis_shape_layer.cc M +1 -1 libs/ui/flake/kis_shape_layer.h M +17 -6 libs/ui/kis_layer_manager.cc https://invent.kde.org/graphics/krita/-/commit/b21ca440a6658be2869fe0d6084702f1a30b0b11 Thank you for the fix. This is safer now, but it's still not perfect. For one thing, if you create a layer to paint on, then scrub around the timeline, the contents of that layer are displayed on other frames than the one you painted on as well. This is first of all confusing because it looks like you're going to overwrite layer contents on other frames if you merge down, and it also makes it hard to compare frames because you have to either create keyframes on the layer being painted on, turn it off, or merge it down before you can see what the other frames should actually look like. I continue to suggest creating a single keyframe for every layer created, on the frame the user is viewing at the time, and letting the user manually specify which layers they want to be held over multiple frames. I feel that is a better default than the current one. |