当前位置:网站首页>AfterEffect插件-图层排序-js脚本开发-AE插件
AfterEffect插件-图层排序-js脚本开发-AE插件
2022-08-08 12:25:00 【插件开发】
1.AE-Js脚本
脚本是告诉应用程序执行一系列操作的一系列命令。您可以在大多数AE中使用脚本来自动执行重复性任务、执行复杂的计算,甚至可以使用一些不直接通过图形用户界面公开的功能。例如,您可以指示AE对合成中的图层重新排序、查找和替换文本图层中的源文本,或者在渲染完成时发送电子邮件消息。尽管AE表达式语言和 After Effects ExtendScript 脚本语言都基于 JavaScript,但 After Effects 的表达式功能和脚本功能是独立且不同的。表达式无法访问脚本中的信息(例如变量和函数)。脚本告诉应用程序做某事,而表达式则表示属性是某事。但是,由于 After Effects 表达式语言和 ExtendScript 均基于 JavaScript,因此熟悉其中一种语言对理解另一种非常有帮助。可编写脚本的应用程序的核心是对象模型。使用 Adobe After Effects 时,您可以创建项目、合成和渲染队列项目以及它们包含的所有元素:素材、图像、实体、图层、蒙版、效果和属性。在脚本术语中,这些项目中的每一个都是一个对象。本指南介绍了为 After Effects 项目定义的 ExtendScript 对象。 After Effects 对象模型由项目、项目、合成、层和渲染队列项目组成。每个对象都有自己的特殊属性,After Effects 项目中的每个对象都有自己的标识(尽管并非所有对象都可以通过脚本访问)。您应该熟悉 After Effects 对象模型才能创建脚本。
2.ExtendScript 语言
After Effects 脚本使用 Adobe ExtendScript 语言,它是 JavaScript 的扩展形式,被多个 Adobe 应用程序使用,包括 PS、AI和 ID。 ExtendScript 根据 ECMA-262 规范实现 JavaScript 语言。 After Effects 脚本引擎支持 ECMA-262 标准的第 3 版,包括其符号和词汇约定、类型、对象、表达式和语句。 ExtendScript 还实现了 E4X ECMA-357 规范,该规范定义了对 XML 格式数据的访问。
3.图层排序算法
AfterEffect(AE)插件是Adobe公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目里进行图层排序功能。源代码如下所示:
{
// Sort Layers by In Point.jsx
//
// This script reorders layers in the active comp, sorted by inPoint.
//
function SortLayersByInPoint(thisObj)
{
var proj = app.project;
var scriptName = "Sort Layers by In Point";
function sortByInpoint(comp_layers, unlockedOnly) {
var total_number = comp_layers.length;
while (total_number >= 2) {
var layer_was_moved = false;
for (j = 1; j <= total_number; j++) {
// if you want to reverse the sort order, use "<" instead of ">".
if (comp_layers[j].inPoint > comp_layers[total_number].inPoint) {
if (comp_layers[j].locked) {
if (unlockedOnly==false) {
comp_layers[j].locked = false;
comp_layers[j].moveAfter(comp_layers[total_number]);
comp_layers[total_number].locked = true;
layer_was_moved = true;
}
} else {
comp_layers[j].moveAfter(comp_layers[total_number]);
layer_was_moved = true;
}
}
}
if (!layer_was_moved) {
total_number = total_number-1 ;
}
}
}
// change this to true if you want to leave locked layers untouched.
var unlockedOnly = false;
if (proj) {
var activeItem = app.project.activeItem;
if (activeItem != null && (activeItem instanceof CompItem)) {
app.beginUndoGroup(scriptName);
var activeCompLayers = activeItem.layers;
sortByInpoint(activeCompLayers, unlockedOnly);
app.endUndoGroup();
} else {
alert("Please select an active comp to use this script", scriptName);
}
} else {
alert("Please open a project first to use this script.", scriptName);
}
}
SortLayersByInPoint(this);
}
4.作者答疑
如有疑问,敬请留言。
边栏推荐
- 爱可可AI前沿推介(8.8)
- 程序员必备的VS调试技巧
- ctfshow 七夕杯(复现)
- MySQL安装及使用
- 简析LDO静态电流与功耗的关系
- 深度剖析-class的几个对象(utlis,component)-瀑布流-懒加载(概念,作用,原理,实现步骤)
- C language small project - complete code of minesweeper game (recursive expansion + selection mark)
- The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
- 分享面试阿里、京东、网易等大厂后的面经及面试心得,让你秋招不再害怕
- 服务器配置——Linux系统安装Redis
猜你喜欢
随机推荐
JPA之使用复合主键
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
node中package解析、npm 命令行npm详解,node中的common模块化,npm、nrm两种方式查看源和切换镜像
一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
《show your work》 从现在开始!
如何在go重打印函数调用者信息Caller
面试官问你什么是长轮询?
Kunpeng Developer Creation Day 2022: Kunpeng Full-Stack Innovation and Developers Build Digital Hunan
Fluorite, millet against smart camera
产品-Axure9英文版,下拉框Droplist的条件选择,显示不同内容面板
面试突击72:输入URL之后会执行什么流程?
What is the IP SSL certificate, how to apply for?
(6) FlinkSQL writes kafka data to mysql Method 1
In-depth analysis of the soul of C language -- pointer
(4)FlinkSQL将socket数据写入到mysql方式一
The maximum validity period of an SSL certificate is 13 months. Is it necessary to apply for multiple years at a time?
Mobile adaptation method of vw/vh - vw/vh instance - analog B stand mobile home page - get style tutorial video
Jenkins-安装(2)
[C language] Dynamic memory management
【C语言】自定义类型详解:结构体、枚举、联合