这是一种用于模拟谐波共振指数衰减正弦波的波形。注意,频率是恒定的振幅衰减。
FEVTE编注:更多After Effects特效教程学习交流和After Effects作品发布请访问飞特网After Effects特效教程栏目,地址:https://www.fevte.com/moive/AE/AE_texiaojiaocheng/
基本衰减的正弦波振荡应用到旋转属性。
该波形通过模拟反弹表达式生成。请注意,反弹出现较多的对象失去能量。
一个基本的反弹表达已应用到旋转属性。
amp = 80;freq = 1;decay = 1;t = time - inPoint;amp*Math.sin(t*freq*Math.PI*2)/Math.exp(t*decay);
因为它位于,这种表达会引发衰减的正弦波振荡图层的入点。前三行只需设定的波形参数进行:80最大振幅,每秒一个振荡的频率,和一个衰减(多快的振幅减小)之一值。变量t是用来计算由于层的In点的时间。所有真正的数学发生在最后一行。
注:
JavaScript函数Math.sin()和Math.cos()实现都产生正弦波,但他们的目的不同表达作家。该Math.sin()函数从零开始,增加价值。 Math.cos()实现为90度的相位差Math.sin(),这意味着它开始于最大值和减小。
你通常会选择Math.cos()实现当你想一开始就在完全伸展,或完全旋转状态的对象。例如,您可能要开始与摆在最高转速,而不是零钟摆运动。我们不会在这里使用它,但它是一个很好的工具来了解。
t = time - inPoint;startVal = [0,0];endVal = [200,200];dur = 0.1;linear(t,0,dur,startVal,endVal);
freq = 3;decay = 5;t = time - inPoint;startVal = [0,0];endVal = [200,200];dur = 0.1;if (t < dur){ linear(t,0,dur,startVal,endVal);}else{ amp = (endVal - startVal)/dur; w = freq*Math.PI*2; endVal + amp*(Math.sin((t-dur)*w)/Math.exp(decay*(t-dur))/w);}
请注意,从linear()坡道的过冲振荡(其中发生在5f)的过渡完美匹配。
缓冲动画匹配传入动画的速度。
freq = 3;decay = 5;maxDelay = 1.0;seedRandom(textIndex,true);myDelay = random(maxDelay);t = time - (inPoint + myDelay);startVal = [100,100];endVal = [0,0];dur = 0.1;if (t < dur){ linear(t,0,dur,startVal,endVal);}else{ amp = (endVal - startVal)/dur; w = freq*Math.PI*2; endVal + amp*(Math.sin((t-dur)*w)/Math.exp(decay*(t-dur))/w);}
飞特游客
查看全部评论(1)
委托设计