Skip to main content
Participating Frequently
June 14, 2022
解決済み

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

  • June 14, 2022
  • 返信数 1.
  • 269 ビュー

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

 

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

 

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

 

このトピックへの返信は締め切られました。
解決に役立った回答 Mukaida

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

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


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


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

返信数 1

MukaidaCommunity Expert解決!
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を組み合わせて判定することにより、
対象のレイヤーが映像から作成されたレイヤーかを特定することができました。
ご協力頂きありがとうございます。