讲故事的手艺人 讲故事的手艺人
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 读书
      • 随笔
    • 拍摄
      • 纪录片
      • 设计
      • 视频
      • 摄影
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
  • 注册
  • 登录
首页 › 技术向 › 原创教程 › AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin

AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin

向安宇
2018-08-30 23:06:50原创教程阅读 5,248

做扇动的翅膀需要用到正弦函数,我们就先来看看这个表达式:Math.sin()。

使用AE自带的write-on来绘出Math.sin的运动轨迹:
AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin-讲故事的手艺人

上图的例子里是给Brush Position(画笔位置)使用表达式:

amp = .5 ;
offset  = 100;

offsetY = Math.sin(amp*time*2*Math.PI)*offset;

x = position[0] - width/2 + time*width/4;
y = position[1] + offsetY;

[x,y]

正弦函数的最小周期是2π,AE里函数Math.PI = 3.14159265358976323846…… ,也就是π的值。

参看了Jerlin的一篇文章,AE里sin默认的弧度,2π刚好让sin在1秒内走一个周期。也就是说:

Math.sin(time*2*Math.PI)

刚好让正弦函数往返一个周期,因而,如果要控制sin的周期,我们引入一个变量t,表达式可以改为:

t = 2;//t的值就是正弦函数一个周期的时间,单位为秒
offset  = 200;//y轴偏移值

offsetY = Math.sin((2/t)*Math.PI*time)*offset;

x = position[0] - width/2 + time*width/4;
y = position[1] + offsetY;

[x,y]

这个表达式里,t是跑完一个周期的时间,值越大,函数变化的越快。

offset控制的是在y轴的便宜幅度,这里相当于振幅。

更改这两个值,可以方便的控制正弦函数的形态:
AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin-讲故事的手艺人

我们知道正弦函数其实就是在0的上下规律的波动,因此常常可以用来驱动一些规律的动作,比如扇动翅膀。

惯例先做一半,突然的恶趣味,打算做一个小蚊子,先画个身子,再画一边的翅膀,给形状层里的图形Shape的Rotation添加表达式:

amp = 40; //控制幅度
freq = 20; //控制频率
offset = -30; //控制偏移

value + Math.sin(freq*time)*amp + offset

引入三个变量amp、freq、offset是为了方便调试。

调试好后,复制一层,将锚点移动到合适位置,旋转y轴,翻转出另一面翅膀。

预合成,旋转让头朝右,给position添加表达式:

amp = .5 ;
offset  = 100;

offsetY = Math.sin(amp*time*2*Math.PI)*offset;

x = position[0] - width/2 + time*width/4;
y = position[1] + offsetY;

[x,y]

和之前的write-on在一起就成了一只以正弦函数轨迹飞行的蚊子:
AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin-讲故事的手艺人

按照Jerlin的方法给这个蚊子一点阻力:

amp = 1;
offset  = 500;
decay = 2;

a = Math.sin(amp*time*2*Math.PI)*offset;
offsetY = a/Math.exp(decay*time);

x = position[0] - width/2 + time*width/4;
y = position[1] + offsetY;

[x,y]

TIPS:
Math.exp(value)返回的是自然常数e的value次幂,e 是欧拉数,它约等于 2.71828 。

AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin-讲故事的手艺人

再来一只撞到天花板的蚊子:

amp = 1;
offset  = 500;
decay = 2;

a = Math.sin(amp*time*2*Math.PI)*offset;

offsetY = Math.abs(a)/Math.exp(decay*time);


x = position[0] - width/2 + time*width/4;
y = position[1] + offsetY;

[x,y]

  
AE表达式|17、怎样做一对扇动的翅膀? @ Math.sin-讲故事的手艺人
TIPS:
Math.abs()如果参数是非负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
特殊情况是:
如果参数是正零或负零,那么结果是正零。
如果参数是无穷大,那么结果是正无穷大。
如果参数是 NaN,那么结果就是 NaN。

< 返回目录

AE表达式
赞赏 赞(3) 收藏(0)
AE表达式|16、如何理解随机数方法?@ random
上一篇
AE表达式|18、一句话解释JavaScript Math,何如?
下一篇

请登录以参与评论

现在登录
暂无评论
标签
720全景 ACES AE AE案例 AE表达式 Anyu翻译 CSC电影学院 fusion Hackintosh MG动画 ps教程 vlog wordpress 创意方法 剪辑 字幕 帧影帧画 抖音 摄影 文案 混剪 混音 灯光 看电影 磨皮 穿越机 纪录片 编剧 美术 美食 論語 调度 调色 达芬奇 重讀文學史 青玉记
室内360全景图的简单修图
2020-10-13 21:51:45
2,691 0 0
达芬奇:高频锐化
2020-03-21 22:41:26
3,879 0 3
3、ISO
2019-11-06 21:54:32
1,754 0 0
2、光圈和景深
2019-11-03 17:10:31
1,758 0 2
3
  • 3
  • 0
关于我:

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

推荐栏目:
视频论文 原创教程 后期制作 非虚构 照片 视频
特色专题:
专题汇总 宜看一侃 帧影帧画 美食摄影 重读文学史 青玉记
Copyright © 2016-2025 讲故事的手艺人. 鄂ICP备16005400号-1 鄂公网安备42050602000017号
  • 创作向
    • 写作
    • 拍摄
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
# 剪辑 # # 转场 # # 纪录片 #
向安宇
痴迷文字,醉心影像
420
文章
5
评论
325
喜欢