AE表达式学习笔记——Global(全局)篇

用户头像
深圳/设计爱好者/334天前/99浏览
AE表达式学习笔记——Global(全局)篇
用户头像
柴先森
Global菜单主要用于管理和操作与“全局变量”相关的功能。全局变量是一种可以在多个表达式或不同合成之间共享和访问的变量,通过 Global 菜单能更便捷地创建、管理这些变量,实现表达式的复用和参数的统一控制。
AE表达式学习笔记——Global(全局)篇(图ZMzkyNzcxMTky) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
Global菜单
收藏
comp(name)
作用:
在表达式中跨合成访问其他合成及其包含的图层和属性。
  • 在当前表达式中访问另一个合成(通过名称指定)
  • 获取目标合成中的图层、效果或属性
  • 实现跨合成联动动画(如主合成控制子合成)
语法:
comp("合成名称").属性或方法
示例:获取其它合成的属性
// 获取名为 "Precomp 1" 的合成的宽度
comp("Precomp 1").width;
// 获取其持续时间(秒)
comp("Precomp 1").duration;
AE表达式学习笔记——Global(全局)篇(图ZMzkyODE5Nzcy) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
footage(name)
作用:
用于直接访问项目面板中的素材文件,而不是合成,可以在表达式中动态调用图片、视频、音频等原始素材文件。
  • 直接引用项目面板中的素材(如.jpg/.mp4/.psd等文件)
  • 动态替换图层源(根据条件切换不同素材)
  • 读取素材的元数据(如持续时间、分辨率等)
语法:
footage("素材名称").属性或方法
示例:
// 获取素材的宽度(像素)
footage("Logo.png").width;
// 获取素材的持续时间(秒)
footage("Intro.mp4").duration;
AE表达式学习笔记——Global(全局)篇(图ZMzkyODIwMTI0) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
thisComp
作用:
引用当前所在的合成
语法:
thisComp.属性或方法
示例:
//返回当前合成的宽度
thisComp.width
AE表达式学习笔记——Global(全局)篇(图ZMzkyODIwMzM2) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
thisProject
作用:
全局引用对象,用于访问当前整个AE项目(Project)的属性和方法,它比 thisComp(当前合成)范围更广,可以获取项目级别的信息。
  • 访问项目全局设置(如项目名称、颜色深度等)
  • 跨合成控制(管理多个合成之间的关系)
  • 获取项目中的素材、合成或图层列表
语法:
thisProject.属性或方法
示例:
// 如果项目保存了,显示项目文件名;否则显示“未保存项目”
thisProject.file != null ? thisProject.file.name : "未保存项目"
AE表达式学习笔记——Global(全局)篇(图ZMzkzMDAzNDA0) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
time
作用:
返回当前时间(以秒为单位)
语法:
time*数值
示例:
让图层沿 X 轴以每秒 100 像素的速度移动:
[time * 100, value[1]] // [X坐标, Y坐标]
AE表达式学习笔记——Global(全局)篇(图ZMzkzMDIzOTc2) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
colorDepth
作用:
获取当前项目的颜色深度,单位是位/通道(bits per channel, bpc),常见的返回值有:
8 → 8位/通道(256级,标准颜色)
16 → 16位/通道(65,536级,高动态范围)
32 → 32位/通道(浮点精度,用于HDR和线性工作流)
语法:
thisProject.colorDepth
示例:
根据色深调整模糊强度:
colorDepth == 8 ? 0 : 70
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTY5OTAw) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
posterizeTime(framesPerSecond)
作用:
强制动画以指定的帧率更新,而不是跟随合成的原始帧率,用于限制动画的帧率,从而创建定格动画或低帧率效果。
  • 强制动画以指定的帧率更新,而不是跟随合成的原始帧率;
  • "冻结"中间帧,使其在设定的时间间隔内保持不变,从而产生卡顿或跳帧的视觉效果;
  • 不能影响关键帧动画本身,只对表达式起作用,关键帧插值照常进行。
