讲故事的手艺人 讲故事的手艺人
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 读书
      • 随笔
    • 拍摄
      • 纪录片
      • 设计
      • 视频
      • 摄影
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
  • 注册
  • 登录
首页 › 技术向 › 原创教程 › AE表达式|利用Math.round,random,clamp函数表达“可能性随机”

AE表达式|利用Math.round,random,clamp函数表达“可能性随机”

向安宇
2018-02-01 9:35:42原创教程阅读 4,743

AE表达式|利用Math.round,random,clamp函数表达“可能性随机”-讲故事的手艺人

要实现文字闪烁,一个简单的办法就是给“缩放”scale写一个wiggle表达式。
AE表达式|利用Math.round,random,clamp函数表达“可能性随机”-讲故事的手艺人

但是这个效果有个问题,文字一直闪个不停,很难看清是哪几个字,那就失去了文字表意的初衷了。其实这里想要的是这种效果:
AE表达式|利用Math.round,random,clamp函数表达“可能性随机”-讲故事的手艺人

这个文字闪烁效果:一是随机闪烁,二是要留给观众时间看清是哪几个字。依然是wiggle的效果,但是需要改进表达式。

  1. //“可能性”表达式
  2. probability = 4;
  3. r = Math.round(random(-probability+2,1));
  4. v = clamp(r,0,1);
  5. wiggle(10,400*v)

这个表达式,向安宇称之为“可能性随机”表达式,这是一个可以简单变现可能概率的表达式,上面的这个表达式就是1/4的“可能性”,意思就是每4帧,有1帧可能会产生后面的wiggle的效果。

这个表达式很简单,只需要三个函数就可以实现。下面分开来讲:

Math.round()函数

这个函数的功能很简单,就是四舍五入取整。比如括号里的值是1.6,则返回的值是2;括号里的值是1.4,则返回的值是1 。

取整是AE表达式里很常用的函数,一般有三种方式:

  1. Math.round()//四舍五入取整  
  2. Math.ceil()//向上取整  
  3. Math.floor()//向下取整  

 
向上取整的意思就是无论小数点后是多少,向上取最近的整数,比如值为1.2,返回值是2 ;
向下取整的意思就是无论小数点后是多少,向下取最近的整数,比如值是1.9,返回值是1 。

random()函数

这个函数的功能是在一定范围内取随机值,在Ae里,每一帧随机取一个值。

这个函数需要定义最大值和最小值,random(min,max),意思就是在min和max之间随机取一个值。

比如random(1,4)
其返回值是在1和4之间随机取一个值,可以是1,可以是1.442,可以是3.88,可以是4 。

和Math.round()结合起来使用:

  1. Math.round(random(-2,1))  

其效果是在-2和1之间的随机值取整,其返回值是-2,-1,0,1中的一个。

clamp()函数

clamp是夹子的意思,这个函数写作Clamp(value,min,max)

其用处就是将数值限制在min和max之间,当value值小于min时候,返回值为min;当value值大于max的时候,返回值为max 。

结合上面讲到的函数,我们可以这样写:

  1. clamp(Math.round(random(-2,1)),0,1)  

为了美观,引入变量,给Math.round(random(-2,1))赋值r,写作:

  1. r = Math.round(random(-2,1));  
  2. clamp(r,0,1)  

这里的r返回值有四个:-2,-1,0,1
r为-2时候,value小于0,返回值为0;
r为-1时候,value小于0,返回值为0;
r为0的时候,value等于0,返回值为0;
r为1的时候,value等于1,返回值为1。

也就是说,有1/4的机会返回值为1 。

那么,如果加上一个乘法运算,就可以有一个ture和flase的判断了。

比如,给clamp函数赋值为v,在加上一个乘法

  1. v = clamp(r,0,1)  
  2.   
  3. x = 400*v  

那么这里的x有1/4的机会乘以1保持不变依然是400,其他时候乘以0等于0。

那么,一开始提到的文字闪烁效果,可以给scale加一个wiggle效果,让其每四帧,其中随机有一帧实现频率为10振幅为400的偏移,表达式写为:

  1. r = Math.round(random(-2,1));  
  2. v = clamp(r,0,1);  
  3.   
  4. wiggle(10,400*v)  

为了更好控制,引入另外一个变量probability,表达式改为:

  1. probability = 4;  
  2. r = Math.round(random(-probability+2,1));  
  3. v = clamp(r,0,1);  
  4.   
  5. wiggle(10,400*v)  

这样可以直接改probability的值,值为4的时候,每4帧里随机一帧有wiggle效果,值为12时候,每12帧里随机一帧有wiggle效果。这样方便在AE里观察和控制效果,根据不同场景的应用可以改动。

这个表达式依然是为里实现随机效果,可以很简单表现随机的“可能性”,为了区分向安宇成其为“可能性随机”。命名只是为了好记忆,另外放到脚本预设里好区分,不必纠结,随便啥名字都可以。

AE表达式
赞赏 赞(18) 收藏(0)
AE的弹性动画表达式Overshoot@BounceBack
上一篇
AE表达式|随机单个文字跳跃效果
下一篇

请登录以参与评论

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

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

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