向安宇个人网站向安宇个人网站
  • 注册
  • 登录
  • 首页
  • 读书
  • 写作
    • 随笔
    • 小说
    • 剧本
    • 文言
    • 非虚构
  • 电影
    • 电影赏析
    • 视频论文
    • 大师镜头
    • 帧即是画
  • 研学
    • 影像实验
    • 影像设备
    • 创意之道
    • 纪录大师
    • 影视技术
    • 听课笔记
    • 原创教程
  • 作品
    • 纪录片
    • 视频
    • 摄影
    • 设计
    • VR
首页 › 研学 › 原创教程 › AE表达式|34、如何制作果冻效果(挤压与伸展)?

AE表达式|34、如何制作果冻效果(挤压与伸展)?

向安宇
2018-10-23 14:28:56原创教程
1,618 0 2

AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站
我们一步步来。果冻效果,类似于弹簧效果,是需要scale缩放的衰减。

我们需要一个正弦函数的指数衰减,这里用到两个表达式:Math.sin() 和 Math.exp() 。

Math.sin() 就是正弦函数,不用多解释, Math.exp(x) 是e的x次幂(e是常数2.71828)。

用Math.exp()作为倒数,就能得到一个不断衰减的正弦函数曲线:

AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

value + Math.sin(time*20)/Math.exp(time)

Math.sin()是在-1和1之间的值,比较小,需要乘以一个数,让缩放效果更加明显:

spd = 20;
maxDev = 20;

value + maxDev*Math.sin(time*spd)/Math.exp(time)

AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

这个效果还缺一个挤压,需要把x轴和y轴的缩放错开来:

spd = 20;
maxDev = 20;

offset = maxDev*Math.sin(time*spd)/Math.exp(time); 
scaleX = scale[0] + offset;
scaleY = scale[1] - offset;

[scaleX,scaleY]

AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

这个表达式还可以写成:

spd = 20;
maxDev = 20;

scaleX = scale[0] +maxDev*Math.sin(time*spd)/Math.exp(time);
scaleY = scale[1]*scale[0] / scaleX;

[scaleX,scaleY]

得到的都是这种交叉的指数衰减正弦函数曲线:
AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

这个函数还可以改进,引进一个变量decay,让衰减得更陡或更缓。
decay等于0.5时候:
AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站
decay等于2时候:
AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

让动画效果的起点是图层的入点:

spd = 30;
maxDev = 20;
decay = 1;

t = time - inPoint;
offset = maxDev*Math.sin(t*spd)/Math.exp(t*decay); 
scaleX = scale[0] + offset;
scaleY = scale[1] - offset;

[scaleX,scaleY]

进一步改进,用标记点来控制:

spd = 10; //挤压拉伸的速度
maxDev = 20; //挤压拉伸的大小
decay = 1; //衰减的速度
	
if(marker.numKeys > 0 && marker.nearestKey(time).time 

结合其他表达式来看一下效果:

1、给位置Position打上关键帧,第一帧[960,200],第六帧[960,540],然后给其添加表达式:

e = .7;
g = 3000;
nMax = 500;
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 

2、给scale添加表达式:

spd = 10;
maxDev = 20;
decay = 2;
	
if(marker.numKeys > 0 && marker.nearestKey(time).time 

3、给图层打上标记点,并将标记点移动到第六帧

4、给scale第一帧打上关键帧[100,200],给第六帧打上关键帧[100,100]

得到如下效果:
AE表达式|34、如何制作果冻效果(挤压与伸展)?-向安宇个人网站

< 返回目录

AE表达式
2
AE表达式|33、如何调用系统时间?
上一篇
AE表达式|35、怎样制作一个时间码?
下一篇
评论 (0)

请登录以参与评论。

现在登录
    随机推荐
    达芬奇:高频锐化
    2020-03-21 22:41:26
    Vlog|宜昌南边村半日闲,忍把浮生,换来午睡一晌
    2017-10-23 0:42:43
    AE表达式|03、如何让一个小方块从左运动到右?@ time
    2018-07-06 17:11:39
    wordpress非插件实现文章回复可见
    2017-03-14 16:57:19
    最新文章
    ImpulZ Luts的使用
    2020-11-24 14:41:15
    室内360全景图的简单修图
    2020-10-13 21:51:45
    “愛上紀錄片”創作培訓營:樊啟鵬–大師·類型·流派【筆記+感悟】
    2020-10-02 11:25:08
    2020金馬電影大師課:廖慶松 -青鸞舞鏡,隱身於明鏡之後
    2020-09-06 11:02:48
    关于剪辑的日常叨叨:什么时候用特效转场
    2020-09-04 21:39:51
    辟谷者
    2020-08-22 19:39:55
    标签
    720全景 ACES AE AE案例 AE表达式 Anyu翻译 CSC电影学院 fusion Hackintosh MG动画 ps教程 vlog wordpress 创意方法 剪辑 字幕 帧影帧画 抖音 摄影 文案 混剪 混音 灯光 看电影 磨皮 穿越机 纪录片 编剧 美术 美食 論語 调度 调色 达芬奇 重讀文學史 青玉记
    2
    相关文章
    室内360全景图的简单修图
    达芬奇:高频锐化
    3、ISO
    2、光圈和景深
    关于我:

    想要读万卷书,行万里路,看万部电影。当过人民教师,做过策划师,入行影视做剪辑、导演。艺术是目的,技术是支撑,不断钻研,积聚梦想,同时分享干货。

    推荐栏目:
    一路前行 视频论文 原创教程 影视技术 非虚构 摄影 视频
    特色专题:
    专题汇总 宜看一侃 帧影帧画 美食摄影 重读文学史 青玉记
    Copyright © 2016-2021 向安宇个人网站. 鄂ICP备16005400号 鄂公网安备42050602000017号
    • 首页
    • 读书
    • 写作
      • 随笔
      • 小说
      • 剧本
      • 文言
      • 非虚构
    • 电影
      • 电影赏析
      • 视频论文
      • 大师镜头
      • 帧即是画
    • 研学
      • 影像实验
      • 影像设备
      • 创意之道
      • 纪录大师
      • 影视技术
      • 听课笔记
      • 原创教程
    • 作品
      • 纪录片
      • 视频
      • 摄影
      • 设计
      • VR
    热门搜索
    • AE表达式
    • 帧影帧画
    • wordpress
    • 剪辑
    • 达芬奇
    • 调色
    • CSC电影学院
    • AE
    • vlog
    • MG动画
    • 看电影
    • 重讀文學史
    • 纪录片
    • 灯光
    • 青玉记
    • 编剧
    • Anyu翻译
    • AE案例
    向安宇
    痴迷文字,醉心影像
    411 文章
    4 评论
    308 喜欢
    • 2
    • 0
    • Top