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.47k stars 273 forks source link

Horizontal flip is working unexpectedly #1360

Open davidlamhauge opened 4 years ago

davidlamhauge commented 4 years ago

When you flip your drawing horizontally, using 'Horizontal flip', the change is not considered a 'real' change. That must be a bug?! Shouldn't there be some kind of warning? This is truly weird, but my guess is that some other software has the same 'feature'...

### Actual Results I flip my drawing, using the icon in the Display window, and I'm happy with the result, so I let it stay there. If I the press Ctrl+N, I'd expect Pencil2D to ask me, if I want to save my changes. ### Expected Results I would expect that alteration of my drawings is considered an alteration, and that Pencil2D reacted as that. ### Video or Image Reference ### Steps to reproduce Open Pencil2D Make a cross in the left side. Save your file Flip it horizontally, using the Display icon Press Ctrl+N A new file is opened, and your changes are gone ### System Information + Pencil2D Version: + Operating System: + RAM Size: + Graphics Tablet:
MrStevns commented 4 years ago

This is not a bug, it's intentional. There's a reason it works as a toggle and you can see the button being held down, that's because the view is meant to be flipped temporarily. In drawing applications I often use this kind of feature to show the same drawing from a different angle, because our eyes gets lazy after a while, when looking at the same drawing, a feature like this can help show potential mistakes and or inconsistencies in our drawings/frames without making changes to our work.

davidlamhauge commented 4 years ago

I discovered it through this answer Jose gave, and I had to test is. I was chocked, when I found out he was right. I could have been knocked down by a feather. If I use the overlays or the grid, I know that it is something that I've not drawn myself, but when Pencil2D manipulates my drawing by flipping it horizontally, then I am 100% certain that my drawing is altered, and then I expect that Pencil2D will warn me, so the change can be saved, if I suddenly press Ctrl+N or Ctrl+O. There must be some way we can warn users, that the change they see, are just for fun, and not real, from Pencil2Ds perspective.

MrStevns commented 4 years ago

The Display widget consists of temporary effects, none of them modify the image, why would the view being flipped be any different? I do not like the idea of showing a dialog or popup when any of the flip view buttons are pressed. You can visually see that the button is on or off, that should be enough. The icon could be remade to look more like the view being flipped rather than simple arrows, I've suggested this in the new icon design issue too.

davidlamhauge commented 4 years ago

When I animate, I don't look at the buttons to see whether it's a toggle button, normal button or whatever. I look at the screen and my animation, and if I decide to flip the direction of my animation, I trust that Pencil2D warns me if they're not saved. In this case I'll obviously be disappointed. To me, it is, will forever be, a bug.

MrStevns commented 4 years ago

I'd say that's a fault of the user, the feedback of the UI is there for you to understand its intend. If it wasn't important, then it would not be displayed at all.

Consider the following: You enable any of the overlays, how do you know it's a temporary effect and the image has not been altered for good? You don't because nothing says it's a temporary effect. You know it's a temporary effect because you've implemented it but anyone else could say the same about the overlays as you do with the flip view buttons.

There's a certain exploration and understanding of how and what to expect of the applications we use. One of them entails one to try out a feature and see the change happen and have trust in the developers, that what is happening doesn't require any further action or cause any harm, furthermore if something did require your attention, then you would be informed about it. The state of the button being shown as on or off is a visual feedback to the user, often to tell that what they're doing can be undone or reverted.

Jose-Moreno commented 4 years ago

Hey @davidlamhauge we discussed this with @CandyFace some time ago when talking about the real-time visualization of FPS over the canvas https://github.com/pencil2d/pencil/issues/1083 which is a kind of overlay.

I think the best way to visibly show that the canvas is mirrored is to have an actual overlay text saying "mirrored view" so it's seen as an active property and once it's turned off, the text also disappears. It could be presented like this:

image

Sometimes users are simply distracted with the office noise or don't know what to expect from the software and a simple overlay text can potentially change that awareness. Also since it will not be seen in the final render the text itself it's harmless to your animation anyway (like anything related to overlays).

While I agree the display panel indicates you pressed the button, you don't really know if it's pressed state is NORMAL, or if it's REVERSED, you can probably have some intuition but it's not clear and this focus problem is supported by the fact that various users have come to us asking how to reverse their animation work because they started working without understanding they were drawing in "reverse" the whole time.

Also we probably really need to change the names of these functions in the menus , the shortcuts and the display panel tooltips because flipping and mirroring have different connotations. Flipping should permanently change the canvas (or drawing) orientation while mirroring is temporary.

Ideally, and as CF hinted, I'd say the display panel should hold everything related to how you view the canvas (hence display) but the flip "tool" should be moved as a functionality that works as part of the options for either the move tool or the select tool instead of being a separate function people can't find easily.

davidlamhauge commented 4 years ago

I was genuinely shocked when I found out that the horizontal flip was a temporary thing, and I think it is misleading. Before we had the overlays you mention @CandyFace, we had the grid. When I activated/deactivated the grid, I had no worries whatsoever, that my drawings were affected. Why would they be? On the other hand, when I've made a drawing, and I let Pencil2D flip it horizontally, and I can see it's been flipped, then I'm 100% sure, that my drawing has been altered. I can see it - right in front of my eyes. When I suggest that "There must be at way to warn the users, ...", I think @Jose-Moreno 's idea with a text overlay is fine. It needn't be more than that, but it would be good to have it where your eyes are, just to remind you. If the flip buttons should keep their place, maybe the window should be renamed to 'Visual aids' or something similar?

davidlamhauge commented 2 years ago

I am still puzzled about the behavior of the Horizontal Flip. It is truly disturbing for me, that you ask Pencil2D to flip your drawing, and you can see it is done, and then again it isn't, because it is only showing you what it would look like, if you flip your drawing. Disturbing and counter-logical. But... - it is apparently the way it is supposed to work, so I suggest we close this issue. Before we close it, I would like ask if we could consider giving the widget a more meaningful name? The name 'Display' is not telling anything. It should be 'Visual aids', 'Visual drawing aids' or something else that describes the features in the widget.

Jose-Moreno commented 2 years ago

@davidlamhauge I agree the labels are confusing. In most programs this is called a Mirror View (Horizontally / Vertically) command. I think these functions should be called Horizontal Mirror View 🪞 & Vertical Mirror View 🪞 instead of what we have.

Some of the solution proposals I provided before would probably be better as a new enhancement requirement instead.

Related to your other comment, Visual aids instead of Display sounds fine as long as we don't add anything that's not a visual assistant, overlay or guide to the panel, and so far we have not strayed away from that guideline so I think it'd be fine.