月离的万事屋
  • AE
    • 文章/视频
    • 插件/脚本
    • 效果库
    • 小技巧
      • 一分钟动画
      • 实用技巧
      • 快捷操作
      • 彩蛋
    • 脚本开发
      • 脚本教程(视频与文章)
      • 脚本(开源)
        • 合成、图层与素材
        • 属性、关键帧、标记与表达式
        • 蒙版、形状、路径
        • 导入导出、本机交互
        • 其他
        • PS/PR/AI脚本
      • 扩展 CEP
    • 相关文档
      • AE文档
      • 表达式文档
      • 内置效果
      • 脚本开发
  • Blender
    • 入门指南(尚未开工)
    • 文章/视频
    • 插件/脚本
    • 插件开发
  • Houdini
    • 入门指南
    • 文章/视频
    • 视频合集
    • 插件/脚本
    • 插件开发
  • UE
    • 入门指南(尚未开工)
    • 文章/视频
    • 插件/脚本
    • 插件开发
  • 思散
    • 佳作欣赏
    • 思维拓展
    • 来拆工程
  • 编程
    • Python
    • Unity
    • Html+
    • Math
    • JS
    • C
  • 图书馆
    • 文档
    • 书籍
    • 访谈
    • 备忘录
    • 问答库
    • 中英对照
  • 导航
    • 网址导航
    • 下载专区
    • 用户指引
    • 专题列表
    • 网站文章分类
    • 时光机
  • 商店
  • 作者专区
    • 发布文章
    • 投稿小技巧
    • 作者云盘
  • Vip
    • 资源库
    • 工具箱
  • 自用
    • 工具箱
    • 笔记
    • wordpress
登录

表达式教程

  • 表达式函数大全
  • 引言
  • 基本操作
  • 对象
  • 值
  • 变量

表达式辅助菜单

  • 1.Global 全局
  • 2.Vector 矢量数学
  • 3.Random 随机
  • 4.Interpolation 线性插值
  • 5.Color Conversation 颜色转换
  • 6.Other Math 角度弧度
  • 7.JavaScript Math JS数学方法
  • 8.Comp 合成
  • 9.Footage 素材
  • 10.Layer 图层
  • 11.Camera 摄像机
  • 12.Light 灯光
  • 13.Effect 效果
  • 14.Mask 蒙版与路径
  • 15.Property 属性
  • 16.Key 关键帧
  • 17.MarkerKey 标记
  • 18.Project 工程
  • 19.Text 文字
    双语
  • 主页
  • Docs
  • AE 表达式
  • 表达式辅助菜单
  • 1.Global 全局

1.Global 全局

目录
  • comp(name)
  • footage(name)
  • thisComp
  • thisProject
  • time
  • colorDepth
  • posterizeTime()
  • isDuration参数
  • timeToFrames()
  • framesToTime()
  • timeToTimecode()
  • timeToNTSCTimecode()
  • timeToFeetAndFrames()
  • timeToCurrentFormat()
  • 注意

说明: 案例均在AE文字图层的源文本中用表达式书写,案例中返回的意思是在屏幕中显示内容

comp(name) #

全名:comp(name)

类型:函数

说明:按照名称检索合成。一般要配合其他参数使用(打工仔)

参数:name 为字符串类型

返回:合成对象

示例:

comp("合成1").layer("纯色层1").transform.scale // 返回合成1下纯色层1的缩放属性

footage(name) #

全名:footage(name)

类型:函数

说明:按照名称检索素材。一般要配合其他参数使用

参数:name 为字符串类型

返回:素材对象

示例:

footage("video.mp4").duration // 返回1500 视频持续时间正好是1500帧

thisComp #

全名:thisComp.XXX

类型:对象

说明:当前合成。一般要与其他参数一起使用

参数:无

返回:合成对象

示例:

thisComp.layer("Solid 1").transform.rotation// 返回当前合成下纯色层1的缩放属性值

thisProject #

全名:thisProject.XXX

类型:函数

说明:包含本表达式的项目。一般要配合其他参数使用

参数:无

返回:项目对象。

示例:

thisProject.fullPath //返回当前工程文件在计算机里的绝对路径

time #

全名:无

类型:属性

说明:当前时间轴所在的时间,以秒为单位的合成时间。

参数:无

返回:数值(可以是小数)

示例:

time //时间轴9秒多点处,会返回9.2164641613416
time.toFixed() //toFixed可以取整,故同一时间点返回整数9

colorDepth #

全名:无

