jump to navigation

MMTの表示時刻とフレーム 2011/10/24

Posted by dbot in MMDのメモ.
Tags:
trackback

MMD上でコマ送り再生(静止画)するときに、出したいフレームで字幕でると気持ちいいよね的なことを確認。

表示時刻

●文法
字幕として表示するテキストを指定するコマンドです。
"@"(アットマーク) + 表示時刻 + ","(カンマ) + 表示長さ
のように指定します。
●単位
表示時刻と表示長さの単位は秒です。半角数字で指定します。
小数点を付加することができます。
数字の末尾に"F"を付けることでフレーム単位で時間指定ができます。
この場合小数点は使用できません。
分による指定はできません。

 

1.MMTの表示時刻とフレーム

MikuMikuTelop(MMT) は字幕の表示時刻に、秒指定とフレーム単位指定が出来ます。

もともと、動画の字幕用途のため、表示のタイミングは時間(秒)を基準としてます。

フレーム指定と秒指定をした場合の表示タイミングを確認。(MMT Ver.1.2)。

0フレーム目
frame0 
3フレーム目
frame3
1フレーム目
frame1 フレーム指定NG・桁切上げNG
4フレーム目
frame4 フレーム指定NG・桁切上げNG
2フレーム目
frame2 桁切上げNG
5フレーム目
frame5 桁切上げNG

・上段の白文字はフェード無し、下段の緑文字はフェード有り(0.1秒)を指定
表示時刻は同じ指定をしています。
・1列目:フレーム指定、2列目から4列目は秒数指定
2列目:3桁切捨て、3列目:3桁切上げ、4列目:2桁切捨て
このパターンで該当フレームで表示されると思われる数値を指定してます 。

MMDは30fps固定、MMTもそれに準拠。1秒30フレーム、0.1秒は3フレームとなりますが、
当然、秒として割切れないフレームが出てきます。

 

2.表示時刻の秒数指定とフレーム指定

結論から言えば、フレーム指定はズレるパターンがあります。
秒数指定で該当フレームに表示させる場合は、小数点以下2桁で切捨て計算。

(1)秒数指定
表示されるフレームは切上げです。入力の有効桁数は小数点以下9桁で切上げの模様。 →参考
・・・指定するなら小数点以下2桁で十分です。

0.00、0.03、0.06、0.10・・・

表示したいフレームにあわせた秒数を指定する。

 

(2)フレーム単位指定

フレーム単位の指定は、表示されるタイミングがずれるパターンがあります。
フレーム指定で「3の倍数+1」を指定すると、実際は「3の倍数+2」のフレームで表示されます。
この場合、1フレーム前を指定しても、目的とするフレームから表示されません。

MMT指定フレーム 表示フレーム  
@0F (3の倍数) 1フレーム目 OK
@1F (3の倍数+1) 2フレーム目 NG:1フレーム後ろにずれる
@2F (3の倍数+2) 2フレーム目 OK
@3F (3の倍数) 3フレーム目 OK

動画として使う場合、このずれに影響を受けることは無い思います。

 

3.表示したいフレームで字幕を表示する

フレーム指定の方が指定しやすいのですが、表示開始できないフレームが存在することになります。
3の倍数と3の倍数+2のフレームはそのままのフレーム指定で表示開始されます。

表示開始できないフレーム、3の倍数+1のフレームで表示する方法を探してみました。

(1)相対時間を組み合わせる
@*秒数の指定で、直前の表示時刻の開始時刻からの相対を指定できます。
テキストコマンドは表示する文字を含む必要はない必要はないようです。
表示時間の指定のみのテキストコマンドに続けて相対時間を指定したテキストコマンドでよさそう。

1フレーム目で表示開始(3の倍数+1フレーム)
@00F
@*0.03
*0.03 (01F=00F*0.03)
@00F →表示したいフレーム-1を指定、この1行でテキストコマンド
@:0.03 →1フレーム以下の秒数を指定

 

(2)フェードを組み合わせる
フェードの指定は、0がフェード無し、0以外の数値を指定するとフェード有りになります。
フェード有りの場合は、指定したフレーム(秒数)は透過100%で表示、つまり表示されません。
1フレーム以内のフェードを指定すれば、1フレーム後ろにずらす指定となります。

1フレーム目で表示開始(3の倍数+1フレーム)
:fade 0.01
@00F
00F+fade0.01 (01F=00F+フェード1フレーム)
:fade 0.01 → 1フレーム以下の秒数を指定
@00F → 表示したいフレーム-1を指定

 

0フレーム目
フレーム調整0
1フレーム目
フレーム調整1
2フレーム目
フレーム調整2

上段の白と灰色文字が相対指定使用、下段の緑文字がフェード使用

