本文的主要目的是希望能给新手一些启发,在遇到转场动效相关工作时能够快速捋清头绪,希望能够写出可以直接让人拿来用的水平。但作为设计师而言思考过程和结果同样重要,所以在此我也会写一些工作时的思考过程,抛砖引玉。 前段时间接到优化界面转场动效的需求,这对老司机而言是小菜一碟,但是对我来说,算是一个从0到1的任务。 之前对转场动效并没有系统的了解,对接开发层面的文档更是没有接触过,所以接到任务的第一反应是寻找能够参考的模板,也就是所谓的拿来主义。经过一天的收集,发现大部分文章都只是对动效做分类和介绍,没发现可以直接参照并能copy成文档的样例。投机取巧走不通,我开始思考如何“原创”一份动效文档。 如上文所说,拿到需求后一头雾水,简单梳理了一下后续的工作思路。当时用反推的方法缩小着手范围。思路见图1: 图1.思路图 当时认为整个输出内容应当包括文字描述和效果演示。按照上图的思路,可以把工作划分为较为清晰的两条主线,虽然在实践过程中会不断推翻之前的想法,肯定不会按照之前的规划走,但这种思考方法给了我很大帮助。 下面是正文。 一、动效的标注内容 此部分内容是和程序员交流的最关键部分,标注内容是否清晰和全面,会直接影响开发的工作效率。项目中最占用时间的不是具体实施,而是在实施过程中的反复沟通和多次确认。常见标注内容如表1所示,可以涵盖转场动效的大部分场景。 表1.常用动效标注内容 如上表所示,其中透明度、旋转、缩放、移动等内容不需要过多的描述,下面详细说一下时长和曲线的问题。 1)时长(duration) 手机端转场动效的持续时间通常为300ms,根据屏幕的大小,动效的时长也会产生变化,根据material design的定义,不同设备对应的动效时长如表2所示。 表2.动效时长表 根据上面的表格,可以大概确定动画的持续时间,像material design这样精确的时长定义,个人认为对项目而言,没有必要纠结几毫秒的差别。我们项目基于于平板设备,直播,但是考虑到使用环境和任务流畅度,再经设备上对比查看效果之后最终确定以300ms为基准,没有生搬硬套增加30%的时间。 针对严谨学术派的小伙伴,推荐阅读一遍国外的文献,题目为《Response time in man-computer conversational transactions》,暂时没有找到翻译版,有兴趣的可以看看,不是专门针对动效的文章但堪称响应时间的鼻祖。 2)曲线(curve) material design里有专门章节定义缓动曲线(easing curve),这些缓动曲线可以作用于元素的运动速率、透明度,大小变化等等。元素的加速和减速的变化在整个持续期间应保证流畅平滑,避免机械化。值得注意的一点是,运动时加速和减速不对称发生时,可以使运动更加自然和灵动。(以上是谷歌的官方说明,简单翻译了一下) 缓动曲线概括来说可以分为:为标准曲线(standard curve)、减速曲线(deceleration curve)、加速度曲线(acceleration curve)和急速曲线(sharp curve)。下面对各种曲线做一个简单的介绍。 标准曲线,又被称为“缓入缓出曲线”(ease in out),是最常见的缓动曲线。当时把所用转场动效都用这个曲线试了一遍,夸张一些讲,这个曲线可以满足大部分用户在转场动效流畅性方面的需求,当然本着严谨认真的学术精神当然不能这么做啦。标准曲线运动效果如图2所示。 图2.标准曲线示意图 减速曲线,又被称为“缓出曲线”(ease out),适用于元素进入屏幕的情况。这么说可能有点绕,大家看下图可以有一个直观的感受,所谓的“缓出”,描述的是元素运动结束时的状态。在元素运动开始,即进入屏幕的时候,速度最快,然后慢慢减速。这样一来元素可以很快的进入视野,给人以流畅的感觉,到后面速度变慢,增加了视觉停留的时间,让人对元素能有更加清晰的印象。减速曲线运动效果如图3所示。 图3.减速曲线示意图 (责任编辑:本港台直播) |