共享VIP立即开通
原创VIP立即开通
办公VIP立即开通
超级VIP立即开通
企业VIP立即开通
开启左侧

AE常用表达式和脚本

[复制链接]
出彩design 发表于 2021-8-26 15:25:01 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
1.抖动
Wiggle表达式,能够实现随机的位移旋转缩放、透明度闪烁等效果。
表达式语句:
Wiggle(3,50);
前面的数字3代表抖动的频率,也就是抖动的快慢;后面的数字50代表抖动的振幅,也就是抖动的幅度大小。通过调整这两个数值来控制抖动效果。

2. 分向抖动
Wiggle表达式更高级的运用,在不同的方向使用不同的抖动强度,也可以制作只在一个方向进行抖动的效果。
表达式语句:
a=wiggle(3,50)[0]; //控制x方向的抖动
b=wiggle(0,0)[1]; //控制y方向的抖动
[a,b];

3. 时间
Time表达式,常用于制作持续旋转的效果。
表达式语句:
value+time*100; //后面的数值用来控制速度的快慢
对表达式有一定基础的同学可能会直接写成:
time*100;
这里多写了一个value,而value代表属性的原始数值,这里加上value是为了能够调整旋转的初始角度,增强可控性。

4. 循环
loopOut表达式,使关键帧动画循环,常用的有三种模式:
第一种,cycle模式
表达式语句:
loopOut(type = "cycle", numKeyframes = 0);//后面的数值0用来控制从第几帧开始循环
将关键帧动画重复进行的循环效果
比如你有关键帧1、2、3,这种循环模式就是1、2、3、1、2、3、1、2、3.....一直循环

第二种,pingPong模式
表达式语句:
loopOut(type = "pingPong", numKeyframes = 0);//
后面的数值0用来控制从第几帧开始循环像乒乓球一样来回往复循环
同样,如果你有关键帧1、2、3,那么这种循环模式就是按1、2、3、3、2、1、1、2、3.....这种规律循环下去

第三种,continue模式
表达式语句:
loopOut(type="continue")
沿着最后一帧的方向和运动速度继续运动下去
这种模式相比前两种用的较少,可以便于制作动画持续缓慢运动的效果,避免动画静止,也可以制作一些数字持续增长等效果

5. 循环旋转
表达式语句:
cycle=360;  //循环周期
n=1;  //转速(需为整数)
cycle*n/thisComp.duration*time
简单解释下两个可以调的数值:
循环周期,默认是360度,但是不同的图形循环周期可能有所区别,比如一个正方形旋转90度就能形成循环,而一个正五角形的循环周期是旋转360÷5 =72度
第二个值很好理解,代表转速,值越大,转的越快。

6. 路径循环
表达式语句:
valueAtTime(time%key(numKeys).time)
对于mask路径和形状层路径均有效

7. 随机循环
让随机抖动的效果能够形成循环
表达式语句:
freq = 3; // 频率
amp = 100; // 幅度
loopTime =3; // 循环时间,单位为秒
t = time % loopTime;
wiggle1 = wiggle(freq, amp, 1, 0.5, t);
wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);
linear(t, 0, loopTime, wiggle1, wiggle2)
做一些元素随机晃动之类的GIF循环动画非常好用

8. 弹性
给动画添加弹性抖动效果
表达式语句:
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}
这个表达式看起来很复杂,但是没关系,咱们只要会复制粘贴就好。
其中有三个关键的数值用来控制弹性的效果,需要根据自己需要的效果来调整。
amp,即振幅,用来控制弹性的幅度大小。
freq,频率,用来控制弹性抖动的快慢。
decay,阻力,也叫衰减、阻尼等,这个值越大,则弹性效果能够越快停下来。

9. 回弹
跟上面的弹性表达式很类似,它能够制作物体撞击墙壁或地面产生的回弹反弹效果
表达式语句:

e =0.7;//弹力
g =1000;//重力
nMax = 9;//最大弹跳次数
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n--;
}
if (n > 0){
t = time - key(n).time;
v = -velocityAtTime(key(n).time - .001)*e;
vl = length(v);
if (value instanceof Array){
vu = (vl > 0) ? normalize(v) : [0,0,0];
}else{
vu = (v < 0) ? -1 : 1;
}
tCur = 0;
segDur = 2*vl/g;
tNext = segDur;
nb = 1; // number of bounces
while (tNext < t && nb <= nMax){
vl *= e;
segDur *= e;
tCur = tNext;
tNext += segDur;
nb++
}
if(nb <= nMax){
delta = t - tCur;
value +  vu*delta*(vl - g*delta/2);
}else{
value
}
}else  
value

同样,这儿有三个关键数值用来控制弹性的效果,
弹力,这个值越高,则跳起的越高
重力,这个值越大,则弹的越快,同时停止的也越快
最大弹跳次数,字面意思,用来控制弹跳的次数,值越大,效果越细腻

10. 数字增长
表达式语句(太长,脚本里有)

11. 3D坐标转2D坐标
表达式语句:
thisComp.layer('三维层名字').toComp([0,0,0]);  //
加给二维坐标,后面的数值[0,0,0]用来调整位置的偏移

脚本下载安装:
https://pan.baidu.com/share/init?surl=ylpKrHIQ1Ei_KfAyLoViTg
密码:3z9h
(脚本已备份)

回复

使用道具 举报

 

精彩评论2

正序浏览
Abiscosse 发表于 2022-9-6 18:17:07 | 显示全部楼层
 
Of the 92 patients, 47 patients were prescribed tadalafil 5 mg per day <a href=https://vtopcial.com/>cheap cialis online</a>
回复

使用道具 举报

 
Occariasy 发表于 2022-10-9 18:14:21 | 显示全部楼层
 
<a href=http://buylasixon.com/>dosage of lasix for congestive heart failure</a> 2d 1054, 1056 Fla
回复

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门图文
热门帖子
排行榜
作者专栏

关注我们:微信订阅号

官方微信

APP下载

全国服务热线:

4000-018-018

公司地址:上海市嘉定区银翔路655号B区1068室

运营中心:成都市锦江区东华正街42号广电仕百达国际大厦25楼

邮编:610066 Email:3318850993#qq.com

Copyright   ©2015-2016  师说堂网校Powered by©Discuz!技术支持:迪恩网络    ( 豫ICP备18036722号-1 )