久しぶりにAEScriptいじったら、構造が結構ややこしいみたいだったので、エフェクトの取得についてメモしておきます。
■AEScript内でのレイヤーに追加されたエフェクトの構造例
app.
→project
→item
→layer(1)
→property("エフェクト")
→property(1)
→property(2)
→property(3)
→layer(2)
→property("エフェクト")
→property(1)
→property(2)
AEScriptの中ではレイヤーに追加されたエフェクトは、上記のような構造になっているようで、
property("エフェクト")の中に各エフェクトがproperty(1), property(2)…、というように格納されています。
で、そのレイヤーの中にいくつのエフェクトが入っているかというのは、property("エフェクト")の中にいくつpropertyがあるかという情報から取得します。
具体的には、app.project.item.layer(1),property("エフェクト").numPropertiesという値にアクセスします。
■After Effectsで、コンポ内の全てのレイヤーに追加されている各エフェクトへアクセスするスクリプト
ということで、コンポ内の全レイヤーに追加されている各エフェクトへのアクセスは以下のように記述できます。var comp = app.project.item //(ここではitemがコンポジションだと仮定して)
var layers = comp.layers
for(i=1; i<=layers.length; i++){
var effects = layers[i].property("エフェクト")
if(effects != null){
for(j=1; j<=effects.numProperties; j++){
//ここに各エフェクトへの処理を記述する
effects.property(j).remove() //エフェクトを削除するコマンド(一例として)
}
}
}
注意するべき事は、layers[i]は通常のArrayなので括弧が[]ですが、各エフェクトへアクセスする際はproperty(j)と、()になり、括弧の形が違うことですね。
最近はmaxscriptばかりだったので、そろそろAfter Effectsのスクリプトもしっかり勉強していかないとダメですね・・・。
0 件のコメント:
コメントを投稿