いや、ポーズ登録は5フレーム単位でやりたいけど、字幕は3フレーム基準となるわけで、
そうすると15フレーム単位づつしか使えないことになるわけで・・・。
まあそんな感じなんですよ。

---------------------------------

「1.MMTの表示時刻とフレーム」で使用したMMTScript

:screen 1600,900
:fade 0
:fontcolor 255,000,000
:backcolor 000,000,000,000
:margin 0,0

//フレームカウント
:align_center
:valign_bottom

:size 10
:pos 0,0
@0.00,0.01
フレーム:0
@0.03,0.01
フレーム:1
@0.06,0.01
フレーム:2
@0.10,0.01
フレーム:3
@0.13,0.01
フレーム:4
@0.16,0.01
フレーム:5
@0.20,0.01
フレーム:6

:align_left
:valign_top

:fontcolor 255,255,255
:backcolor 000,000,000,000

:size 10
:pos -90,100
@00F
フェード指定なし(fade 0)

:pos -90,90
@00F
フレーム指定
:pos_nextline
@00F
00F
:pos_nextline
@01F
01F
:pos_nextline
@02F
02F
:pos_nextline
@03F
03F

:pos -50,90
@0.000
3桁(切捨て)
:pos_nextline
@0.000
0.000
:pos_nextline
@0.033
0.033
:pos_nextline
@0.066
0.066
:pos_nextline
@0.100
0.100
:pos -0,90
@0.000
3桁(切上げ)
:pos_nextline
@0.000
0.000
:pos_nextline
@0.034
0.034
:pos_nextline
@0.067
0.067
:pos_nextline
@0.100
0.100

:pos 50,90
@0.000
2桁(切捨て)
:pos_nextline
@0.00
0.00
:pos_nextline
@0.03
0.03
:pos_nextline
@0.06
0.06
:pos_nextline
@0.10
0.10
//フェードあり
:fade 0.1
:fontcolor 000,255,128
:backcolor 000,000,000,000

:size 10
:pos -90,0
@00F
フェード指定0.1秒(fade 0.1)

:pos -90,-10
@00F
フレーム指定
:pos_nextline
@00F
00F
:pos_nextline
@01F
01F
:pos_nextline
@02F
02F
:pos_nextline
@03F
03F

:pos -50,-10
@0.000
3桁(切捨て)
:pos_nextline
@0.000
0.000
:pos_nextline
@0.033
0.033
:pos_nextline
@0.066
0.066
:pos_nextline
@0.100
0.100
:pos -0,-10
@0.000
3桁(切上げ)
:pos_nextline
@0.000
0.000
:pos_nextline
@0.034
0.034
:pos_nextline
@0.067
0.067
:pos_nextline
@0.100
0.100

:pos 50,-10
@0.000
2桁(切捨て)
:pos_nextline
@0.00
0.00
:pos_nextline
@0.03
0.03
:pos_nextline
@0.06
0.06
:pos_nextline
@0.10
0.10

 

--------------------------------------

「3.表示したいフレームで字幕を表示する」で使用したMMTScript

:screen 1600,900
:fade 0
:fontcolor 255,000,000
:backcolor 000,000,000,000
:margin 0,0

//フレームカウント
:align_center
:valign_bottom

:size 10
:pos 0,0
@0.00,0.01
フレーム:0
@0.03,0.01
フレーム:1
@0.06,0.01
フレーム:2
@0.10,0.01
フレーム:3
@0.13,0.01
フレーム:4
@0.16,0.01
フレーム:5
@0.20,0.01
フレーム:6

:align_left
:valign_top

:fontcolor 255,255,255
:backcolor 000,000,000,000

:size 10
:pos -90,100
@00F
フェード指定なし(fade 0)(*:は開始時刻からの相対時間)

:pos -90,90
@00F
フレーム指定*相対時間
:pos_nextline
@00F
00F
:pos_nextline
@*0.03
*0.03 (01F=00F*0.03)
:pos_nextline
@*0.03
*0.03 (02F=00F*0.03*0.03)

//フェード指定
:align_left
:valign_top

:fontcolor 000,255,128
:backcolor 000,000,000,000
:fade 0

:pos -90,0
@00F
フレーム指定とフェード指定
:pos_nextline
@00F
00F (00F、フェード無し)
:pos_nextline
:fade 0.01
@00F
00F+fade0.01 (01F=00F+フェード1フレーム)
:pos_nextline
:fade 0.0
@02F
02F (02F、フェード無し)

:fontcolor 128,128,128
:pos -00,90
@00F
フレーム指定*相対時間
直前のコマンドは時間指定のみ
:pos_nextline
@00F
@*0.03
*0.03 (01F=00F*0.03)

広告

コメント»

No comments yet — be the first.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。