首页

AE贝塞尔曲线制作弹性动画

AE贝塞尔曲线制作弹性动画

在使用贝塞尔曲线制作弹性动画前我们先来了解贝塞尔曲线实现原理,来理解什么是符合物理运动规律的动画效果

Android L开始在动效实现方法上有了飞跃提升,散乱的动画效果主要是没有统一的理论支撑,终于在android L之后贝塞尔曲线和SVG动画的普遍使用,使得android原生系统的动效设计成为宣传的一大亮点。

这里重点说一下贝塞尔曲线。很多人一听起来觉得是一个特别专业的词语,其实不然,学过设计或有绘图软件基础的同学接下来都能理解贝塞尔曲线的原理。

在百度百科里面的解释是:"贝赛尔"工具在photoshop中叫"钢笔工具";在CorelDraw中翻译成"贝赛尔工具";而在Fireworks中叫"画笔"。它是用来"画线"造型的一种专业工具。当然还有很多工具也可以完成画线的工作,例如大家常用的photoshop里的直线、喷枪、画笔工具,Fireworks里的直线、铅笔和笔刷工具,CorelDraw里的自由笔,手绘工具等等。

两张图看懂怎么绘制:

AE贝塞尔曲线制作弹性动画

怎样看懂贝塞尔曲线? 在开发实现中可以把贝塞尔曲线看做是位移曲线(位置和时间的关系)

AE贝塞尔曲线制作弹性动画

上面这条曲线就是一条匀速的曲线,是指物体运动从开始到停止都是按照同一个速度移动。

大家都知道在移动端的各大ROM厂商或APP公司都在声称要做符合物理运动原理、符合用户心理预期、还原生活场景、有情怀的、更加真实有效的动画效果等等说法,把这些含蓄的说法转化成开发语言就是绘制一条看着舒服的运动曲线。那么什么样的曲线才是符合物理运动规律、真实有效的呢?

大家试想着从手里扔出去一块石头,扔出的一瞬间是不是有个加速的过程,即速度从0往上增长,然后越来越快,它要落下的时候速度开始减下来,最后落下速度为0。石头运动的轨迹其实是一个完整的抛物线(即速度曲线):

AE贝塞尔曲线制作弹性动画

我们把速度曲线转换为位移曲线,这条曲线就是我们所需要的:

AE贝塞尔曲线制作弹性动画

这条曲线是我们根据真实的生活场景推理出来的,具体参数是模糊的,但是我们从中学到了真实的物理运动规律:物体运动是从静止加速到停止减速的一个过程。

平常工作中我们是通过在动画制作软件(如AE、Flash)中调节这条曲线最终得到我们看到的动画效果:

AE贝塞尔曲线制作弹性动画

怎么样把这条位移曲线转换成开发语言呢?获得有效参数的方法是这样的:(以PS为例)

在PS里新建一个1000*1000像素的画板(为了好计算取整,只要是正方形就行),把动画软件里的曲线截图导入到建好的PS画板里,曲线的起点和终点分别与画板的左下角和右上角对齐,这样就在一个正方形内形成了一条位移曲线:

AE贝塞尔曲线制作弹性动画

然后在绘图软件里临摹出这条曲线,调节节点时的支点坐标就是开发需要的参数(以画板左下角为原点(0,0),右上角为终点(1,1)。如上图中黄色的点的坐标就是起点(0.26,0.05),终点(0.26,0.97)

这条曲线是一条最简单的贝塞尔曲线,在绘图软件里通过调节起点和终点的节点就可以得到这条曲线,更复杂的贝塞尔曲线是由多个节点组成,那是更复杂的函数公式。时间有限,以上是在工作时间仅用了两个小时整理出来的经验分享给大家,如果有不准确的地方请多多交流。后面的章节会介绍根据不同需求制作不同的曲线,以及android和iOS曲线的区别。

在移动设备上经常会看到弹性的动画效果,如点开图片放大的过程、对话框出现反弹的效果等,这些动画效果用贝塞尔曲线的原理只要绘制一条你想要的曲线,把相应的参数提供给开发就可以轻松实现了,并且可以非常方便的修改效果。

AE贝塞尔曲线制作弹性动画

它的原理是什么呢?

在上一章节中,我们学会了在一个正方形内绘制曲线,这个正方形内包含了时间和位移的关系,正常的运动曲线都是在这个正方形范围内完成,即从一个点到到另一个点的运动方式。那么抖动动画就相当于运动到终点时没刹住车超过了目标终点后又返回来,所以相对应的抖动动画曲线也要超出了这个正方形的范围。如下图:

AE贝塞尔曲线制作弹性动画

根据我们想要的效果,在动画软件里面反复的调,然后提供准确的参数给开发就可以几乎100%的还原动画制作的效果了。这个时候的参数肯定不在是0到1的范围,至少抖动的部分已经超过了1,如下图的参数:

AE贝塞尔曲线制作弹性动画

如果用两个点调节还是不能调出你想要的弹性效果,那么我们可以在曲线上增加一个点,不过相应的开发就会增加实现难度,就是所谓的分段实现,这个时候需要我们提供四个点的参数及中间一个点的时间点。如下图:

AE贝塞尔曲线制作弹性动画

如果还是不能达到你的要求,比如想在界面上多反弹几次才想停下来,那么曲线就是如下图:

AE贝塞尔曲线制作弹性动画

技术和艺术的结合就是界面设计的产物,设计无止境,继续学习和探索中