ae万能弹性表达式_AE动画必备——弹性表达式,让你的动画生动起来

这次分享的是非常实用且高效的表达式!

弹性表达式,Bounce 和 Overshoot!利用这个两个表达式你可以轻而易举地实现各种弹性动画,如抖动、弹跳动画等。是的,你没听错,只要998个赞,你就能轻松获得随意加弹性Buff!赶快拿起你的鼠标点赞吧!

表达式的是国外大神写出来的,感谢大神的分享,我们只能膜拜了!而且作者非常无私的贴出了两个(Bounce & Overshoot)可以直接进行关键帧的表达式,再次膜拜(室友问我为什么跪着打字)。后面我会提到怎么去快速理解和掌握这个弹性两个表达式。

首先我们先来了解一下什么是Bounce 和 Overshoot吧!

Bounce 效果(重力效果)

d9d04e42598d449da4d11f757d482635

Overshoot 效果(弹性效果)

6707bea4cf2543d0824c45b514683640

我可以简单将:

·Bounce 理解为“反弹、类似重力作用”,如 皮球落地反弹的效果;

·Overshoot(过冲、夸张的)理解为“抖动”,如 果冻抖动的效果。

说了这么多,我们来看表达式的真容吧!

Overshoot(弹性表达式--加上后你的效果就是Q弹Q弹的)

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

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

Ok,那么怎么使用它呢?

第一步,将上面两套表达式ctrl+c复制到你的笔记中,方便你的随时随地的调用它。

看到这步,恭喜你!你已经学会了80%了。

下面我将拿用的最多的弹性效果来举例吧。

step 1:为要做动画的物体打关键帧(位置移动,缩放,透明度都行,我们以位移为例)

3402d1e05cf1431793e46afdb5d4e3c1

未加表达式的效果(是不是很生硬):

379e92785899414f808fc3d37711d8a3

step 2:复制弹性表达式

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

step 3:按住ALT键点击关键帧码表,把表达式复制进去。大功告成!

a799f3b2c7af47128815d80235e5bca0
6707bea4cf2543d0824c45b514683640

相信看到这里你应该已经学会了Bounce 和 Overshoot表达式的用法,是不是超简单,超实用!再次感谢原作者(http://www.motionscript.com/articles/bounce-and-overshoot.html )的无私分享!表达式着实能为我们省下不少宝贵的时间,希望这期的分享对你ae动画的提升有帮助。

最重要的一点

嘿嘿,如果对你有帮助,记得关注转发哦,你们的支持是我分享的动力!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值