=时间控制
该表达式表示:3~5秒内不会动
if(time>5)wiggle(5,100);else
if(time<3)wiggle(5,100);else
if(time>2&&time<3);
=缩放
每1秒由小变大
a=[100,100];
a*(time%1);
=控制旋转的时间
2秒至3秒内快速旋转,4至5秒内慢速旋转,其他时间不动,s控制旋转的速度
if(time>2&&time<3)
{s=3;
360(time%1)_s;
}
else if(time>4&&time<5)
{s=1;
360(time%1)_s;
}
=旋转
time*360 每秒转360度
if(time<1)
{time360;
}
else
{time(-360);
}
=随机摆动
一秒摆动5次,幅度为100px
wiggle(5,100)
一秒转2次,幅度为90度
wiggle(2,90)
一秒透明度变2次
wiggle(2,90)
=不透明度
在0-100间随机取值
random(0,100)
=万能回弹
nearestKeyIndex = 0;
if (numKeys > 0){
nearestKeyIndex = nearestKey(time).index;
if (key(nearestKeyIndex).time > time){
nearestKeyIndex—;
}
}
if (nearestKeyIndex == 0) {
currentTime = 0;
} else {
currentTime = time - key(nearestKeyIndex).time;
}
if (nearestKeyIndex > 0 && currentTime < 1) {
calculatedVelocity = velocityAtTime(key(nearestKeyIndex).time - thisComp.frameDuration / 10);
(振幅)amplitude = 0.1;
(振频)frequency = 2.0;
(衰减)decay = 4.0;
value + calculatedVelocity amplitude Math.sin(frequency currentTime 2 Math.PI) / Math.exp(decay currentTime);
} else {
value;
}
=抖动表达式
==============Keyframe Overshoot =============
(过冲、夸张的)理解为“抖动”,如 果冻抖动的效果
freq = 3;
decay = 5;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n—;
}
if (n > 0){
t = time - key(n).time;
amp = velocityAtTime(key(n).time - .001);
w = freqMath.PI_2;
value + amp(Math.sin(t_w)/Math.exp(decay*t)/w);
}else
value
=反弹表达式
==============Keyframe Bounce Back =============
“反弹”,如 皮球落地反弹的效果
e = .7;
g = 5000;
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 = 2vl/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 + vudelta(vl - g*delta/2);
}else{
value
}
}else value
==随机数字=
function getRandomlnt(min,max){
num=random(0,100);
num=Math.round(num);
return num;
}
getRandomlnt(0,100);
==钟表秒针分针转动=
秒针time*720
分针thisComp.layer(“秒针”).transform.rotation/12
==小球尾巴=
valueAtTime(time-0.015*(index-1));
s=100-(index-1)*10;
[s,s];
==y轴随机抖动=
x=transform.position[0];
p=wiggle(1,35);
[x,p[1]]
x轴后面加0表示x轴不运动
最后p后面加1表示p运动