受限于AE提供的功能限制,目前后半部分只能由用户来手动操作,下面是具体代码:
我们可以用selected来判断某插件是否被用户选中,另外保存预设时需要在效果控件选中插件(可多选),如果不选中插件模拟点击时就不会有反应。
var comp = app.project.activeItem; // 获取合成
var layer = comp.selectedLayers; // 获取选中图层
var effect = layer[0].property("ADBE Effect Parade"); // 获取图层的效果列表
var num = effect.numProperties; // 获取效果列表的数量
var plug = effect.property(1); // 序号可以用for遍历,或者用name、matchName查找
// 用名称或者元属性名的时候,如果没找到返回null
var isSeleEffect = plug.selected; //检测是否在效果控件选中插件
var presetPath = "c:\\temp.ffx"; // 声明一个ffx文件的保存全路径
copyToClipboard(presetPath); // 把内容推送到系统的剪贴板
// https://www.yuelili.com/ae-script-case-transferring-information-to-the-system-clipboard/
app.executeCommand(3075); // 模拟点击 菜单栏的保存预设功能
可以看到本文重点是这个 app.executeCommand(3075); 接下来会弹出一个保存预设的文件窗口,因为之前我把文件路径内容拷贝到剪贴板,这时候只需Ctrl+V粘贴出来然后保存即可。
初次保存预设,会有一个提示弹窗,下面可以设置成永久不提示。