我是靠谱客的博主 舒适小刺猬,这篇文章主要介绍AfterEffect插件-图层排序-js脚本开发-AE插件,现在分享给大家,希望可以做个参考。

文章目录

    • 1.AE-Js脚本
    • 2.ExtendScript 语言
    • 3.图层排序算法
    • 4.作者答疑

1.AE-Js脚本

  脚本是告诉应用程序执行一系列操作的一系列命令。您可以在大多数AE中使用脚本来自动执行重复性任务、执行复杂的计算,甚至可以使用一些不直接通过图形用户界面公开的功能。例如,您可以指示AE对合成中的图层重新排序、查找和替换文本图层中的源文本,或者在渲染完成时发送电子邮件消息。尽管AE表达式语言和 After Effects ExtendScript 脚本语言都基于 JavaScript,但 After Effects 的表达式功能和脚本功能是独立且不同的。表达式无法访问脚本中的信息(例如变量和函数)。脚本告诉应用程序做某事,而表达式则表示属性是某事。但是,由于 After Effects 表达式语言和 ExtendScript 均基于 JavaScript,因此熟悉其中一种语言对理解另一种非常有帮助。可编写脚本的应用程序的核心是对象模型。使用 Adob​​e After Effects 时,您可以创建项目、合成和渲染队列项目以及它们包含的所有元素:素材、图像、实体、图层、蒙版、效果和属性。在脚本术语中,这些项目中的每一个都是一个对象。本指南介绍了为 After Effects 项目定义的 ExtendScript 对象。 After Effects 对象模型由项目、项目、合成、层和渲染队列项目组成。每个对象都有自己的特殊属性,After Effects 项目中的每个对象都有自己的标识(尽管并非所有对象都可以通过脚本访问)。您应该熟悉 After Effects 对象模型才能创建脚本。

2.ExtendScript 语言

  After Effects 脚本使用 Adob​​e ExtendScript 语言,它是 JavaScript 的扩展形式,被多个 Adob​​e 应用程序使用,包括 PS、AI和 ID。 ExtendScript 根据 ECMA-262 规范实现 JavaScript 语言。 After Effects 脚本引擎支持 ECMA-262 标准的第 3 版,包括其符号和词汇约定、类型、对象、表达式和语句。 ExtendScript 还实现了 E4X ECMA-357 规范,该规范定义了对 XML 格式数据的访问。

3.图层排序算法

  AfterEffect(AE)插件是Adobe公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目里进行图层排序功能。源代码如下所示:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{ // 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插件内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部