Premiere pro cc シーケンス内の各セクション(シーン)の割合を出す。


今回は?

編集の際にオープニング・メインA・メインB・エンディングと4つのセクションがあるとします。
その各セクションの尺の長さの割合を計算します。

何の為に?

先方に割合を伝えたかったのと、役に立つと思ったから。
って事でさっそく。

使い方

今回のプログラムはシーケンスマーカーでセクションを分けておきます。

準備はこれだけでOK!

プログラムを実行すると・・・
まずはFPSの入力ダイアログが表示されるのでシーケンスのフレームレートを入力します。
現状シーケンスのフレームレートを取得するグローバル変数がないようです。

入力したら・・・

ちょっと小さくて見えないのでテキストに

Sequence Duration:45sec
========
MarkerName:オープニング
markerDuration:10sec
Percentage:22.2%
========
MarkerName:メインA
markerDuration:10sec
Percentage:22.2%
========
MarkerName:メインB
markerDuration:10sec
Percentage:22.2%
========
MarkerName:エンディング
markerDuration:15sec
Percentage:33.3%
========

マーカー名とマーカーの尺と割合が返ってきます。

以上。
たまーに使う機会がありそうですね。
全体構成の割合を見たりするのにいいのではないでしょうか。

では最後にスクリプトです。

var res= prompt('What Sequence FrameRate ?', '29.97','FPS');
//アクティブシーケンスの尺を取得
var tb = app.project.activeSequence.timebase;
var se = app.project.activeSequence.end;
var frame = se/tb;
var sec = frame/res;

//マーカー情報
var numMarkers = app.project.activeSequence.markers.numMarkers;
var markers = app.project.activeSequence.markers;
var markAry = [];
var currentMarker;
var markerDuration;
var Percentage;
var info = "Sequence Duration:"+sec+"sec";

markAry.push(info)
markAry.push("========")
for(i=0;i<numMarkers;i++){
    if(i==0){
        currentMarker = markers.getFirstMarker();
        markerDuration =  currentMarker.end.seconds-currentMarker.start.seconds;
        Percentage = markerDuration/sec*100;
        markAry.push("MarkerName:"+currentMarker.name);
        markAry.push("markerDuration:"+ markerDuration+"sec");
        markAry.push("Percentage:"+Math.round(Percentage*10)/10+"%");
        markAry.push("========")
    }
    if(i>0){
        currentMarker = markers.getNextMarker(currentMarker);
        markerDuration =  currentMarker.end.seconds-currentMarker.start.seconds;
        Percentage = markerDuration/sec*100;
        markAry.push("MarkerName:"+currentMarker.name);
        markAry.push("markerDuration:"+ markerDuration+"sec");
        markAry.push("Percentage:"+Math.round(Percentage*10)/10+"%");
        markAry.push("========")
    }
}

alert(markAry.join("\r"))