类型:属性

说明:项目的颜色深度值。项目设置-颜色-深度,8位就返回数值8,依次类推

返回:数值

示例

colorDepth // 返回8

posterizeTime() #

全名:posterizeTime(framesPerScond)

类型:函数

说明:此表达式允许把表达式的帧速率设置为低于合成的帧速率。

参数:framesPerSecond 是数值,代表表达式运行的帧速率。1就是一秒运行1次…依次类推。

返回:无

示例:每秒更新一次随机数

posterizeTime(1); //如果设置为2,那就每秒更新2次,也就是0.5s更新一次
a=random(10,20); //取随机数10-20
Math.round(a) //这个是给数值取整

时间转换方法(表达式引用)

isDuration参数 #

如果为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() #

全名: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() #

全名:framesToTime(frames, fps = 1.0 /thisComp.frameDuration)

类型:函数

说明:把帧数转为时间

参数:frames为要转换的帧数。fps为每秒的帧数,默认为当前合成的帧速率【1秒/单帧持续时间=帧速率】

返回:与 frames 参数对应的时间值。不一定是整数。【帧数/帧速率=时间】

示例:本合成(30fps)在90帧(frames=90)返回的秒数,即3s

framesToTime(90, 30)

timeToTimecode() #

全名: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

#4:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理

返回:字符串

示例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() #

全名: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() #

全名:timeToFeetAndFrames(t= time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration,framesPerFoot = 16, isDuration = false)

类型:函数

说明:将 t 的值转换为表示胶片和帧英尺数的字符串。

参数:t、fps 和 framesPerFoot 是数值;isDuration 是布尔值。

#1: t ,数值类型,默认值time + thisComp.displayStartTime为当前时间

#2:displayStartTime: 合成起始时间

#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() #

全名:timeToCurrentFormat(t= time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration,isDuration = false, ntscDropFrame =thisComp.ntscDropFrame)

类型:函数

说明:将 t 的值转换为表示采用当前项目设置显示格式的时间的字符串。项目设置显示格式:就是左上角那个时间码,可以设置为帧数显示,或者时间码显示(按住ctrl鼠标单击切换)

参数:t 和 fps 是数值;isDuration 是布尔值。

#1: t ,数值类型,默认值time + thisComp.displayStartTime为当前时间

#2:displayStartTime: 合成起始时间

#3:fps:设定每秒的帧数,默认为当前合成的帧速率(也就是1.0/thisComp.frameDuration)

#4:frameDuration: 单帧持续时间

#5:isDuration ,false则采取丢帧方案,true则使用正常帧。戳我查看详细原理

#6:默认值:ntscDropFrame = thisComp.ntscDropFrame(当前合成有无丢帧,比如29.97)

返回:字符串

示例1:下图表示当前时间格式(时间码显示)

示例2:下图表示当前时间格式(帧显示)

注意 #

如果您需要对素材中的时间码外观进行更多控制,请使用timeToCurrentFormat 方法或其他 timeTo方法生成时间码,而非使用时间码或编号效果。创建文本图层,向源文本属性添加表达式,并在表达式字段中输入timeToCurrentFormat()。
使用此方法,您可以对时间码文本进行格式设置以及动画制作。此外,时间码使用当前的项目设置定义的同一显示样式。

Updated on 2021年10月24日
2.Vector 矢量数学

取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论(1)

  • 新用户 友人A 2021年10月25日 下午6:28

    吹爆up

    回复
目录
  • comp(name)
  • footage(name)
  • thisComp
  • thisProject
  • time
  • colorDepth
  • posterizeTime()
  • isDuration参数
  • timeToFrames()
  • framesToTime()
  • timeToTimecode()
  • timeToNTSCTimecode()
  • timeToFeetAndFrames()
  • timeToCurrentFormat()
  • 注意
月离的万事屋

支持夜间模式喔~

AE
AE基础AE表达式
深入学习
插件脚本教程效果制作教程
图书馆
文档库书籍问答库
其他
小技巧来拆工程中英对照
网站
分类展示文章归档专题

Copyright © 2021 | 皖ICP备19025249号-1 | 月离的万事屋

  • 首页
  • 文档
  • 问答
  • 我的
  • 顶部
AE AE小技巧 AE插件/脚本 AE文章 AE表达式 Blender Houdini Motion-Box PV Video-Copilot 合成、图层与素材 属性、关键帧、标记与表达式 归档 来拆工程 油管 编程 脚本(开源) 脚本开发