Skip to main content
Participating Frequently
June 14, 2022
Answered

動画ファイルから作成されたレイヤーか、スクリプトで判別したい。

  • June 14, 2022
  • 1 reply
  • 269 views

スクリプト(jsx)から対象のレイヤーが.hasVideoがtrueかどうかで判定しようとしましたが、
.hasVideoだけでは調整レイヤーや、画像から作成されたレイヤーも取得出来てしまいます。
動画から作成されたレイヤーか判別する術を教えてください。

 

var layers=app.project.activeItem.layers;
for(var i=1; i <= layers.length; i++){
	if(layers[i].hasVideo){
		alert("対象のレイヤーは映像から作成されたレイヤーです。");
	}
}

 

動画から作成されたレイヤーか、判別する方法を知っている方がいましたら、ご教示の程よろしくお願いいたします。

 

This topic has been closed for replies.
Correct answer Mukaida

下記リンクで「判別」の記載がある記事が参考になるかもしれません。
逆引きスクリプト - AfterEffects compZero 

記事によると、動画・静止画・平面・ヌル・調整レイヤーはレイヤーの種類がAVLayerとなるため、動画を判別するためには、AVLayerのレイヤーを判別してからプロパティで判別できるレイヤーを除外して動画だけを残すようにするようです。


例ですが、hasVideoを source instanceof FootageItem に書き換えるとAVLayerを判別できます。
なお、hasVideoはタイムラインの目玉アイコンの状態を判別するのに使用します。


他の方法としては、動画の名前で判別ができそうです。

1 reply

MukaidaCommunity ExpertCorrect answer
Community Expert
June 14, 2022

下記リンクで「判別」の記載がある記事が参考になるかもしれません。
逆引きスクリプト - AfterEffects compZero 

記事によると、動画・静止画・平面・ヌル・調整レイヤーはレイヤーの種類がAVLayerとなるため、動画を判別するためには、AVLayerのレイヤーを判別してからプロパティで判別できるレイヤーを除外して動画だけを残すようにするようです。


例ですが、hasVideoを source instanceof FootageItem に書き換えるとAVLayerを判別できます。
なお、hasVideoはタイムラインの目玉アイコンの状態を判別するのに使用します。


他の方法としては、動画の名前で判別ができそうです。

Participating Frequently
June 16, 2022

対象のレイヤーのmainSourceがFileSourceであること。
さらに、mainSourceのisStillとhasVideoを組み合わせて判定することにより、
対象のレイヤーが映像から作成されたレイヤーかを特定することができました。
ご協力頂きありがとうございます。