语法:
posterizeTime(帧率)
示例:
posterizeTime(5);
wiggle(2, 100)
AE表达式学习笔记——Global(全局)篇(图ZMzkzMDMxMTk2) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
timeToFrames(t=time+thisComp.displayStartTime,fps=1.0/thisComp.frameDuration,isDuration=false)
作用:
这是一个时间转换函数,用于将时间(秒)转换为帧数,基于当前合成的帧率(FPS)进行计算。
  • 将时间值(秒)转换为对应的帧编号
  • 基于当前合成的帧率(thisComp.frameRate)自动计算
  • 常用于:
    ✅ 帧精确的动画触发
    ✅ 动态文本显示当前帧数
    ✅ 与帧相关的逻辑判断(如每5帧执行一次)
语法:
timeToFrames(要转换的时间,帧率,是否为持续时间)
示例:
// 将时间转换为"00:00:00:00"格式
t = time;
frames = timeToFrames(t) % 合成帧率;
seconds = Math.floor(t) % 60;
minutes = Math.floor(t / 60) % 60;
// 补零
pad = n => ("0" + n).slice(-2);
text = `${pad(minutes)}:${pad(seconds)}:${pad(frames)}`;
AE表达式学习笔记——Global(全局)篇(图ZMzkzMDM1NzEy) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
framesToTime(frames,fps=1.0/thisComp.frameDuration)
作用:
和timeToFrames相反,用于将帧数转换为时间(秒)
语法:
framesToTime(要转换的帧数,帧率)
示例:
time < framesToTime(50) ? 0 : 100
// 表示图层在第 50 帧前是透明的,第 50 帧开始出现
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTAxNzQ4) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
timeToTimecode(t=time+thisComp.displayStartTime,timecodeBase=30,isDuration=false)
作用:
用于将时间值转换为标准时间码格式(小时:分钟:秒:帧)。
语法:
timeToTimecode(输入时间,基准帧率,是否为持续时间)
示例:
//默认30 FPS基准时间码
timeToTimecode();
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTUxMDcy) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
// 显示剩余时间
timeToTimecode(thisComp.duration - time, isDuration=true);
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTUwOTA0) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
timeToNTSCTimecode(t=time+thisComp.displayStartTime,ntscDropFrame=false,isDuration=false)
作用:
专门用于生成NTSC标准时间码的函数,它针对29.97FPS或59.94FPS等NTSC制式视频提供了精确的时间码计算,并支持丢帧 (Drop Frame) 模式以解决时间码与实际播放时间的误差问题。
为什么需要丢帧?
NTSC 标准帧率实际是 29.97 FPS(非整数),但时间码通常按 30 FPS 计算。如果不丢帧,时间码会比实际播放时间 快 3.6 秒/小时。
语法:
timeToNTSCTimecode(输入时间,是否启用 Drop Frame 时间码,是否为持续时间)
示例:
// 默认 NTSC 29.97 FPS 时间码(带丢帧)
timeToNTSCTimecode();
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTY5Mjg0) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
timeToFeetAndFrames(t=time+thisComp.displayStartTime,fps=1.0/thisComp.frameDuration,framesPerFoot=16,isDuration=false)
作用:
将时间(秒)转换为胶片行业的 "英尺+帧" 格式(如 "3+12" 表示 3 英尺 12 帧),自动根据胶片类型(16mm/35mm)计算帧数与英尺的对应关系。
语法:
timeToFeetAndFrames(输入时间,基准帧率,每英尺胶片的帧数(标准 16),是否为持续时间)
示例:
// 将当前时间(以秒为单位) → 转换为 "Feet+Frames" 字符串
timeToFeetAndFrames()
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTY1NTcy) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
timeToCurrentFormat(t=time+thisComp.displayStartTime,fps=1.0/thisComp.frameDuration,isDuration=false,ntscDropFrame=thisComp.ntscDropFrame)
作用:
AE中最专业的时间码生成函数,它会根据项目设置自动将时间值转换为符合行业标准的时间码格式。
语法:
timeToCurrentFormat(输入时间,帧率,是否为持续时间,是否使用NTSC丢帧)
示例:
// 显示时间/帧/脚本长度,完全跟随AE时间设置变化而自动更新
timeToCurrentFormat(time, thisComp.frameRate)
AE表达式学习笔记——Global(全局)篇(图ZMzkzMTY1Mjcy) - 动效设计 - 站酷设计师柴先森原创素材 - 站酷ZCOOL
收藏
4
举报
|
2
分享
相关推荐
评论
用户头像
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
加载中
你可能喜欢
相关收藏夹
大家都在看
登录注册