Skip to main content
Participating Frequently
July 21, 2022
Question

フレーム指定でマスクを作成する方法について

  • July 21, 2022
  • 1 reply
  • 241 views

 

スクリプト(jsx)からフレームを基準にマスクを作成する方法探しています。
addKey()で時間(秒)を基準にマスクを作成することが出来ますが、フレームを基準にマスクをかける方法がわかりません。

 

keyIndex1 = newMask.property(1).addKey(frame * frameDuration);
newMask.property(1).setInterpolationTypeAtKey(keyIndex1, KeyframeInterpolationType.HOLD);

 

addkey()を使わず、フレーム基準でマスクを作成する方法を知っている方がいましたら、ご教示の程よろしくお願いいたします。

This topic has been closed for replies.

1 reply

Community Expert
July 21, 2022

frame * frameDuration と記述されているので、ここにフレーム数を入力されていると思いますが、これではダメなのでしょうか。

Participating Frequently
July 26, 2022

公式のaddKey()の関数の説明では、addKeyの引数は秒数指定になっています。
基本は秒数指定で問題ないのですが、稀に長尺動画の時(約8分以降)に、マスクが崩れる、ロトベジェがかからない、および関係ないマスクが出る等の不具合が発生します。

 

https://community.adobe.com/t5/after-effectsフォーラム-discussions/長尺の動画にロトベジェが反映出来ない/m-p/12951946#M10583 

 

問題の原因を調べていくうちに、frame*frameDurationの値の桁数が大きくなってしまう事が原因になっているのではないかと疑っています。逆にframe * frameDurationの桁数を少なくするとマスクを打ちたいフレームからずれてしまうため、下手に桁数を少なくできません。
そのため、今回はフレーム単位で設定出来る方法を探していました。

Community Expert
July 26, 2022

スクリプトの回答ではありませんが、
mp4形式の動画の場合は、読み込んだ動画が可変フレームレート(VFR)だと予期せぬ問題が起きる可能性はあります。
VFRまたはCFRの確認はできているでしょうか。