讲故事的手艺人 讲故事的手艺人
  • 创作向
    • 写作
      • 非虚构
      • 剧本
      • 小说
      • 文言
      • 读书
      • 随笔
    • 拍摄
      • 纪录片
      • 设计
      • 视频
      • 摄影
  • 策划向
    • 策划资料
    • 创意之道
    • 短视频研究
  • 技术向
    • AI
    • 前期拍摄
    • 后期制作
    • 原创教程
    • 影像实验
    • 影像设备
    • 穿越机
  • 艺术向
    • 研究学习
    • 大师镜头
    • 电影赏析
    • 视频论文
    • 经验总结
  • 注册
  • 登录
首页 › 技术向 › 原创教程 › AE表达式|12、如何利用标记点进行精确控制?(实用进阶)@markerKey

AE表达式|12、如何利用标记点进行精确控制?(实用进阶)@markerKey

向安宇
2018-08-25 15:49:21原创教程阅读 5,456
怎样用图层标记点控制淡入淡出?

可以用marker.nearestKey(time)访问标记点的index、time和comment等参数;用marker.key(n)访问相应index值的标记点,比如marker.key(1)访问的是第一个标记点,marker.key(2)访问的是第二个标记点。

我们一步步来。

我们首先来写一个控制淡出的表达式,这类表达式用linear来写。新建形状层,给Opacity写入表达式:

t = time;
linear(t, 0, 1, value, 0)

  

这个表达式是让对象在1秒内从现有的透明度变为0 。

我们再引入一个表达式framesToTime(frames, fps = 1.0 / thisComp.frameDuration),这个表达式是将帧数转变为时间值,如framesToTime(10),是将10帧转变为当前合成帧率下10帧的时间,如果当前合成是24fps,那么framesToTime(10)其返回值就是10/24。这个表达式方便进行帧数级别的控制,比用时间值进行控制方便得多。

那么,我们的表达式可以改进为:

t = time;
fadeFrames = 10;

linear(t, 0, framesToTime(fadeFrames), value, 0)

  

旧话重提,写表达式一定要方便调试,这里引入变量fadeFrames,并写在前面几行,当fadeFrames等于10时候,这个表达式让对象在10帧内,从现有透明度变为0 。

接下来,我们给图层打上标记点,用标记点来控制淡出:

t = time - marker.key(1).time;
fadeFrames = 10;

linear(t, 0, framesToTime(fadeFrames), value, 0)

  

既然现在是用time作为“引擎”来驱动linear让Opacity淡出,那么,time反过来,就能控制淡入,所以表达式写成:

t = marker.key(1).time - time;
fadeFrames = 10;

linear(t, 0, framesToTime(fadeFrames), value, 0)

  

上面两个表达式是用时间线上第一个标记点来控制,且只能一次控制淡入或淡出,那么,能否再打上一个标记点,让第一个标记点控制淡入,第二个标记点控制淡出?

fadeFrames = 10; 

m = marker.nearestKey(time).index;
if(m == 1){
t = marker.key(m).time - time;}
else if(m == 2){
t = time - marker.key(m).time;}
linear(t, 0, framesToTime(fadeFrames), value, 0)

  

Ps,
“=”是赋值操作符。
“==”是判断值是否相等操作符。
所以上面表达式在写条件判断时候,要使用“==” 。

  
当我们这个图层上只有两个标记点的时候,这样写就没有问题,第一个标记点是淡入,第二个标记点是淡出。但是,如果我们的图层上有其他标记点,比如我们还有其他标记点控制其他参数,这时候就需要饮用标记点的comment来进行判断。

给图层打上两个标记点,控制淡入的标记点其comment写入“In”,控制淡出的标记点其comment写入“Out”,给Opacity写入表达式:

fadeFrames = 10;

m = marker.nearestKey(time).index;
tag = marker.key(m).comment;
if (tag == "In"){
t = marker.key(m).time - time;}
else if(tag == "Out"){
t = time - marker.key(m).time;}
linear(t, 0, framesToTime(fadeFrames), value, 0)

  
这个表达式还有一个小问题,就是当图层上面没有标记点时候就会报错,所以我们再加一个判断if(marker.numKeys > 0),就是当标记点数量大于0的时候,才进行淡入淡出的判断,否则输出value,相当于不做任何变化。

fadeFrames = 10;

if(marker.numKeys > 0){
	m = marker.nearestKey(time).index;
	tag = marker.key(m).comment;
	if (tag == "In"){
	t = marker.key(m).time - time;}
	else if(tag == "Out"){
	t = time - marker.key(m).time;}
	linear(t, 0, framesToTime(fadeFrames), value, 0)
}else{
value;
}

  

这个表达式已经可以使用并且不会报错。

我在youtube上看到一位youtuber写的这个表达式,首行还有另外两个赋值:在首行添加“m = 0;”设置初始的层标记数量(一开始是0个标记点0)。添加“t = time;”代表将稍后重新定义时间。

fadeFrames = 10; m = 0;t = time;

if(marker.numKeys > 0){
	m = marker.nearestKey(time).index;
	tag = marker.key(m).comment;
	if (tag == "In"){
	t = marker.key(m).time - time;}
	else if(tag == "Out"){
	t = time - marker.key(m).time;}
	linear(t, 0, framesToTime(fadeFrames), value, 0)
}else{
value;
}

  

AE表达式|12、如何利用标记点进行精确控制?(实用进阶)@markerKey-讲故事的手艺人

再看一个简单例子,给Opacity添加表达式:

if(marker.numKeys > 0){
	m1 = marker.key("Start").time;
	m2 = marker.key("End").time;
	linear(time, m1, m2, 0, 100);
}else{
value
}

这个表达式的作用,是控制淡入的起点和终点。
AE表达式|12、如何利用标记点进行精确控制?(实用进阶)@markerKey-讲故事的手艺人
也就是从“Start”标记点开始淡入,Opacity(透明度)开始从0%往100%变化,到“End”标记点结束淡入。

< 返回目录

AE表达式
赞赏 赞(13) 收藏(0)
AE表达式|11、如何利用 valueAtTime 制作长龙影分身?@valueAtTime
上一篇
AE表达式|13、如何利用标记点进行精确控制?(motionscript高阶)@markerKey
下一篇

请登录以参与评论

现在登录
暂无评论
标签
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
13
  • 13
  • 0
关于我:

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

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