AE ExtendScript添加Colorize - blue wash效果失效如何解决
问题原因
Colorize - blue wash不是独立的效果插件,是After Effects自带的FFX动画预设,Effects.addProperty()方法仅支持添加独立效果,无法直接调用预设,所以原有代码不生效。手动选择该预设时,本质是软件自动执行「添加Color Balance、添加Color Balance (HLS)、调整两个效果到对应参数」的批量操作。
实现方案
优先选择直接调用原生预设的方案,和手动点击预设的效果完全一致,不会因为参数记错出现偏差。
var myComp = app.project.activeItem; // 基础校验 if (!myComp || !(myComp instanceof CompItem)) { alert("请先激活需要操作的合成"); return; } if (myComp.selectedLayers.length === 0) { alert("请先选中目标图层"); return; } var targetLayer = myComp.selectedLayers[0]; app.beginUndoGroup("添加Colorize Blue Wash效果"); // 定位AE内置预设路径,自动适配Windows/macOS系统 var presetFile = new File(Folder.startup.fsName + "/Presets/Image - Creative/Colorize - blue wash.ffx"); if (presetFile.exists) { targetLayer.applyPreset(presetFile); } else { // 适配版本/语言路径差异,找不到预设时支持手动选择 var manualSelect = File.openDialog("未找到内置预设,请手动选择Colorize - blue wash.ffx文件"); if (manualSelect && manualSelect.exists) { targetLayer.applyPreset(manualSelect); } } app.endUndoGroup();
如果需要做无文件依赖的脚本(比如不想依赖本地预设文件),可以直接手动添加两个效果并设置和预设一致的参数,代码如下:
var myComp = app.project.activeItem; if (!myComp || !(myComp instanceof CompItem)) { alert("请先激活需要操作的合成"); return; } if (myComp.selectedLayers.length === 0) { alert("请先选中目标图层"); return; } var targetLayer = myComp.selectedLayers[0]; app.beginUndoGroup("添加Colorize Blue Wash效果"); // 添加Color Balance效果并设置参数 var colorBalance = targetLayer.property("Effects").addProperty("ADBE Color Balance"); // 开启保持发光度 colorBalance.property("Preserve Luminosity").setValue(true); // 阴影蓝通道+20 colorBalance.property("Shadow Blue Balance").setValue(20); // 中间调蓝通道+100 colorBalance.property("Midtone Blue Balance").setValue(100); // 高光蓝通道-20 colorBalance.property("Highlight Blue Balance").setValue(-20); // 添加Color Balance(HLS)效果并设置参数 var colorBalanceHLS = targetLayer.property("Effects").addProperty("ADBE Color Balance HLS"); // 色相调整为蓝色相位 colorBalanceHLS.property("Hue").setValue(-120); // 饱和度+15 colorBalanceHLS.property("Saturation").setValue(15); app.endUndoGroup();
注意事项
- 脚本中添加效果优先使用效果的matchName(比如Color Balance的matchName是
ADBE Color Balance),不要直接用显示名,避免多语言版本AE下名称匹配失败。 - 所有修改合成的操作建议包裹在
beginUndoGroup()和endUndoGroup()之间,支持操作后一键撤销。 - 无依赖方案的参数如果和你本地版本预设效果有差异,可以手动加一次预设后读取对应参数值替换即可。
内容的提问来源于stack exchange,提问作者hans
相关产品推荐
相关产品推荐

