讲故事的手艺人 讲故事的手艺人
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 读书
      • 随笔
    • 拍摄
      • 纪录片
      • 设计
      • 视频
      • 摄影
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
  • 注册
  • 登录
首页 › 技术向 › 原创教程 › AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime

向安宇
2018-08-03 16:50:46原创教程阅读 3,913

效果预览:
AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人
敲黑板:

  • 了解表达式speed
  • 了解表达式toFixed(n)
  • 了解表达式valueAttime

其实这里我们只是想要让小球“扁”的程度和速度关联起来,速度越快,小球越扁。

1、打关键帧

新建形状图层,绘制小球。

给小球的position属性下的x值打关键帧,并调出曲线面板,让这个小球的运动有速度变化。

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人

2、添加表达式

在Scale属性下添加表达式:

scaleX = transform.scale[0];
scaleY = transform.scale[1] - transform.xPosition.speed / 50;

[scaleX,scaleY]

scale属性是一个数组,所以这个表达式返回的值必须是数组。引入变量scaleX,其值就是scale属性值中原本的值,用"[0]"调出。

引入变量scaleY,这个值我们希望通过表达式让其变化,这个变化是在原本的y轴缩放上变化的,所以首先调用该项属性的y轴的值,也就是tansform.scale[1] 。然后减去速度变化值。

ransform.xPosition是只想该对象的x轴位置,后面加半角句号“.”,写上“speed”。

“transform.xPosition.speed”指向的是小球x轴位移的速度,因为这个数值较大,所以除以50,减小一小变化。

当然,这个表达式可以利用value,写成:

scaleX = value[0];
scaleY = value[1] - transform.xPosition.speed / 50;

[scaleX,scaleY]

这样我们就已经得到了上面“效果预览”里的效果了。

3、扩展1:观察speed数值

为了更好的理解speed,我们将这个数值显示出来观察。

新建文字层,给属性Source Text添加表达式,这里利用拾取器直接拾取小球position位移的x轴属性,得到:

thisComp.layer("circular").transform.xPosition //"circular"是小球的形状层,下同

在后面添加半角句号“.”以及“speed”。这样,小球的速度就能直接显示称为数值。但是这个值小数点后面有很多位,为了美观,后面继续添加“toFixed(2)” 。

toFixed() 可把 Number(数值)四舍五入为指定小数位数的数字。比如这里,就是四舍五入为小数点后两位。

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人

4、扩展2:添加粒子

新建solid,添加Particular效果。Emitter(发射器)就选点发射器,修改随机颜色,修改粒子大小。我们这里是为了学习表达式,就不详细说particular设置,一些设置是为了便于观察。

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人

发射器的位置,也就是Position XY属性下,添加表达式:

newX = thisComp.layer("circular").transform.xPosition;
newY = thisComp.layer("circular").transform.yPosition;

[newX, newY]

这个表达式是让粒子的发射器跟随小球同步运动。

然后给Particular/sec(粒子每秒发射数量)添加表达式:

a = 20;//再强调写法规范,需要调试的数值,引入变量写在第一段

n = thisComp.layer("circular").transform.xPosition.speed / a;
if(n < 0){
particularNum = n * (-1);
}else{
particularNum = n;
}

[particularNum]

因为这个小球key的帧是有往返运动的,speed的值有正有负,这里添加了一个if else条件判断。当速度的返回值小于0的时候,乘以-1,这样依然返回一个正值。

通过这个表达式,让最终的返回值始终是正数(particular粒子数量不能为负数)。

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人

5、扩展3:显示粒子数量

为了更好观察,以了解表达式,我们将粒子数量显示出来,同样是新建一个文字层,给Source Text添加表达式:

particularText = thisComp.layer("Particular").effect("Particular")("Particles/sec");
Math.ceil(particularText) // 其中“Particular”是粒子特效所在固态层

Math.ceil是向上取整。

Math.round(value) 四舍五入
Math.ceil(value) 向上取整
Math.floor(value) 向下取整

  

6、扩展4:用valueAtTime来制造延迟

将小球复制两层,调整Y轴位置,使它们不重叠,给其中一个小球x位置值添加:

valueAtTime(time - .5)

则这个小球x轴的位移相对于没添加表达式的小球延迟0.5秒。

给另一个小球添加表达式:

valueAtTime(time + .5)

则这个小球x轴的位移相对于没添加表达式的小球提前0.5秒。

得到如下效果:

AE表达式|06、如何做一个Q弹的圆球?@ speed @toFixed(n) @valueAtTime-讲故事的手艺人

< 返回目录

AE表达式
赞赏 赞(1) 收藏(0)
AE表达式|05、如何制作一个小火箭?@ wiggle
上一篇
林韬导演谈“电影色彩的六大观念”
下一篇

请登录以参与评论

现在登录
所有评论(2)
  • 子鱼

    膜拜学习

    6年前 未知地区 回复
  • O.0

    Good!

    6年前 广东省 回复
标签
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
2 1
  • 1
  • 2
关于我:

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

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