AE循環表達式


 

loopOut(type = "cycle", numKeyframes = 0)                                               

 

 

后面的數值0用來控制從第幾幀開始循環

 

將關鍵幀動畫重復進行的循環效果

將關鍵幀動畫重復進行的循環效果

比如你有關鍵幀1、2、3,這種循環模式就是1、2、3、1、2、3、1、2、3.....一直循環下去

   

loopOut(type = "cycle", numKeyframes = 0)

 

 

后面的數值0用來控制從第幾幀開始循環

 

像乒乓球一樣來回往復循環

同樣,如果你有關鍵幀1、2、3,那么這種循環模式就是按1、2、3、3、2、1、1、2、3.....這種規律循環下去

 

   

 loopOut(type="continue")

 

 

沿着最后一幀的方向和運動速度繼續運動下去

這種模式相比前兩種用的較少,可以便於制作動畫持續緩慢運動的效果,避免動畫靜止,

也可以制作一些數字持續增長等效果

   
 

cycle=360;
n=1;
cycle*n
/thisComp.duration*time

 

 

循環旋轉表達式

第一行 360 代表循環周期

第二行1 代表轉速  值越大,轉的越快。

   

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,阻力,也叫衰減、阻尼等,這個值越大,則彈性效果能夠越快停下來。

 

   

 

 

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

  彈簧(回彈)表達式

同樣,這兒有三個關鍵數值用來控制彈性的效果,

彈力,這個值越高,則跳起的越高

重力,這個值越大,則彈的越快,同時停止的也越快

最大彈跳次數,字面意思,用來控制彈跳的次數,值越大,效果越細膩

這里的彈力和重力都是物理名詞,這個效果也是模擬真實物理現象的,所以需要結合下物理知識來理解。

   
 

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)

 

 隨機循環

讓隨機抖動的效果能夠形成循環

 

第一行 頻率

 

第二行 幅度

 

第三行 循環時間,單位為秒

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM