pencil2d / pencil

Pencil2D is an easy, intuitive tool to make 2D hand-drawn animations. Pencil2D is open source and cross-platform.
http://pencil2d.org
GNU General Public License v2.0
1.45k stars 272 forks source link

Don't move time indicator on certain keyframe operations #1247

Open Jose-Moreno opened 5 years ago

Jose-Moreno commented 5 years ago

Issue Summary

This is a mighty annoying issue, when you're organizing keyframes and you delete one just to have the time indicator move back. Don't please. Let it behave the same way like when you add a keyframe, where the time indicator sticks in the same frame.

This may sound like a very odd and particular request but i've had to struggle with this when working on Pencil2D. It's one of those things that no one software does.

If we go further the time indicator should not react to the keyframes. You are always expecting it to keep showing the frame you want it to.

In the case of keyframe duplication it feels ok because it takes you to the duplicate, but it could be better by allowing you to duplicate the previous keyframe on ANY frame the time indicator is located at.

Otherwise let's not move the time indicator without user intent.

Edit: Due to feedback by scribblemaniac, I agree that on this last point, having the current behavior can work very well for a different use case, like when you want to promptly delete all the keyframes quickly, so could this be a toggle behavior?

Edit2: Thinking about it more calmly we could have modifiers to extend the behavior, of the keyframe manipulation operators.

The premise is that none of these should move the time indicator, but there ar euse cases where it is indeed desired that it moves. The keys is user intent.

Steps to reproduce

  1. Move the time indicator to a desired frame
  2. Create a new keyframe: The time indicator stays on the chosen frame
  3. Delete the keyframe: The time indicator moves one frame back (?????)
  4. Move the time indicator to the previous keyframe
  5. Duplicate the current keyframe. the time indicator is moved to that location.
MrStevns commented 5 years ago

If we go further the time indicator should not react to the keyframes. You are always expecting it to keep showing the frame you want it to.

This sounds a bit wrong but maybe that's just my interpretation of the above sentence. The time indicator should move to the position where you intend to create a new keyframe. We can't stay on a frame, create a new somewhere else and not expect the indicator to not move since it's tightly coupled together.

I do agree though that deleting a frame shouldn't necessary scrub back.

Jose-Moreno commented 5 years ago

@CandyFace

The time indicator should move to the position where you intend to create a new keyframe

It's exactly as you put it . Maybe i should have phrased that differently. Apologies for any confusion.

The time indicator has to move where you want it to. So you move the indicator and then create, duplicate or delete keyframes.

So far it almost works like that, what I don't agree is there inconsistent behavior where creating a keyframe keeps the time indicator in place, but for deleting and duplicating it does not.

In the latter cases it's being proposed that:

  1. if you move the indicator and duplicate it should be similar to keyframe creation but using as a base the "previous" keyframe
  2. if you place the time indicator on top of an existing keyframe it should keep the current behavior where the keyframe is duplicated and the time indicator moves to the new keyframe (it still would seem to obey the same rules as no. 1)
  3. If you're deleting a keyframe it should not move backwards, unless you want it to (thus the proposed use of a modifier for alternate behavior)
  4. Deleting a keyframe should be possible from it's "exposure" (this would be akin to say "delete previous keyframe" if you're on an empty frame)

Some of these ideas might not be necessarily implemented now, as there might be changes with a new timeline implementation. So all i'm asking is to keep it in mind once we do get to that point.

Regarding my comment on your undo PR, it's just the toggle that I'd like to see if you're going to work on that feature anyway. But if it's not possible then we should at least make it clear that such feature will come eventually :smile: