LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-05

今回は?

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

何の為に?

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

使い方

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

bandicam 2019-06-05 12-11-00-507.jpg

準備はこれだけでOK!

プログラムを実行すると・・・
まずはFPSの入力ダイアログが表示されるのでシーケンスのフレームレートを入力します。
現状シーケンスのフレームレートを取得するグローバル変数がないようです。
bandicam 2019-06-05 13-06-15-246.jpg
入力したら・・・
bandicam 2019-06-05 12-44-01-947.jpg

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

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"))


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1