诺基亚

注册

 

发新话题 回复该主题

那些说过渡动画没用的人,你们真的懂手 [复制链接]

1#
我国著名白癜风研究专家 https://yyk.familydoctor.com.cn/2831/content_927366.html

很多人觉得“过渡动画”没有必要,新手机一到手就去开发者模式里把过渡动画全部关闭,并开始输出自己所谓“喜欢直接了当的快”这种观点,更有甚者还做起了能关闭广告的白日梦。但我觉得他们之所以有这种行为,恰恰是因为接触到的产品不够广泛,或者手机对于他们来说就是个通讯工具,否则一个如此重要,甚至是评判一个系统是否有“灵*”的东西怎么能被如此轻易地忽视呢?

过渡动画的必要性

一切的前提:你的手机不仅仅是个通讯工具,你日常和它互动的次数很频繁,如果手机在你手中只是个所谓“老年机”的存在,那接下来的论述对你来说就毫无意义。而动画的形成的原因这里就不详细解释了,你只需要知道,它是由排列在时间线上的一张张静止的照片组成的就行了。

如果一个过渡动画从开始到结束的速度很快,你的眼睛里就不会看到任何细节的体现,速度过快很显然会觉得突兀,整个过程全靠脑补。而如果动画过慢,你或许会认为它甚至不算是一个动画,就好像老师上课放的PPT一样,一页一页翻给你看罢了,而且很有可能会翻到上一页,这种拖沓感对常人的耐心是种巨大的挑战,一般人很难忍受。

那么,究竟怎样的动画才能满足常人的视觉需求呢?答案是:符合物理世界的运动规律。这句话不难理解,我们之所以觉得某种动画合理或者不合理,就是基于现实世界中的认知来评判的,人都是在环境中慢慢形成一套对事物的基本判断标准,这点每个人都一样。

动画的基本概念,为什么会有差异?

当然,话说起来很简单,等到真正去做的时候肯定会遇到各种各样的问题。比如每个手机厂商对动画的调节差异都很明显,iOS的动画是公认的业界老大,Android手机一直被诟病卡顿、不顺手的原因也和它过渡动画的调教有直接的关系,要想了解差异背后的原因,首先要知道动画制作的几个基本概念。

动画的基本概念

前面我们讲过了,动画是由一张张照片组成,所以一个动画从开始到结尾中间肯定有过渡画面,这些过渡画面和起始画面有一个名称就叫“张数”,张数的多少,直接决定了整个动画的细腻过程。

另一个概念是“造型”,拿图标举例,从人手触摸到打开再到关闭,中途返回,长按等操作,有的系统做了比较细腻的适配,有的则只是用了单一的静止画面来呈现。

接下来就是“轨道”,一个动画中,所有物体的运动都会有一个曲线,或者说痕迹,把运动开始到结束物体的偏移位置的坐标曲线在坐标轴上连来,就能得到运动“轨道”。

最后就是“踩点”,它是在相同时间间隔内,动画中的每个事物的“造型”在“轨道”上的位置来决定的,如果通过慢动作把一秒平分为多个相同的块,就能很清晰的看到每个事物的“踩点”。

从上述文字我们可以得出:一个优秀的动画,起码需要这四个关键因素的相互协调来完成,任何想投机取巧的行为都会被现实无情的抛弃。做的不好用户肯定不满意,吐槽是必然的。但影响最大的还是用户对品牌的认可度,品牌效应一旦形成,想要做改变就很难了。比如很多人口中的“华为拍照最好”,“小米产品lOW”,“OV高价低配”,这些观念会烙在用户脑海里很长时间,虽然也有很多接触到较多产品,对比后发现这些是错误言论的人,但是,大多数人没有机会去深入了解,“人传人”在现实中的影响可能比你我想象中的还要广泛。

形成差异的原因

如果说之前Android和iOS差异大的原因是起步时各家对过渡动画的了解不够的话,那么多年的发展后,很多东西一定都有了比较深入的研究了,那么为什么有些厂商做的过渡动画还是得不到认可呢?其实这个问题涉及的东西比较复杂,平台,开发工具、人员,厂商努力程度等都有差异,仅仅从一方面分析并不能看到本质。

