scriptNote_02

dA-tools.com

HOME > AfterFx > Script Labs > Script_note > scriptNote_02

スクリプト・雑記

1コマずれる

Jan/30 2008

「ありゃ!読み込んだ連番からコンポ作ると尺が合わない!?」

とりあえず尺が1こまのコンポをスクリプトで作ってみる。

var shaku=1/24;
var newComp=myItems.addComp("compName",width,height,shaku,24);

出来たコンポのdurationは[0:00:00:02]

作ったコンポのdurationをスクリプトで取ってみると
[0.04166666790843]とか返ってくる。
2frだったら[0.08333...]じゃ.....ないのか。(まあそうだろうけど)
AfterFxでは時間を秒単位で扱うので24fpsだと1frは [0.0416666...]秒だから端数を切り上げられてしまうようだ。

とりあえず対策として1frを[1/24]じゃなくて[0.0416666]にする。

var shaku=1*0.0416666;

これだと[0:00:00:01]のコンポが出来る。
ためしにdurationをとってみると[0.0416666008532]とか返ってくる。
他のコマ数もこれならOK。現場の実用尺数内では累積誤差も問題なさそうなのでとりあえずこれで進める。

フレーム数の変換

var myComp = app.project.item(1);
var fps =1/myComp.frameDuration;
var timeByFr=myComp .duration/myComp.frameDuration; //koma
var newCompTime=Math.floor((timeByFr/fps)*1000000)/1000000;

と、ここまではver.6.5までの話。
ver.7からtimeToCurrentFormat(t, fps)がある。
このメソッドだと[1/24]secを渡すと[0:00:00:01]を返してくる。

しかし現場ではまだまだver.6.5の日々が続く。