SSブログ

SmfToAssの使い方 [自作ソフトウェア]

SmfToAssの使い方です。

必要な物

  • SmfToAss.zipに含まれるファイル一式(*.snk除く)
  • .NET Framework 2.0ランタイム (Code Analysis系の関係で,動かなかったらごめんなさい。mscorlib.dllに入っているので,問題ないはずですが……)
  • 歌詞を含むSMF(.mid)ファイル。歌詞に改行コードを含めないようにしてください
  • 歌詞ファイル
  • VobSub
  • VsFilter
  • 合成先となるビデオファイル

使い方

  1. まず,SMFファイルを引数にSmfToAss.exeを実行します。すると,
            トラック1を処理中 ...
                    →対応する歌詞ファイルがみつかりません。
    のような表示が出ます。
  2. 上記1で「みつからない」と出たトラックごとに,歌詞ファイルを分割します。A.midに対応するトラック1の歌詞ファイルはA.01.txt,トラック2の歌詞ファイルはA.02.txt……のようになります。トラックがわかっている場合は,上記1の過程を飛ばしてこの行程をおこなってかまいません。
  3. 再度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ファイルを自分で弄るための参考資料です。
  4. 必要に応じてXMLファイルを弄ります。この時,TickToTime要素の中身を変更しないようにしてください。
  5. 今度は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が先に適用されます。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。