在讨论之前,还要明确一点,就是硬件的提升肯定会带来质的改变。比如屏幕的高刷新率,触控采样率,SOC的图像处理能力,毕竟动画的渲染需要外部硬件的支撑,无论是处理速度还是显示效果,又或者是交互动作的处理都要考虑外部设备元件的承受能力,超过元件负载的过度优化肯定不可取。

平台机制

过渡动画属于操作系统的用户界面这一层,在GUI(图形用户界面)中,运动学公式、渲染能力,和对动画的调教控制这三个因素对动画的流畅度和交互体验非常重要。

自定义贝塞尔曲线

基于常识我们都知道,画家用笔来绘画和用电脑的鼠标来绘画是完全不同的操作,贝塞尔曲线就是一种解决鼠标绘图的工具,是运用最广泛的图形造型设计线条,通过改变线条中间点的坐标位置控制运动轨道,从而实现平滑过渡。

乔布斯在年WWDC(苹果全球开发者大会)就隆重的介绍了基于自定义贝塞尔曲线差值的API,它是iOS和macOS上图形渲染和动画的基础结构,可以为视图和应用程序的其他可视元素设置动画,基本的实现逻辑是将大部分实际绘图工作交给专用图形硬件加速渲染,以实现高帧率和流畅的动画,而不会给CPU带来不必要的负担,也不会因此降低应用程序的响应速度。

贝塞尔曲线是由不同计算公式得到的,根据公式的不同,可以实现的运动复杂效果也不同,高于三阶的曲线统称为“高阶贝塞尔曲线”,以下是一阶、三阶、五阶贝塞尔曲线的基本形态,开发人员可以调整对应点的坐标位置来优化具体运动轨迹。

通用公式

一阶贝塞尔曲线

三阶贝塞尔曲线

五阶贝塞尔曲线

想一想的Android是什么状态?可能大家都没什么印象了,下面通过几款经典机型的介绍把大家拉回那个时代。PalmCentro、诺基亚N95、索尼爱立信Ki、HTCTouch、摩托罗拉V8、三星U、黑莓Curve。这些经典机型的设计厂商再过去的十几年间都没挺住苹果和国产的冲击,大部分都变成了小众品牌或者被收购。而苹果对产品细节的重视从第一代就开始了,这是Android至今难找到对手的主要原因。

苹果的UIKitDynamic(它允许您通过添加重力,附件(弹簧)和力等行为来创建感觉真实的界面的完整物理引擎)和MotionEffects(利用手机加速度计提供的数据,以创建响应手机方向变化的界面以创建炫酷的视差效果)等非常好用的物理世界模拟的框架在其它平台很难找到。

而Google官方的FlingAnimation和SpringAnimation所提供的动画调节水平和苹果开发平台有不小的差距。

FlingAnimation动画效果和代码展示

SpringAnimation动画效果和代码展示

关于Google官方的那一套用于规范应用外观和动作进行设计指导的MaterialDesign标准,在如此庞大且碎片化严重的Android阵营中,除了Google自己和少数厂商遵循外,基本都是各玩各的,所以才会有鱼龙混杂的场面出现。

MaterialDesign设计规范和基础知识

至于“动画渲染”、“动画控制”,由于平台的限制,Android逊于iOS的点有很多,这里就不一一展开了,主要还是对应的API接口不足,代码逻辑问题带来的一系列差距。

开发工具、人员、厂商

iOS的开发工具相对齐全,能带给开发者比较友好的环境,从图标、到动画等都能比较舒适的运用官方和第三方工具。加上过去几年厂商的快节奏推进,原本需要慢工出细活的领域被挤压了太多开发时间,普遍情况是先做出来再说,好不好用以后再改善。正是由于这样,很多Android开发人员比较浮躁,当然,这里并不是说Android开发人员技术不行,只是强调环境对开发有很大的影响。

Android的动画水平如何了?

尽管有那么多的阻力,但是随着整体环境的逐渐成熟和行业洗牌,厂商心态也开始慢慢好转,相比之前为了生存的慌不择路,现在也逐渐开始

分享 转发
TOP
发新话题 回复该主题