SmfToAssの使い方 [自作ソフトウェア]
SmfToAssの使い方です。
必要な物
- SmfToAss.zipに含まれるファイル一式(*.snk除く)
- .NET Framework 2.0ランタイム (Code Analysis系の関係で,動かなかったらごめんなさい。mscorlib.dllに入っているので,問題ないはずですが……)
- 歌詞を含むSMF(.mid)ファイル。歌詞に改行コードを含めないようにしてください
- 歌詞ファイル
- VobSub
- VsFilter
- 合成先となるビデオファイル
使い方
- まず,SMFファイルを引数にSmfToAss.exeを実行します。すると,
トラック1を処理中 ... →対応する歌詞ファイルがみつかりません。
のような表示が出ます。 - 上記1で「みつからない」と出たトラックごとに,歌詞ファイルを分割します。A.midに対応するトラック1の歌詞ファイルはA.01.txt,トラック2の歌詞ファイルはA.02.txt……のようになります。トラックがわかっている場合は,上記1の過程を飛ばしてこの行程をおこなってかまいません。
- 再度SMFファイルを引数にSmfToAss.exeを実行します。すると,assファイルの他にxmlファイル,そしてA.Timing.01.txtのようなファイルができます。これらは,以下のような内容になっています(ファイル名は元がA.midの場合)。
- A.ass
- Advanced SubStation形式のカラオケ用ファイル。このまま利用しても良いですが,カラオケには向かないデータになっていると思います。
- A.xml
- Assを再作成するための情報ファイル。Optionsを弄ると,表示のタイミングを変更できます。また,タイミングがおかしい場合の調整も可能です。ときたま,歌詞ファイルとSMFファイルの歌詞の間で,間違った対応を作成する場合があります。
- A.01.Timing.txt
- SMF歌詞のタイミング情報を含んでいます。Assファイルを自分で弄るための参考資料です。
- 必要に応じてXMLファイルを弄ります。この時,TickToTime要素の中身を変更しないようにしてください。
- 今度はXMLファイルを引数にXmlToAss.exeを実行します。先ほどのXMLファイルに合わせて,Assファイルが再生成されます。
XML簡易リファレンス
- ShowTimingByTick
- Tick単位で,歌詞を表示するタイミングをずらします。拍単位で指定するために使います。ここで指定したTick分だけ,歌詞の表示開始が早まります。
- ShowTimingByTime
- 10ms単位で,歌詞を表示するタイミングをずらします。ここで指定した時間だけ,歌詞の表示開始が早まります。
- HideTimingByTick
- Tick単位で,歌詞を消去するタイミングをずらします。拍単位で指定するために使います。ここで指定したTick分だけ,歌詞の表示終了が遅くなります。
- HideTimingByTime
- 10ms単位で,歌詞を消去するタイミングをずらします。ここで指定した時間だけ,歌詞の表示終了が遅くなります。
- WipeTimingByTick
- Tick単位で,歌詞をワイプするタイミングをずらします。拍単位で指定するために使います。ここで指定したTick分だけ,歌詞のワイプ開始・終了が早まります。
- WipeTimingByTime
- 10ms単位で,歌詞をワイプするタイミングをずらします。ここで指定した時間だけ,歌詞のワイプ開始・終了が早まります。
- Line
- 一要素が一行分のデータに対応します。
- Lyric
- 表示される歌詞データです。空白文字は%0020に,%は%0025に置き換えられています。なお,%0009などとしても水平タブに置き換わったりはしません。
- Timings, Timing
- Lyricの表示やWIPEのタイミング制御用データです。Timingが元のSMFファイルの音一つにあたる要素です。Start, Endは発音開始および終了のタイミングで,単位はTickになります。また,Timingの要素はSMFの音に対応する歌詞です。
他はAssファイルを直接弄ることによる修正でも問題ない部分なので割愛します。なお,TickとTimeではTickが先に適用されます。
コメント 0