AE ExtendScript如何动态为合成中选中的变换属性添加表达式
AE脚本给选中属性批量添加表达式实现方法
完全可以通过选中属性相关接口实现,不需要写死固定属性路径。
核心逻辑
After Effects 脚本提供了CompItem.selectedProperties接口,可以直接获取当前合成中所有被选中的属性集合,遍历集合即可对任意选中的可写属性操作,支持位置、旋转、XYZ单通道、效果参数等所有可添加表达式的属性,不需要手动指定transform.position这类固定路径。
完整实现代码
// 校验当前激活项是否为合成 var myComp = app.project.activeItem; if (!(myComp instanceof CompItem)) { alert("请先选中目标合成后再运行脚本"); exit(); } // 获取所有选中的属性 var selectedProps = myComp.selectedProperties; if (selectedProps.length === 0) { alert("请先选中需要添加表达式的属性"); exit(); } // 开启撤销组,支持操作后一键撤回 app.beginUndoGroup("给选中属性添加wiggle表达式"); for (var i = 0; i < selectedProps.length; i++) { var targetProp = selectedProps[i]; // 过滤不可添加表达式的只读/静态属性 if (targetProp.canVaryOverTime && !targetProp.readOnly) { targetProp.expression = "wiggle(10,55)"; } } app.endUndoGroup();
特性说明
- 支持多属性同时选中批量操作,不需要逐属性硬编码路径
- 内置合法性校验,避免未选中合成、未选中属性、选中不可写属性时脚本报错
- 加入了撤销分组,运行脚本后可以通过Ctrl+Z直接回退所有修改
内容的提问来源于stack exchange,提问作者hans
相关产品推荐
相关产品推荐

