在用AE制作动画时为动画加入弹性效果可以让动画效果更生动,更符合现实物理规律。
利用缓入缓出(fn+f9)
我在学习用AE制作动画的最开始,大多数的场景都可以使用最基本的缓动效果(fn+F9),不管是放大缩小、位移、透明度变化。在这些动画中插入默认的缓动效果已经可以让整个动画感到舒适,不那么僵硬。这样的最终效果在交互动画中其实已经完全可以满足。
但是当你在制作一写非匀速动画的时候,一些有趣的小动画的时候,就显得有一些不足。总觉得还是差那么一些感觉。
例如说我想一个物体突然弹出的一个画面。
脑海中比较理想的一个效果是:物体从无到有快速蹦出,同时会有一些回弹,最后停止。
大致是这样
为了模拟这样的效果,在我一开始还没有使用任何插件和表达式的时候,是十分痛苦的,因为需要反复不停的K多个关键帧。大致如下:
缩放由 0—120—90—110—95—105—98—100
刚开始用AE的时候只能用苯办法,哈哈。实际效果会有一点生硬,因为很难算好回弹数和回弹率,不够顺滑。
但是至少这样我大致得到了我想要的效果了。
不过如果在一个画面中弹出物体特别多的情况下,简直是要人命的体力活,比如做一个节日气氛的海报,整个画面风格都是类似mg动画的那种从无到有弹出的。
那就算在物体弹出规律都相同的情况下,至少也得花一下午的时间。
何况画面内的物体大小,方向,弹出时间都不尽相同。
利用表达式
好在AE中有一种类似于excel函数功能的高级功能【表达式】的存在,通过一些函数公式控制素材的一些变化来制作动画,在某些重复劳动的工作方便大大提升效率。
在百度上可以直接搜索【AE 弹性表达式】可以找到网上分享的表达式。
【AE万能弹性表达式】(度娘随便搜的一个)
amp = .1;
freq = 2.0;
decay = 2.0;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){n--;}
}
if (n == 0){ t = 0;}
else{t = time - key(n).time;}
if (n > 0){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}
else{value}
在AE中先提前K好起始和结束的缩放关键帧,之后按住键盘alt键,鼠标点击缩放前的码表,这个时候便会在右侧原本k帧的控制区出现表达式编辑区,如下图
将搜索到的表达式贴入编辑区,鼠标点击画面任意位置便可。(不要按回车,因为光标始终在编辑区域,回车则是编辑区域换行,并不是确认)
如果窗口没有跳出错误提示,即表示表达式式正确的(至少是可以识别的,具体效果是否正确得预览才能知道)
得到如下效果,(其实并不是我想要的效果)
实际上往上搜索到的表达式你是可以进行一些数据的调整和编辑的,例如调整freq的纸可以调整回弹的次数,调整decay的值则可以调整回弹率。但是复杂的表达式的调整则比较容易出现问题,且与实际你想要的效果可能出入较大。最终变成还不如手动k关键帧方便。
表达式的运用个人觉得是比较难的,在例如规律的循环,摆动等效果的时候,可以使用软件内置的表达式达到效果,比较简单。
但个性化较强的效果则不是很方便,因为他并不是可视化的,调整表达式也需要较强的理解能力。
利用插件
AE的扩展能力也非常强大,有大量为AE打造的插件,可以方便使用。
要找到一款甚至几款弹性插件是非常容易的事情,来满足个性化的需求。
这边介绍一个我最近用的较多的插件 【Motion 2】 其中的弹性功能
AE中安装插件的方式稍微繁琐,需要将插件本体以及插件附带的一些预设文件夹一同复制到指定文件夹,Motion2的文件复制路径为
Finer应用程序—Adobe After Effects CC 2019—Scripts—ScriptUI Panels
将插件复制完成后,重启AE,便可以在AE顶部工具栏的窗口底部,找到新增的motion2模块,打开后可以将模块吸附在右侧操作区域方便使用。
AE的插件多为英文,但是可视化的好处便是理解方便。简单介绍一下Motion2的功能
最近我用这个插件最多的则是EXCITE回弹功能以及JUMP撞击反弹功能
EXCITE
选中物体运动的始末关键帧后,自动为运动属性添加三个弹性控制器,拖动控制器滑块可以调整物体回弹运动效果。
三个控制器介绍:
OverShoot弹性冲刺距离:数值越大,弹得距离越远
Bounce弹性:数值越大,来回弹的速度越快
Friction弹性摩擦力:数值越小往回弹次数越多,数值为0时会一直回弹
三个控制器会在选中图层时出现在效果空间模块中,方便调整个性化的数值
效果如下(我经常用在处理画面中从下往上出现的物体。)
JUMP(撞击反弹)
一般在制作球体掉落到地面反弹的时候会用到它,用来模拟两个物体接触后的撞击反弹效果
三个控制器介绍
Stretch弹性:数值表示初始点下落后的弹跳百分比,数值越大反弹的越高,如果数值超过100,则反弹后的高度超过初始掉落位置。
Gravity重力:数值越大重力越大,弹性越小,如果重力为0的话掉下去反弹后会直接飞天……
Max Jumps最大弹跳限制:拖动滑块设置最大反弹次数,弹跳次数为数值+1次,需要与重力和弹力配合,当数值设置为10时则对弹跳次数不限制
效果如下(这个则常用在画面中物体掉落)
同时motion2还有很多弥补AE一些不足的功能,
众所周知,在AE中调整锚点是比较麻烦的,motion2 可以快速帮你定位到9个最常用的锚点位置。
CLONE功能则是解决了在AE中如果同时选中多个图层复制关键帧会得到一个新建图层的缺点。
最后附上近期用motion2处理的小视频一个~
(仅处理动画的部分)