##プロパティがhiddenの時
After Effectsでは特定のプロパティがオンでないと現れないプロパティがあります。
例えば、カメラレイヤーの目標点は1ノードカメラでは現れません。
エフェクトにも同様に特定のプロパティがオンでないと現れないプロパティがあります。
一例を挙げると、Optical FlaresのPosition ZプロパティはPositioning ModeのSource Typeが3Dの場合でしか現れません。
もちろん、内部的には存在しているのでアクセスはすることが出来ますが、値をセットしたい場合などは異なります。
AEのスクリプトでは基本的にsetValue()
などで値を設定していきますが、その対象のプロパティをオンにした直後に、そのままオンの時にしか現れないプロパティを操作しようとしても、以下のエラーが出ることがあります。
困ったことに、このhiddenかどうかは標準のスクリプトで判別する方法がありません。
##解決方法
この場合は、エラーが出る直前にコンポジションの現在時間を操作することによって解決することが可能です。
time.jsx
var actComp = app.project.activeItem;
// このコードでAEのUIを更新してエフェクトプロパティがhiddenで値が更新できないエラーを回避する
actComp.time = actComp.time;
一見無意味なコードのように見えますが、AE側ではUIが更新されてプロパティが現れるようになります。