header_v0.7.0

AE制作抖动动画

1年前发布

原创文章 / 影视 / 教程
Zukking 原创,如需商业用途或转载请与Zukking联系,谢谢配合。

AE表达式实现抖动效果

昨天在一个模板中分析得到了以下几组表达式,虽然刚接触AE,并不懂什么意思,但是,我意外发现利用它们似乎能制作出比较有意思的抖动效果,先看一下表达式:


//bounce

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);

amp=0.03;

freq=2,0;

decay=2.0;

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

}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 = freq*Math.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 = 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

每个效果稍有不同,个人比较喜欢第一组表达式的效果


这里是用法:超级简单

(以第一组表达式为例)


step 1:做关键帧动画

ffb05764a7990000018c1b761891.jpg

step 2:摁 F9,在曲线编辑器里面调运动曲线(注意一点:最后一个关键点的速度不能为0

f4e55764a7e10000012e7e24764e.jpg

step 3:粘贴表达式

41375764a8600000012e7e6b16dc.jpg

step 4:带上炸鸡和啤酒,坐下来慢慢欣赏吧

3

    文章信息

    意见反馈
    没有新消息

    提示文案

    提示文案

    提示失败
    提示成功