AE弹性表达式

AE常用表达式—–弹性表达式

amp=0.1;

freq=2;

decay=2;

n=numKeys;

if(n==0){value;}

else{

t=time-key(n).time;

if(t>0){v=velocityAtTime(key(n).time-thisComp.frameDuration/10);

value+v*amp*Math.sin(freq*2*Math.PI*t)/Math.exp(decay*t);}

else{value};

}


首先:

定义变量并赋值

amp =0.1;(振幅)

freq = 2.0;(频率)

decay = 2.0;(衰减)

n=numKeys;(关键帧的数量)

有两种情况,一种是n等于0,没有关键帧,直接返回物体本身位置的值,

if(n==0){value;}      

另一种是当n不等于0时,也就是说key了关键帧时的情况。首先我们要明确以下的这些判定都是在n不等于0的条件下成立的,所以else这里用了一个嵌套。

else{

无论有几个关键帧,我们都希望在最后一个关键帧处开始做弹性动画,所以首先我们要判定指针与末帧的位置关系。

{t=time-key(n).time;}

当t>0,指针在末帧的右侧,开始做弹性动画。

if(t>0)

我们要让物体到达末帧后速度越来越小,直到0的时候,再返回回去,就像一个正弦运动。

首先我们要找到物体在末帧的速度值,因为末帧物体停止,所以此处我们应该找到指针在末帧左侧并无限逼近末帧时的物体的速度值。

{v=velocityAtTime(key(n).time-thisComp.frameDuration/2);

因为正弦运动是等幅的,但我们要让它随着时间的推移,幅度越来越小,所以我们要在正弦函数上除以一个随着时间推移成指数倍增大的一个值。

value+v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);}

当t<=0时,即指针在末帧左侧,此时我们直接返回物体本身位置值。

else{value;}

AE弹性表达式如下:


常见问题:



Q1:为什么同样的关键词,生成的图跟预览图不一样呢?

因为AI绘图每次生成的效果都是随机的。

Q2:如何提高AI绘画作品的清晰度?

使用Upscale 免费的图片放大工具,可以 将图片的分辨率提高最高四倍,并自动调整亮度和饱和度,提升图片质量。
© 版权声明
THE END
喜欢就支持一下吧
分享