After Effects / 脚本预设

InfinityBox开发日志02

浮动窗口的边界

浮动窗口的边界和一般生成的窗口不太一样,这里的浮动窗口指的是AE的Panel面板窗口,也就是在写浮动窗口脚本时需要声明的那句里的Panel。

图中蓝色框才是脚本的窗口边界,而这个面板的边界实际上是不能定义大小的,虽然在脚本中把脚本窗口连接到了这个面板。而且预定义(preferredSize)窗口大小对默认显示没有影响。

这就造成了一个问题,默认打开浮动面板时,这个窗口很小,不能刚好全部显示脚本内容,即便脚本元素的对齐都是fill。需要手动向下拉才可以全部看见。而且面板边界向下拉与脚本窗口蓝色边界无关,有时候还需要手动再调节一次蓝色边界,但是当窗口停靠在AE中时,就没有面板边界了,只需要调节蓝色边界就好了。

AE属性组

AE的属性都是按组来分的,比如图层的位置,实际是在变化属性组中的下级属性,实际AE也是这么显示的,点击图层的小三角,打开后显示的是Effect和Transform,再点击Transform的小三角才会显示位置缩放等一系列属性。

这也提示了一点,Effect也是属于图层的属性组,Effect面板中的各个效果,实际上是Effect属性组的下级属性。

想要访问效果面板中的某个参数,有这些方法:

但是要注意的是,有些效果内的参数也是带分组的。

如果想要访问Cross的话是不用管Advanced的,组实际上也是一个参数,它与其他参数是平级的。

因此想要访问Cross,只需要这么写:

app.project.activeItem.selectedLayers[0].effect("IB RealShadow")("Cross")

添加效果后返回的内容

theLayer.effect.addProperty("IB RealShadow");

使用 addProperty 方法添加效果,这个方法返回的并不是判断是否成功添加的布尔值,而是刚刚添加的效果对象。

所以使用时可以直接给这个方法赋予一个变量,那么这个变量就可以表示当前添加的效果进行下一步操作,否则使用效果组内的数组形式来进行访问,很难判断当前添加的效果位于效果组内的第几位,谁知道在使用脚本之前这个图层有没有其他效果呢。

alert()

alert() 这个属于窗口类方法,不需要实例化直接就可以用。但是它有很多个小细节工具书中并没有说。

首先它的参数不止一个,应该是 alert(text, title) 。text为要显示的字,title则是警告框的标题,不过这个标题只在Windows上才会显示。

还有一个是如果文字中包含换行符“\n”,那么第一行会自动加粗,形成类似标题的样式,不知道是不是只在Mac上有效。

添加调整图层

补加一个算作充数的吧,就是添加调整图层,有很多专门添加固态层或者灯光摄像机之类的方法,但是就是没有添加调整图层的方法。

其实想添加调整图层,需要添加其他类型的图层,比如固态层,然后改变 theLayer.adjustmentLayer = true; 属性值为true,这个图层就变为调整图层了。

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *