表达式概述
很多学习AE的小伙伴都对表达式感到非常的头疼,其实大可不必,AE表达式就是一小段代码,与脚本类似,是基于 JavaScript 编写的,很多时候使用表达式可以更方便快捷的制作动画,但是使用AE一般不需要深入了解 JavaScript,只需要知道 AE 编写表达式的规则就可以快速上手进行动画制作。
表达式的创建方法
和创建关键帧一样,表达式也是创建在属性上,选择要创建表达式的属性,执行【动画】-【添加表达式】命令(Ctrl+Shift+ =),就可以激活表达式窗口,当然最常用的快捷方式是按住【Alt】键的同时单击属性前面的码表,比如针对图层的【旋转】属性,按住【Alt】键的同时单击【旋转】属性前面的码表,在打开的输入框中就可以输入表达式。
案例演示
这里以一个基础的time表达式来讲解表达式的用法,time就是时间,为属性添加time表达式就代表着此属性会随着时间而一直变化,还是以【旋转】属性为例说明,为图层的【旋转】属性添加time表达式。
按空格播放预览,可以看到图层在并没有创建关键帧的情况下会开始自己旋转,因为【旋转】属性添加time表达式就代表着【旋转】的属性值随着时间变化。
可以看到指针在0秒和2秒时,【旋转】的属性值分别是0°和2°,所以【旋转】属性添加上time表达式后就代表着图层会按照1秒钟旋转1°的速度进行旋转。
根据此来制作一个钟表的动画。
绘制一个钟表,绘制方法这里不再细说,选择分针,添加表达式time*20。
之所以是time*20而不是time,因为1秒针旋转1°的速度太慢了,不方便观察,乘以20的意思就是旋转速度增加20倍,也就是1秒旋转20°。
按住【Alt】键的同时单击秒针的【旋转】属性开启表达式输入框,这里就不用输入了,直接使用表达式表达式关联器拖曳到分针的【旋转】属性上,会自动创建好表达式。
thisComp.layer(“分针”).transform.rotation的意思就是“这个合成的“分针”图层的旋转属性”,也就是说秒针的旋转属性现在是继承了分针的旋转属性,播放动画,可以看到秒针和分针的旋转速度是一样的,但是现实中我们知道秒针的速度是分针的60倍,所以还需要将现在的表达式整体乘以60。
同样的操作,将时针的【旋转】属性也通过表达式关联器连接到分针的【旋转】属性上,然后整体除以12就得到了时针的正确旋转速度。
至此钟表的动画就制作完成了,三个指针的旋转速度比例就是正确的,当然如果想要完全按照现实中的钟表速度制作动画也完全可以,将秒针的表达式改成time*6,因为正常钟表秒针60秒会转动360°,而time表示60秒旋转60°,所以要乘以6,那么分针和时针的表达式就可以按照上述所讲的在秒针的基础上除以相应的倍数就行了。
这就是time表达式的基础应用,学到的小伙伴别忘了点个关注。