在学习AE的道路上,表达式是一个避不开的学习点,可能一些初学者听到这个知识点会完全没有概念,这篇文章写来告诉大家,学习表达式其实难度并不大,下边我们来看看如何学习AE表达式,以及掌握一些最基本的表达式知识和应用。
因为使用表达式的时候,中英文版的AE软件交换打开可能有时候表达式的错误,所以还是建议大家学习使用AE软件的时候,选择英文版去学习和使用,而且,使用英文版软件对学习表达式会有加成效果。特别当你经常需要修改模板的时候,中文版可能会增加一些表达式方面的困扰。
什么是表达式
关于表达式,我们可以这样更直观去理解,表达式是我们通过一些代码,去实现参数的转移、计算,以便我们更有效率的去控制某个参数的变化,达到关键帧比较难实现的效果。
如果你学习过编程相关的知识,那么表达式的代码的操作可能对于你轻松易懂,因为我们基本只需要做一些赋值,或者添加函数控制参数,再往上,就是添加条件去限制数值达到不同的效果。而对于没接触过编程知识的使用者,你也只需要记住几个基础的使用方法,也可以应付大部分的表达式应用。
什么时候我们需要用到表达式
1 当我们想使用一个参数的数值去控制另一个参数的数值时,我们可以使用表达式将数值赋予另一个想要控制的参数上。
2 当使用关键帧去制作一个效果的时候,不容易做的很流畅而且效率不高,这时候我们可以使用表达式去控制。譬如有时候要做一个回弹的效果,单纯自己去K帧效果会偏低且效果不容易做好,使用表达式会让我们省事很多。
3 当我们想要使用一个数值对多个数值进行控制或者进行计算后赋值的时候,这时候也可以使用表达式去制作,而不用每个数值都单独去做关键帧的动画。
AE表达式的几个基础操作
说了这么多,我们来看看AE表达式如何操作。
开启表达式开关和编辑数值
按住alt键+鼠标左键点击想要添加表达式的参数左边的时钟图标可以打开参数的表达式开关。然后,我们就可以通过表达式窗口去给当前参数添加数值,或者从其他位置获取数值,然后后续还可以再进行计算、转换等等。
修改、计算数值
坐标类参数的表达式
当一个参数有多个数值时,例如坐标,我们需要使用英文字符括号并用逗号隔开,[x,y],将xy替换成你想要的数值。
通过拉线的方式快速得到参数的代码
当需要一个参数的属性参数数值去控制另一个参数的属性时,可以在表达式里通过拉线的方式快速得到对象的代码并得到效果。当然,这个不局限于层的属性,还可以使用效果的里边的参数,甚至另一个合成里的某个层的参数去控制,也可以使用多个参数数值叠加计算去控制。
进阶版的表达式控制
我们可以在以上学习的基础上,再去添加条件,使数值按照我们所要的条件去做不同的效果,这篇文章主要是教大家基础操作,所以这个需要编写额外的代码在这边就不做赘述,这边上个图,大家可以简单了解下表达式条件的运作。
添加条件语句,当上方的正方形位置X轴坐标到达1000时,下方跟随的正方形停止运动
几个常用的AE表达式变量
下边介绍几个常用的内置变量,这些变量我们可以用来快速地控制参数。
time
这个变量可以让参数随着时间进行变化,当处于1秒的时间点时,time的数值等于1,2秒的时间点时,数值为2。通过这个变量可以做出一些随时间变化的动画效果。
index
这个变量获取的数值是当前层的数值,这个变量经常用来将平面的字体、形状模拟出3D的效果。
以下案例是使用index变量,通过复制多个一样的图层,让每个图层的Z坐标有一定位置的偏移,例如第一层index*5会将该层的Z坐标设置成5,第二层变成10,第三层是15,通过层的叠加使字体产生一定的厚度感觉。
value
获取当前层参数的数值,可以对已经设置的关键帧再次进行影响。这个比较好理解,就不做图示。有一点需要注意的是,如果是坐标类、比例类参数,X轴需要添加系数用来告诉软件你调用的是哪个数据(从0开始计数)。例如X轴是value[0],Y轴是value[1]。