需求
一个很常见的需求:我的项目素材库里放了大量素材,在文件系统中更改了它们的位置,导致在 AE 中缺失。如何重新链接素材文件?
前置知识:File
看过文档应该知道,素材是 FootageItem
对象。它有一个属性为 file
,表示对应的源文件。这是只读的,无法修改。但是有 replace
方法,它接受一个 File
类型的参数,表示替换素材。该方法执行后,会更新素材的名称、长宽等属性。
Original...About 1 min
需求
一个很常见的需求:我的项目素材库里放了大量素材,在文件系统中更改了它们的位置,导致在 AE 中缺失。如何重新链接素材文件?
看过文档应该知道,素材是 FootageItem
对象。它有一个属性为 file
,表示对应的源文件。这是只读的,无法修改。但是有 replace
方法,它接受一个 File
类型的参数,表示替换素材。该方法执行后,会更新素材的名称、长宽等属性。
需求
一个合成中放置 N 个相同的图片素材,每个图片在随机一段时间内从左端平移到右端。
正文前面先说个技巧。脚本如何模块化?在前两个案例中,我们写了一些辅助函数(如清空子对象、随机数)。那么,如何在多个脚本中复用呢?
在早期的 js 中,没有模块的概念。事实上,如果有为 html 写 js 的经历,就会发现,几个 js 文件根本不需要设置依赖关系就能互相调用。这个也可以理解为,把所有代码 include 到了全局代码块。
但这个特性在 Adobe ExtendScript(AES)并不适用。直接把公共函数写在同目录其他文件中,符号并不会注入到全局命名空间被找到。AES 提供了一个模块化的方法:
#include "utils.js";
AE 不仅有表达式,它还是有脚本的。表达式系统算是脚本的一个子集吧,脚本可以实现
下面是一个需求。经过分析发现,还 AE 脚本来得更直接。
需求
给定几十个图片,每个图片要在随机一段时间内,从视口外一个点平移到另一个点,并且经过视口中心位置。
如果在 Unity 等游戏软件做这个效果显然是很简单的。
下面是我的学习记录。