GNOME Bugzilla – Bug 686745
screenShield: Tweak curtain animation timings
Last modified: 2012-10-26 11:03:16 UTC
The curtain animation didn't feel "right" to me. Please test and comment. Feedback greatly appreciated.
Created attachment 227110 [details] [review] screenShield: Tweak curtain animation timings Rationale: - Getting something out of the way should be quick; - Very few things in the real world move linearly so linear animations, especially for something as big and visible as this, felt too artificial; - Moving the curtain out should start slowly to make it feel heavy (it fill the whole screen after all) but quickly accelerate towards the end to make it feel snappy too; - Moving the curtain in can be slower and have a more nuanced animation to make it feel more like a real object.
Completely agree with this bug - nice work Rui. Bug 682537 is related.
Review of attachment 227110 [details] [review]: Definitively an improvement. ::: js/ui/screenShield.js @@ +685,3 @@ { y: 0, time: SHORT_FADE_TIME, + transition: 'easeInOutQuad', Is this InOut on purpose?
(In reply to comment #3) > Review of attachment 227110 [details] [review]: > Is this InOut on purpose? Yes, I played with the various functions and this seemed the best to me. It starts slowly so that it's not too abrupt on the user, then accelerates in the middle to avoid being boring, and again slows down to land gracefully :-)
I very much agree on linear being wrong and too long. I think the curtain fall is still wrong. It should not gradually accelerate at the beginning (so I'm guessing easeOutQuad) and it should happen even faster than the lift. .1? .2?
Just tested this; it is much, much better. It seems to affect both raising and lowing the shield.
Created attachment 227239 [details] [review] screenShield: Tweak curtain animation timings -- (In reply to comment #5) > I think the curtain fall is still wrong. It should not gradually accelerate at > the beginning (so I'm guessing easeOutQuad) and it should happen even faster > than the lift. .1? .2? Ok, I reduced it to be the same as raising which is .3. At this speed, the InOutQuad doesn't look so good any longer so I also changed it to OutQuad now. I don't think we want to go lower than .3 and still do the full translation animation though. It's too jarring IMO to see something this big (especially on a big external screen) moving so fast and the animation doesn't look smooth because there's only a dozen frames or so (at 60 fps). At that point I think we should either not animate at all or at most do a cross fade. Anyway, .3 seems good to me, opinions?
Review of attachment 227239 [details] [review]: Just some random thoughts, feel free to ignore both of them - also, this looks like a nice improvement for the gnome-3-6 branch (technically this is a UI freeze break, but given that it has zero impact on screenshots and documentation, I'd say just push it) ::: js/ui/screenShield.js @@ +527,3 @@ { y: 0, time: time, + transition: 'easeInQuad', It's slightly odd to use different transitions for dropping down the shield, but OK with me if done on purpose (and the two cases differ significantly regarding the drop height) @@ +685,3 @@ { y: 0, time: SHORT_FADE_TIME, + transition: 'easeOutQuad', Maybe change this to CURTAIN_SLIDE_TIME now? Technically it shouldn't matter if the shield and the dialog animate at different speeds, in practice CURTAIN_SLIDE_TIME and SHORT_FADE_TIME are the same now, and this never was a fade animation ...
Thanks, will also push to gnome-3-6. Attachment 227239 [details] pushed as b936e60 - screenShield: Tweak curtain animation timings