After Effectsのスクリプトでプロパティがhiddenの時に値をセットできない問題の回避方法

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

プロパティがhiddenの時

After Effectsでは特定のプロパティがオンでないと現れないプロパティがあります。
例えば、カメラレイヤーの目標点は1ノードカメラでは現れません。
cameraAnchor.png

エフェクトにも同様に特定のプロパティがオンでないと現れないプロパティがあります。
一例を挙げると、Optical FlaresPosition ZプロパティはPositioning ModeSource Type3Dの場合でしか現れません。

of positionz.png

もちろん、内部的には存在しているのでアクセスはすることが出来ますが、値をセットしたい場合などは異なります。
AEのスクリプトでは基本的にsetValue()などで値を設定していきますが、その対象のプロパティをオンにした直後に、そのままオンの時にしか現れないプロパティを操作しようとしても、以下のエラーが出ることがあります

hiddenErr.png

困ったことに、このhiddenかどうかは標準のスクリプトで判別する方法がありません。

解決方法

この場合は、エラーが出る直前にコンポジションの現在時間を操作することによって解決することが可能です。

time.jsx
var actComp = app.project.activeItem;
// このコードでAEのUIを更新してエフェクトプロパティがhiddenで値が更新できないエラーを回避する
actComp.time = actComp.time;

一見無意味なコードのように見えますが、AE側ではUIが更新されてプロパティが現れるようになります。