AE常用表达式解析

1.wiggle 抖动
wiggle(freq频率, amp振幅, octaves = 1细节, amp_mult = .5乘赋值, t = time)
用法wiggle(5,200)

2.random 随机
random(数值x,数值y)是在数值x到数值y之间进行随机值的抽取,随机抽取的最小值是x,最大值是y
用法:random(1,10)

3.loopOut 循环
loopOut(type="循环类型",numkeyframes=0从最后一个关键帧往前走开始循环,0代表无限)
循环类型四种:pingpong 如乒乓球一样来回运动
cycle 周而复始的来回运动
offset 叠加之前关键帧数值循环
continue延续属性变化的最后速度
用法:loopOut(type = "cycle", numKeyframes = 0)

4.time 时间 这个不解释了

5.timeRemap 抽帧
timeRemap*数值,这里数值以帧为单位
用法:在素材上鼠标右键时间重映射上输入timeRemap*10

6.index 图层序号
说不清,还是上图吧
这个红框内就是图层序号
index可以代表当前图层的数值
常见的就是把index丢到位置上做立体字,如
[transform.position[0],transform.position[1],index],复制很多层就是立体字了
丢到缩放上,如
[transform.scale[0]+index,transform.scale[1]+index],复制很多层文字就慢慢变大了
其他参数可以自己尝试

7.在文字上的源文本上打下面的表达式
倒计时表达式:
a=linear(time, 4, 6, 1000, 0);
Math.floor(a)

公式
a=linear(time, 开始变化的时间, 结束变化的时间, 开始变化时的数字, 结束变化的数字);
//将a复制linear变化的结果Math.floor(a) // 向下取整(a)

8.弹性表达式
其实不想发,分享脚本里motion脚本自带有弹性功能
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);
amp = .03;
freq = 2.5;
decay = 4.0;
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{value;}
这里要更改的就三个后面的数值
amp=振幅
freq=频率
decay=衰减或者叫阻力

9.线性表达式
linear(t, value1, value2) {t 是一个数, value1 和 value2 是一个数或数组}当t的范围从0到1时,返回一个从value1到value2的线性插值。当 t <= 0时返回value1,当 t >= 1时返回 value2

linear(t, tMin, tMax, value1, value2) {t, tMin和 tMax are 数, value1和value2 是数或数组} 当 t <= tmin时返回value1;当t >= tMax时,返回value2 ;当tMin < t < tMax 时, 返回 value1和value2 的线性联合

10.数字递增表达式
StartNumber=1;
EndNumber=1000;
StartTime=1;
EndTime=3;
t=linear(time,StartTime,EndTime,StartNumber,EndNumber);
Math.floor(t)
用法:输入到文字图层的源文本

10.反弹表达式
k=100; // 反弹最终结果
a=5; // 反弹阻力
b=50; //反弹变化时间
x=k*(1-Math.exp(-a*time)*Math.cos(b*time));
[x,x]

0
分享到:

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
没有账号? 忘记密码?