超全面!动效设计标准与规范(二)

2019 年 12 月 30 日

超全面!动效设计标准与规范(二)

物体的运动轨迹应该是清晰锐利的,所以尽量不要使用动态模糊(在 AE 中做动画效果除外)。即使是在现在最新的设备上也很难重现这些效果,不能把这种动态模糊的动画效果应用到界面中。



动画中尽量不要使用动态模糊


列表项的出现应该只允许有一个短暂的延迟。每一个新列表项的出现间隔应该在 20-25ms 之间。元素出现太慢的话,会让用户感到很不爽。



列表项出现的动画应该在 20-25ms 之间。


缓动


缓动可以让物体运动的更加自然。这是动画的基本原理之一,在 Ollie Johnston 和 Frank Thomas 所写的《 The Illusion of Life: Disney Animation》书中有详细的解释。


为了让动画看起来不会觉得太过机械,物体的运动应该会同时伴有一些加速度,就像现实世界中的运动一样,不会有绝对匀速的运动形式。



缓动的物体会比较线性运动的物体看起来更加自然


线性运动


不受任何物理因素影响的运动叫做匀速运动,这种动画在用户眼中看来是非常的机械和不真实的。


所有的 APP 动画都会用到动画曲线。我将试着去解释如何阅读它们并说明它们的含义。下面的例子中,运动就是匀速的,可以看到对象在相同的时间间隔中移动了相同的位置。



线性运动


线性动画在什么时候会用到?举个例子,对象仅改变它的颜色和透明度的时候会用到。一般来说,当一个对象不改变它的位置而只是改变状态时,可以尝试用线性动画来改变状态。


缓入或者说加速曲线


我们可以在曲线上看到,在相同时间内,位置的变化会越来越大。这就说明一个物体是在进行加速运动。



加速运动曲线


这种曲线一般应用在对象移出界面时,这些可能是系统通知,也可能只是界面中的卡片设计。但是记住,这种动画曲线只是会用在物体移出界面时,而反过来就不适用了。



加速曲线应用在物体移出界面时


动画曲线有助于表达正确的情绪。在下面的例子中,物体动画的持续时间和位移大小都是相同的,但你会发现即使是曲线上一些微小的变化也会让你看动画的感受不同。


当然,通过改变曲线,可以让物体的运动显得更加真实自然。



相同的持续时间和相同的位移变化,但是会有不同的感受


缓出或者说减速曲线


与缓入恰恰相反,物体的运动在开始时位移变化很大,但是后面会越来越小直到最后完全停止。



减速曲线


这种类型的运动曲线通常是用在物体进入界面中时——快速进入屏幕然后再慢慢停下来,在不同卡片或对象从屏幕外进入界面时可以应用上。



减速曲线在此时会让动画显得更加自然


缓入缓出或者说标准曲线


这种曲线使物体有加速和减速的过程。这种类型的动画在界面中是最常用的,当你还在迟疑该用怎样的动画曲线时,选择标准曲线准没错。



标准曲线


根据谷歌规范,建议最好是用一些非对称曲线来使得物体运动的更加自然真实。动画的结尾会比动画的开头更加需要去强调,这样的结果是加速时间要小于减速时间。在这个情况下,动画能够引导用户更加关注元素的结束部分,以至于关注到其新的状态。



注意观察对称与非对称曲线的区别


缓入缓出动画常被用在界面中对象从一个位置移动到另一个位置时。在这种情况下,动画的目的是为了不让人有过多不必要的关注。



卡片的非对称曲线运动


同样的情况还适用于,元素在界面中消失后用户还能随时显示,抽屉导航就是这样的例子。


抽屉导航的收起过程就是应用到了标准曲线


从很多例子中可以看出许多初学者都忽略了一个基本的规则——开始动画不等同于结束动画,应该分别去设置,比如在抽屉导航动效中——打开是一个减速动画但关闭时却是一个标准曲线动画。另外,根据谷歌设计规范,物体出现的动画持续时间应该略长,以吸引用户更多的注意力。


侧边栏的动画是配合减速曲线和标准曲线一起来实现的


有一个立方贝塞尔函数常用来描述这种速度曲线。之所以叫立方是因为它是基于 2 个点来的。第一个点在坐标轴中是(0,0)(左下),最后一个点是(1,1)(右上)。


基于此,我们只需要描述图上的两个点,这是由贝塞尔函数的四个参数给出的:前两个是第一个点的坐标 x 和 y,后两个是第二个点的坐标 x 和 y。


为了便于实际工作,我建议使用 2 个工具网站来操作


https://easings.net/zh-cn


http://cubic-bezier.com


第一个包含一些最常使用的曲线列表,可以直接将其复制到原型工具中去。第二个是可以给你自己自定义动画的曲线,并能实时查看效果。


不同类型的动画曲线以及他们不同的参数


动画在界面中的编排


就像芭蕾舞编排一样,主要思想是从一个状态到另一个状态的过渡引导用户注意力方向。


一般会有 2 种编排形式——同级动画和从属动画。


同级动画


同级动画意味着所有对象的外观都服从一个特定的规则。


在这种情况下,所有卡片都按一个相同的流程出现,引导用户注意力在一个方向上,即从上到下。如果我们不按照这个顺序,用户的注意力就会分散,如果所有元素同时出现也会很糟糕。


用户的注意力应被引导在一个方向上


至于表格视图,就会略微有些复杂。这种情况下,用户往往是以对角线为焦点去看界面的,所以逐个出现的形式也比较糟糕。另外,逐个出现的动画在时间上也会过长,而且把用户的注意力引导成锯齿状,这是很不友好的。


按对角线出现的表格视图动画


从属动画


从属动画是指有一个核心运动的元素,它吸引用户所有的注意力,其他元素也都跟随它的运动。这种类型的动画会显得更有秩序感,让用户更多的去关注到内容本身。


