我是靠谱客的博主 舒适小刺猬,最近开发中收集的这篇文章主要介绍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公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目里进行图层排序功能。源代码如下所示:

{
	// 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插件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部