【Premiere Pro】一定間隔でマーカーを打つ方法(ドロップフレーム対応)

【Premiere Pro】一定間隔でマーカーを打つ方法:ドロップフレーム版

以前に動作を確認した「一定間隔でマーカーを設定する」Adobe Premiere Pro用のスクリプトコード。配置してみたところ、10分前後あたりから少しずつずれていることに気が付きました。なぜ時間がズレたのでしょうか?答えの手掛かりは「29.97」にありました。

…あれ?なんかちょっと…ズレてない?

以前に「Adobe ExtendScript Toolkit CC(以下、Toolkit)」を使い、「Adobe Premiere Pro(以下、Premiere)」へマーカーを配置するスクリプトコードの記事を作りました。

上記のスクリプトは、ゲーム動画に登場する「にぎやかしのミナーヴさん」の待機中と発言中のアニメーションの切り替わりの目印をつけるために使っています。(執筆当時のミナーヴさんは、3秒ごとに区切りが良いタイミングがきます)

上手く動いていたように見えていたのですが、実際にミナーヴさんを配置してみると、10分前後でマーカーとアニメーションが大きくズレていました。

配置の開始位置ではズレはなく、徐々に大きくなっている様です。

結果としては、映像に音を乗せる際の「ドロップとノンドロップ」の違いを知ることで解決できましたので、情報を共有したいと思います。

「ドロップフレーム」って何?

ヒントはPremiereの設定にありました。

「ちょっとずつズレていく」を念頭に設定を見ていくと、使っているフレームレートの「29.97」が気になりました。この数字とミナーブさんの動作「3秒間隔」では、ちょっとずつズレていくことになります。

手掛かりにはなりそうですが、なぜ「時間」がズレるのでしょうか?


答えは下記の記事にありました。

内容をざっくりといえば、「音楽は一定の調子で作られているけど、映像はそうじゃないかもしれないから、合わせようね」というもの。

膝を打ちかけたのですが、やっぱり「時間がズレる」という点はよくわかりません。

ここはPremiereのフレームカウントを追いかけることでわかりました。


シーケンスウィンドウにある再生ヘッドは、左右の矢印キーを押すと1フレームずつ動かすことができます。

再生ヘッドを動かしていくと、1分を境として前のカウントは「00;00;59;29」。次は「00;01;00;02」になっています。

1分で2フレーム飛ばしています
1分で2フレーム飛ばしています

映像はこの間引かれたフレームカウントに合わせて配置されているので、計算上の3秒間隔でマーカーを打ってしまうと、「1分で約2フレーム」ずつズレることになるわけです。

フレームレート29.97の設定を「ドロップフレーム」というそうです。帳尻を合わせるために1分に2フレーム捨てるのでドロップフレームなんですね。


正確にはもう一つ補正が必要なようなので、ドロップフレーム(29.97)設定の映像に、一定間隔でマーカーを打つ場合の修正点を下記にまとめます。

  • 分の切り替わりで2フレーム減らす
  • 10分の倍数だったら減らさない

修正点を加えたコードは下記になります。

ドロップ(29.79)設定の映像へ一定間隔でマーカーを配置するスクリプトコード

var VIDEO_LENGTH = 7200; // 動画の長さ(秒)
var MARKER_INTERVAL = 3; // マーカーの間隔

var Markers = app.project.activeSequence.markers;
var firstMarker = Markers.getFirstMarker();
var startTime = firstMarker.start.seconds;
var endTime = startTime + VIDEO_LENGTH;
var interval = MARKER_INTERVAL ;

var preMINUTES = startTime/60 | 0; //ひとつ前のマーカー位置(分)
var MINUTES = 0;

for (var i = startTime; i < endTime; i += interval) {
    
    MINUTES = i /60 | 0;
    
    // ドロップフレームの調整
    if(MINUTES != preMINUTES && MINUTES % 10 != 0){
        i = i + 1 / 30 * 2
        }
    
    Markers.createMarker(i);
    
    preMINUTES = i /60 | 0;
}

更新履歴

2021/10/29

一部コード見直し

使用時の調整は以前の記事をご参照ください。

まとめ

「にぎやかしミナーヴさん」の待機アニメーションにはAdobe After Effectの「タイムリマップ」を使ってつくっています。はじめはタイムリマップのコード周りを調べていたのですが、答えは全く別のところにありました。

今回は映像に映像を合わせようとした際のズレだったので、音楽の記事に行きつけたのは幸運でした。

動画編集ということで、映像周りの知識から学んでいますが、音の編集の基本も学んでおくと問題解決の糸口が得られやすくなるかもしれません。


この断片があなたの星へ続く道を、少しでも照らすことを願って

投稿者: 0.1

厚塗りで「存在感や重さ、質感による説得力」のあるイラストを目指しています。 日本では線画をベースとしたイラストが主流ですが、そこから外れたモノもイラストの世界を広げる為に必要だと考えています。「世界観にもう一味試したい」そんなときには、ぜひお声がけください。

「【Premiere Pro】一定間隔でマーカーを打つ方法(ドロップフレーム対応)」への1件のフィードバック

COMMENT