而在其他情况下,用户是很难知道他到底要去看哪个元素,注意力很容易被分散。如果要设置多个动画元素,一定要清楚的知道他的动画顺序,并尽可能的将其他动画元素弱化。


只赋予一个中心对象生命是值得的,而所有其他的对象都服从于它。否则,用户就不知道到底应该注意哪个元素。


根据谷歌规范,当运动物体的大小不成比例地改变时,它们应该沿着弧线而不是直线运动。这有助于使动画更自然。所谓“不成比例”,是指物体的高度和宽度的增加/减少是不对称地进行的,即以不同的速度变化(例如,一个正方形变成一个矩形)。


物体的运动如果不成比例,那应该按弧线变化。


当对象按比例改变其大小时,则此时直线运动的形式会更好。由于这种运动形式做起来容易得多,弧线轨迹运动的规律就往往被忽视。在现在很多应用中,我们都能找到这种例子。


等比的物体运动轨迹应该使用直线


曲线轨迹运动也会有两种实现方式:第一种是开始水平移动,然后以垂直运动结束;第二种是开始垂直移动,然后以水平运动结束。


物体沿曲线移动的路径必须与滚动界面的方向重合。例如,在下面的例子中,我们可以上下滚动界面,相应地,卡片以垂直的方式展开更合适——先向右,然后向下。


展开/折叠卡片的方向应与界面的轴线重合


如果物体的运动路径彼此相交,它们就应该不能穿过对方。物体应该通过减慢或加速自身的速度为另一个物体的运动留下足够的空间。另一种方式——只是推开其他物体。为什么要这么做?因为我们假设界面中的所有对象都位于一个平面上。(译者注:对于这一点我不是很认同,为了更加真实么?)


在运动过程中,物体不应该互相穿透,而是为另一个物体的运动留下空间。


在另一种情况下,移动的物体可以通过抬高于其他物体,而不会以溶解或通过其他物体的形式来移动。为什么?因为我们相信界面上元素的行为应该要符合物理定律,在现实世界中没有任何实体能够做到直接穿透对方。


物体可以被抬高于其他元素之上来移动


总结


如果我们总结上述所有的规律和原则,可以得出界面动画应该要反映物质世界的运动,例如我们都知道的,摩擦,加速等等。模仿现实世界的行为我们可以创建一个优秀的动画,满足用户的心理预期。


一个优秀的动画,应该是不会那么刻意,也不会分散用户对目标的注意力。如果是的话,就需要优化它,或者干脆把动画去掉。核心标准是动画不应该降低用户执行任务的效率。


但是不要忘记,用户对动画的好坏感受,是感性大于理性的。所以,最好是把做出来的动画给用户进行评鉴,然后再不断优化它。


本文转载自 Think 体验设计公众号。


原文链接:https://mp.weixin.qq.com/s/Um4iigDOAlSv08bXrivo8Q


2019 年 12 月 30 日 18:0268

评论

发布
暂无评论
发现更多内容

作为程序员,推荐5种编程语言!

代码制造者

Python 编程语言 低代码 C语言 零代码

知乎李大海与阿里云贾扬清联合直播,AI大咖眼中的行业前景

InfoQ_967a83c6d0d7

合约跟单APP开发模式,合约跟单系统源码搭建

13530558032

OFD 版式技术解析系列(四):OFD文档解析流程

华宇法律科技

版式文档 OFD

安全及高可用策略

Lane

极客大学架构师训练营

Grabana:使用 Golang 或 Yaml 生成 Grafana Dashboard

郭旭东

go golang Grafana

架构师0期Week11作业2

Nan Jiang

让这家有12万名员工、1.7万种产品的钢铁厂平滑上云的黑科技是什么?

华为云开发者社区

大数据 云服务 华为云 非对称加密 KYON

Week11

丿淡忘

架构训练营第十一周感悟

张锐

IDEA插件之Mybatis Log plugin破解!!!

不才陈某

Java idea插件

架构师0期Week11作业1

Nan Jiang

USDT承兑商系统开发,USDT支付系统软件搭建

13530558032

易实战Spring Boot 2 资源汇总 从入门到精通 内含实战github代码 毫无保留分享

John(易筋)

redis Spring Boot 2 RestTemplate thymeleaf HikariCP

代理,一文入魂

cxuan

Java 后端 代理

《精益创业》续

孙苏勇

随笔杂谈 精益创业

Lambda架构已死,去ETL化的IOTA才是未来

易观大数据

程序员不得不知的软技能

flyer0126

软技能

高可用注意点

dony.zhang

高可用 高可用系统的架构 高可用系统的运维

深圳数字货币交易所开发商,币币撮合交易软件开发

13530558032

账户经常被盗号怎么办?防盗“黑科技”了解一下

华为云开发者社区

华为云 云安全 主机安全 双因子认证 弱密码

架构训练营第十一周作业

张锐

力扣1514——概率最大的路径

健健

算法 最短路径

一个用户秘密加密验证功能

elfkingw

熔断、限流的一些理解

elfkingw

java安全编码指南之:基础篇

力软.net/java开发平台

源码解析 | 万字长文详解 Flink 中的 CopyOnWriteStateTable

Apache Flink

flink

上手Elasticsearch

北漂码农有话说

解码微盟半年财报:同比增长59.9%,SaaS商业版图不断扩大

ToB行业头条

SaaS 微盟

一款JAVA快速开发平台,多项目整合,给开发提提速

力软.net/java开发平台

「Java 25周年」 工具软件 平台应用服务

针对目前在线教育存在问题的解决方案

anyRTC开发者

WebRTC 在线教育 直播 安卓

超全面!动效设计标准与规范(二)-InfoQ