说明: 案例均在AE文字图层的源文本中用表达式书写,案例中返回的意思是在屏幕中显示内容
全名:comp(name)
类型:函数
说明:按照名称检索合成。一般要配合其他参数使用(打工仔)
参数:name 为字符串类型
返回:合成对象
示例:
comp("合成1").layer("纯色层1").transform.scale // 返回合成1下纯色层1的缩放属性
全名:footage(name)
说明:按照名称检索素材。一般要配合其他参数使用
返回:素材对象
footage("video.mp4").duration // 返回1500 视频持续时间正好是1500帧
全名:thisComp.XXX
类型:对象
说明:当前合成。一般要与其他参数一起使用
参数:无
thisComp.layer("Solid 1").transform.rotation// 返回当前合成下纯色层1的缩放属性值
全名:thisProject.XXX
说明:包含本表达式的项目。一般要配合其他参数使用
返回:项目对象。
thisProject.fullPath //返回当前工程文件在计算机里的绝对路径
全名:无
类型:属性
说明:当前时间轴所在的时间,以秒为单位的合成时间。
返回:数值(可以是小数)
time //时间轴9秒多点处,会返回9.2164641613416 time.toFixed() //toFixed可以取整,故同一时间点返回整数9
说明:项目的颜色深度值。项目设置-颜色-深度,8位就返回数值8,依次类推
返回:数值
示例
colorDepth // 返回8
全名:posterizeTime(framesPerScond)
说明:此表达式允许把表达式的帧速率设置为低于合成的帧速率。
参数:framesPerSecond 是数值,代表表达式运行的帧速率。1就是一秒运行1次…依次类推。
返回:无
示例:每秒更新一次随机数
posterizeTime(1); //如果设置为2,那就每秒更新2次,也就是0.5s更新一次 a=random(10,20); //取随机数10-20 Math.round(a) //这个是给数值取整
时间转换方法(表达式引用)
如果为true,则时间为绝对时间(从第0帧开始计算)。如果为false(默认值),则从项目开始帧开始计算时间(项目开始帧可以在项目设置-Frame Count处进行设置)。于此同时,时间的绝对值会向小于0的方向取值
示例1:时间为正,起始帧为0帧
timeToFrames(1, 29.97, isDuration = true) //返回30,因为timeToFrames取整数,29.97算30 timeToFrames(1, 29.97, isDuration = false) //返回29,因为timeToFrames取整数,29.97 > 0,需要向接近0的方向取整,所以为29
示例2:时间为负,起始帧为1帧
timeToFrames(-1, 29.97, isDuration = true) //返回-30,因为timeToFrames取整数,-29.97算-30 timeToFrames(-1, 29.97, isDuration = false) //返回-29,因为timeToFrames取整数,29.97 < 0,需要向接近0的方向取整,所以为-29
全名:timeToFrames(t= time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration,isDuration = false)
说明:将默认为当前合成时间的 t 转换为整数帧数。得出的值为括号里面的两个数(t和fps)相乘【时间*帧速率=帧数】
参数:
#1: t ,数值,默认值为time + thisComp.displayStartTime,表示当前时间+合成起始时间
#2:fps:每秒的帧数,也就是合成的帧速率(也就是1秒除以当前合成单帧持续时间)
#3:frameDuration: 单帧持续时间
#4:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理
示例:下图表示在3s时间点,返回本合成(29.97fps)位于3s的帧数:90帧
全名:framesToTime(frames, fps = 1.0 /thisComp.frameDuration)
说明:把帧数转为时间
参数:frames为要转换的帧数。fps为每秒的帧数,默认为当前合成的帧速率【1秒/单帧持续时间=帧速率】
返回:与 frames 参数对应的时间值。不一定是整数。【帧数/帧速率=时间】
示例:本合成(30fps)在90帧(frames=90)返回的秒数,即3s
framesToTime(90, 30)
全名:timeToTimecode(t= time + thisComp.displayStartTime, timecodeBase = 30, isDuration =false)
说明:将 t 的值转换为表示时间码的字符串。
参数:t 和 timecodeBase 是数值;isDuration 是布尔值。
#1:t -- 用于转换的值(时间)
#2:displayStartTime: 合成起始时间
#3:timecodeBase: 用于设置毫秒的显示方式,默认为30,代表1秒显示30帧。最大为999。建议还是根据合成的帧率进行设置,即1.0 /thisComp.frameDuration
返回:字符串
示例1:timecodeBase参数说明
timeToTimecode(t= time + thisComp.displayStartTime, timecodeBase = 100, isDuration =false 20帧的3:01在此刻显示为3:05,不难理解,timecodeBase为100时,原先一秒显示20帧,现在显示100帧。原先01帧,现在就显示05帧咯。 再举个例子:1分钟=60秒,相当于60的帧率,如果安到百进制上(100帧率),那原来的30秒,相当于百进制的50秒咯。
示例2:下图表示合成为30fps的3:18分的时间码
timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false) //见上 timeToTimecode(3,30,false) //简略写法:返回00:00:03:00
全名:timeToNTSCTimecode(t= time + thisComp.displayStartTime, ntscDropFrame = false, isDuration =false)
说明:将 t 转换为表示 NTSC时间码的字符串
参数类型:
#1: t ,数值类型,默认值time + thisComp.displayStartTime为当前时间
#2:ntscDropFrame 为False(默认值),用于丢帧与否。
#3:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理
#4:有关NTSC制请自行百度
示例:下图表示30fps的3:18分的时间码,由于选择未丢帧,所以返回00:00:03:17
timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false) //见上 timeToNTSCTimecode(3.6, ntscDropFrame = false, isDuration = false) //可以直接用3.6表示3:18 (30帧/s*0.6秒=18帧)
全名:timeToFeetAndFrames(t= time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration,framesPerFoot = 16, isDuration = false)
说明:将 t 的值转换为表示胶片和帧英尺数的字符串。
参数:t、fps 和 framesPerFoot 是数值;isDuration 是布尔值。
#3:fps:设定每秒的帧数,默认为当前合成的帧速率(也就是1.0/thisComp.frameDuration)
#4:frameDuration: 单帧持续时间
#5:framesPerFoot 参数指定一英尺胶片中的帧数。它默认为16,是 35 毫米素材的最常见速率。
#6:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理。
示例:下图表示30fps的3:18分的胶片和帧英尺数
timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false) //全都用表达式表示 timeToFeetAndFrames(3.6, 30, 16, 0) //用具体数值表示
全名:timeToCurrentFormat(t= time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration,isDuration = false, ntscDropFrame =thisComp.ntscDropFrame)
说明:将 t 的值转换为表示采用当前项目设置显示格式的时间的字符串。项目设置显示格式:就是左上角那个时间码,可以设置为帧数显示,或者时间码显示(按住ctrl鼠标单击切换)
参数:t 和 fps 是数值;isDuration 是布尔值。
#5:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理
#6:默认值:ntscDropFrame = thisComp.ntscDropFrame(当前合成有无丢帧,比如29.97)
示例1:下图表示当前时间格式(时间码显示)
示例2:下图表示当前时间格式(帧显示)
如果您需要对素材中的时间码外观进行更多控制,请使用timeToCurrentFormat 方法或其他 timeTo方法生成时间码,而非使用时间码或编号效果。创建文本图层,向源文本属性添加表达式,并在表达式字段中输入timeToCurrentFormat()。 使用此方法,您可以对时间码文本进行格式设置以及动画制作。此外,时间码使用当前的项目设置定义的同一显示样式。
您的电子邮箱地址不会被公开。 必填项已用*标注
评论
显示名称 *
电子邮箱地址 *
网站地址
在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
吹爆up