向安宇知识库 向安宇知识库
  • 读书向
  • 学习向
    • AI工具
    • AI研究
    • 笔记
    • AIP:克丽丝AI日志
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 随笔
      • 日记
    • 视听
      • 纪录片
      • 设计
      • 视频
      • 摄影
    • 课程
  • 影视向
    • 创意策划
    • 前期拍摄
    • 后期制作
    • 影像实验
    • 影像设备
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 项目复盘
  • 折腾向
    • 穿越机
    • 户外
    • 代码
    • 手工
    • 书法
    • 篆刻
    • 绘画
首页 › 创作向 › 课程 › AE的弹性动画表达式Overshoot@BounceBack
  • 6
  • 0

AE的弹性动画表达式Overshoot@BounceBack

向安宇
2018-02-01 9:31:43

AE的弹性动画表达式Overshoot@BounceBack-向安宇知识库

这两个弹性动画的表达式几乎万能,估计所有用AE表达式的人都知道吧。我最先是在一个老外的教程里看到,原本出处在这里:http://www.motionscript.com/articles/bounce-and-overshoot.html

先来看效果:
AE的弹性动画表达式Overshoot@BounceBack-向安宇知识库

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

其曲线效果是这样的:
AE的弹性动画表达式Overshoot@BounceBack-向安宇知识库

上述表达式来自于motionscript.com,还有另外一个稍有区别的版本:

Overshoot:


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 = .1;
//振幅
freq = 2.0;
//频率
decay = 2.0;
//衰减,或者叫阻力、波长
n = 0;
//N其实是用来记录关键帧序号的,这个变量很重要
if (numKeys > 0){
//判断关键帧个数是否大于0,如果是执行{}中内容
n = nearestKey(time).index;
//取靠近时间线的那个关键帧的序号,这里要注意取得的关键帧有可能是时间线前的最后一个,也可能是时间线后的第一个,所以才有下一句的IF判断
if (key(n).time > time){n--;}
//如果取得的关键帧是时间线后面第一个,则N的序号减1,这样就保证里N永远代表的是时间线前的最后一个关键帧
}
if (n == 0){ t = 0;}
//如果没有关键帧(N=0)时,T=0。T是一个频率改变因数,也是一个阻力改变的因数
else{t = time - key(n).time;}
//如果N不为0,那么T就等于时间线与其之前最后一个关键帧的时间的差,也就是说时间线离这个关键帧越远T就越大
if (n > 0){//当有关键帧,也就是说有动画的时候执行{}里的内容
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
//velocityAtTime()这个函数是求在某一时刻对象的速度,AE里面叫关键帧数率,单位是“像素/秒”
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
//V是对象关键帧的瞬时速度,这个变量是作为一个振幅变量的补充,这样更符合物理现象,当速度越大振幅就越大。当对象的速度是0时,那弹性表达式结果也为0。T在Math.sin()中是作为频率的补充,作用是时间线离关键帧越远,值越大频率越快,这样比较符合物理规律。T在Math.exp()中试阻力指数,作用是时间线离关键帧越远,值越大阻力越大,最后让弹动归于平静
}
else{value}
//如果没有关键帧,原来值保持不变

Bounce:


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

其曲线效果是这样的:
AE的弹性动画表达式Overshoot@BounceBack-向安宇知识库

AE表达式
6
CSC电影学院听课笔记|穆德远,一位电影人的必修课05:电影摄影师的修养
上一篇
AE表达式|利用Math.round,random,clamp函数表达“可能性随机”
下一篇

评论 (0)

登录后可发布~
立即登录
暂无评论

向安宇

痴迷文字,醉心影像
447
文章
5
评论
325
喜欢

聚合文章

1.我将深入研究如何提升学习力,以及如何用AI提升学习效率
克丽丝是谁?(人物设定1.0)
AIP克丽丝的构想
wordpress也要拥抱AI

近期评论

不同意知识过时这么快,数学公式几百年都没变啊
—— Baron von Laughsalot 9 月前 1.我将深入研究如何提升学习力,以及如何用AI提升学习效率
这学习方法太适合我这种记性差的了,必须追更!
—— 狂血战士 9 月前 AIP克丽丝的构想
数字人做语言教学太香了,求Anni快出实操指南!
—— 贪吃小熊 9 月前 Anni搞钱系列:普通人用AI,到底能做起来什么副业?
想问作者会开线下课吗?想带孩子去听听
—— 秋分桂落 9 月前 1.我将深入研究如何提升学习力,以及如何用AI提升学习效率
想问下这个AI工具对服务器配置要求高吗?
—— 狂喜的烟花 9 月前 wordpress也要拥抱AI

猜你喜欢

MG点线动画临摹《THE EDITOR》-07(循环的圆改进)

MG点线动画临摹《THE EDITOR》-07(循环的圆改进)

2018-12-13 17:53:03
1,673 0 1
AE表达式|22、如何用滑块控制明度?@hslToRgb @rgbToHsl

AE表达式|22、如何用滑块控制明度?@hslToRgb @rgbToHsl

2018-09-18 9:53:59
1,890 0 0
AE表达式|26、如何将透明度添加进父子关系?@ parent

AE表达式|26、如何将透明度添加进父子关系?@ parent

2018-09-25 15:41:33
5,949 0 7
达芬奇:高频锐化

达芬奇:高频锐化

2020-03-21 22:41:26
4,336 0 3
6

关于我:

想要读万卷书,行万里路,看万部电影。

推荐栏目:

视频论文 课程 后期制作 非虚构 照片 视频

特色专题:

专题汇总 宜看一侃 帧影帧画 重读文学史 青玉记
Copyright © 2016-2026 向安宇知识库. 鄂ICP备16005400号-1 鄂公网安备42050602000017号
  • 读书向
  • 学习向
    • AI工具
    • AI研究
    • 笔记
    • AIP:克丽丝AI日志
  • 创作向
    • 写作
    • 视听
    • 课程
  • 影视向
    • 创意策划
    • 前期拍摄
    • 后期制作
    • 影像实验
    • 影像设备
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 项目复盘
  • 折腾向
    • 穿越机
    • 户外
    • 代码
    • 手工
    • 书法
    • 篆刻
    • 绘画
  • 剪辑
  • 转场
  • 纪录片

向安宇

痴迷文字,醉心影像
447
文章
5
评论
325
喜欢