概述
文章目录
- 1.AE-Js脚本
- 2.ExtendScript 语言
- 3.图层排序算法
- 4.作者答疑
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.作者答疑
如有疑问,敬请留言。
最后
以上就是舒适小刺猬为你收集整理的AfterEffect插件-图层排序-js脚本开发-AE插件的全部内容,希望文章能够帮你解决AfterEffect插件-图层排序-js脚本开发-AE插件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复