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

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

向安宇
2018-08-30 23:06:50

做扇动的翅膀需要用到正弦函数,我们就先来看看这个表达式: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
AE表达式|16、如何理解随机数方法?@ random
上一篇
AE表达式|18、一句话解释JavaScript Math,何如?
下一篇

评论 (0)

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

向安宇

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

近期评论

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

猜你喜欢

AE表达式|04、如何制作一个简单的时钟?@ index , time

AE表达式|04、如何制作一个简单的时钟?@ index , time

2018-07-10 16:04:03
3,405 1 4
MG动画教程005|文字缩放和随机变化(苹果快闪广告教学)

MG动画教程005|文字缩放和随机变化(苹果快闪广告教学)

2018-03-12 14:46:23
1,627 0 0
AE表达式|关联出点和入点

AE表达式|关联出点和入点

2018-02-01 10:06:40
2,919 0 4
AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果

AE表达式|文字滚动效果的修改和升级——取模运算实现循环效果

2019-01-22 16:56:43
6,631 3 11
3

关于我:

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

推荐栏目:

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

特色专题:

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

向安宇

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