aftereffects スクリプトでレイヤースタイル(境界線)を適用する方法


スクリプトではレイヤーに境界線を追加できない!?

作成したレイヤーにはレイヤースタイルは存在するのですが、デフォルトでは隠れている状態でプロパティが有効でない状態です。

プロパティが有効に出来るかは
canSetEnabledで確認出来ます。


//例)
var check = app.project.activeItem.selectedLayers[0].property("ADBE Layer Styles").property("frameFX/enabled").canSetEnabled;
alert(check)

この場合falseが返ってきます。

普通に考えればaddProperty()を使って・・・

app.project.activeItem.selectedLayers[0].property("ADBE Layer Styles").addProperty("frameFX/enabled");

ですが、これを実行するとエラーが返ってきます。

エラーメッセージ
After Effects エラー
このpropertyGroupには「frameFX/enabled]***INDEXED_GROUPでもテキストアニメータープロパティグループでもありません。

解決方法はこちら

そこで私はコマンドIDを使用する方法を取りました。
レイヤーにレイヤースタイルの境界線を適用するコマンド。

app.executeCommand(9008);

//↓こんな感じで使います。
    var commentLay = myComp.layers.addText("コメント");
    commentLay.selected = true;
    app.executeCommand(9008);

これで選択しているレイヤーに境界線が適応されます。

ただAEのバージョンが変わるとコマンドIDも変わるような記事を見たので、そこだけが不安です。
現状私が使っているAEのバージョン15.1.1(Build 12)では動いています。

IDがわからない。。。そんな時はこれ

var ID = app.findMenuCommandId("光彩 (外側)");
alert(ID);
これでIDの番号が取れます

光彩などの名前がわからないという方は
rd_gimmepropinfoなどのスクリプトを使ったら簡単に名前が取れます。