导图社区 AE认识表达式
AE表达式学习,表达式是一种强大的工具,它基于JavaScript语言,允许用户通过代码来控制属性值的变化,从而实现关键帧难以达到的效果。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
AE认识表达式
表达式
表达式是什么:表达式其实就是一些编程的代码,我们的这款ae软件本身也是编程制作出来的
表达式的作用:能够快速以及更有效率的完成一些比较冗余的工作
表达式启动的方法:按住alt键点击一下对应属性的小码表即可
常用表达式
time
代表的当前时间线对应的时间,当前的时间线为3秒,那么这个time就等于3,时间线为4秒,time则等于4,因此time是一个变量,会随着时间线的变化而产生数值的变化
key
Math.sin(time*10)*60
在数学中sin的最大值和最小值是1到-1,因此在该效果内,数值会发生来回的变化。
javaScript Math
time*10表示的是来回摆动的频率,*60则是表示来回摆动的幅度
Math.cos(time*10)*60
cos和sin的效果以及原理基本一致,只是cos和sin二者移动的方向是相反的
loopOut(type = "cycle", numKeyframes = 0)
cycle
能实现关键帧不断循环的效果
pingpong
会让关键帧做出往复循环的效果,比如从关键帧1移到关键帧2之后,会让关键帧2有一个回到关键帧1的动画效果,实现像pingpong球一样的往复循环操作
offset
循环一次之后。会将结束点作为起点不断的进行一个累加
continue
跟offset的效果基本一致,但是这个效果可以继承最后一个关键帧的速度(用这个效果循环表达式里面就只能有一个属性参数)
numKeyframes
默认情况下为0,改成1之后就会让循环从第二个关键帧开始循环,改成2之后就是从第三个关键帧开始循环,依此类推
loopOutDuration(type = "cycle", duration = 0)
type右侧的属性参数跟上面的循环参数一致
duration
设置循环的时间如果是1秒,那么循环一次的时间就是一秒,如果是俩秒,那么循环一次的时间就是俩秒,依此类推
property
wiggle(10,50,5)
表达式中第一个数值是控制抖动的幅度,第二个数值表示范围,比如默认的属性数值为0,那么这个的范围就是负50到正50,是控制在前后50左右的范围,第三个则是让其抖动更加平缓
random(20,50)
随机表达式,会让属性的值在20到50这个区间随机变换
Random Numbers
index
该表达式的意思是索引下标的意思,就比如你的图层是排在合成中的第一个,那么这个图层的index=1,如果是排在第二个则是index=2以此类推
if()else
if是判断语句,括号内的运算只能用布尔运算,什么是布尔运算,就是只能得出true(真)和false(假)俩个值,如果括号内的运算为真则执行下面的代码,如果为假则执行else后面的代码
length(value1,value2)
根据俩个图层锚点之间的距离,来计算出长度
vector Math
linear(juli,0,70,[250,250],[100,100])
这个距离就是上方length方法计算出的距离,0和70代表的是区间范围,250则是缩放俩个的最大值,100则是图层缩放的默认值
判断俩个图层锚点的距离,如果俩个图层锚点的距离在0到70,那么对应图层的缩放会放大到250,如果锚点之间的距离不在这个范围,则图层的缩放默认为100
interpolation
x=time*60; y=540; [x,y]
代码分析
在编程中这个 *(乘号) 就是运算中加减乘除的乘号(按shift再按这个*键就可以打出)
在编程中 =(赋值) 并不是等于的意思,而是将右边得出的数值赋值给到左边
代码结尾的 ; (分号)代表这段代码的结束
[x,y]这个在代码表示数组,代表着这个表达式返回了俩个值,这俩个值分别给到了位置属性的x和y
作用
首先是,time乘以60,得出每过一秒,这个位置的x轴会移动60的距离。而y等于540则表示y轴的值固定在540不动,[x,y]则是将数组中x和y俩个值分别给到位置的x和y
注意点
在ae内部软件内,是无法识别出中文和中文的字符,所以一定要用英文的标点符号
if(time<5) time*20 else 100 x=绑定编码效果的数值 y=绑定当前图层缩放的y值 [x,y]
if是判断语句,首先判断括号内的数值是真还是假,time时间的数值如果小于5就会执行time*20的运算,如果大于或者等于5则会执行else语句之后的代码
接下来就是定义缩放里面x和y的数值,首先将x的数值绑定到上面用了if语句的效果上,这样x轴的缩放就会跟着上面数值的变化而变化了,y轴不需要发生变化因为默认绑定到图层本身的y轴就好,最后就是将x和y的数值返回给图层
首先是调整编码的数值,让其随着时间的变化而进行变化,变化到100后,锁定住不让他再继续发生变化。然后将横条图层缩放的x轴绑定到上面的编码数值,让横条x缩放产生出随着时间和编码数值的变化而变化
打完一行代码之后最好加上;(分号)进行结尾
a=绑定到当前图层的位置上; b=绑定到箭头图层的位置上; juli=length(a,b); linear(juli,0,70,[250,250],[100,100]);
定义a和b的数值,根据length方法计算俩个图层锚点之间的距离,再通过linear方法获得length方法的数值后,定义出0到70的区间范围,如果juli的数值在0到70的范围,就返回前面那个[250,250]的数值给到缩放,如果juli不在0到70这个区间范围,那么就返回后面[100,100]的数值给缩放
让箭头移动到指定图层时,图层自动放大
这个表达式方法是根据俩个锚点之间的距离进行计算的,所以要保证锚点居中于图层的中心
表达式中的运算符
+(加号)
用来做加法运算
-(减号)
用来减法运算
*(星号)
用来做乘法运算
星号通常是在8数字上,按住shift+8即可
/(除号)
用来做除法运算
一般跟问号在一起
=(等号)
在编程中等高代表赋值的意思,就是将右侧的运算数值给到等号左侧部分,==(双等于号)才代表等于的意思