2019/05/05
東方Project BGM曲目ファイル作り方
東方シリーズのBGMは(たぶん)thbgm.datというファイルに入っていて、そのまま直接聞くことはできません。なので、「東方BGM Player THxxBGM」なんかの外部ツールを使って聞いたり、wavファイルとかに出力して音楽プレイヤーで聞くのが便利です。
しかし、こうした外部ツールはthbgm.datから自動でBGMのデータ位置を特定してくれないので、thbgm.datのどこに曲が入っているかをいちいち教えてあげないとダメなわけです。
これが曲目ファイルの作製です。
新作が発表されてしばらくすればツールの開発者様がこの作業をやってくれるので、ユーザーは最新版をDLしておけばいちいちこんなものを作る必要は無いんですが、
新作が頒布されて当日にいち早くBGMを抜き出したいという(私のような)せっかちさんは自分で作る必要があります。
そこで、本記事ではこの曲目ファイルの作り方を、ほぼ自分向けにまとめたいと思います。
(新作が発売されるたびやり方を忘れて苦労するので・・)
1.まず「brightmoon」というソフトを使って、ゲームのインストールフォルダ内の「thxx.dat」というファイルを開きます(xxは作品のナンバリングです)
2.次に「thxx.dat」内の「thbgm.fmt」というファイルをExtractします。
3.抽出した「thbgm.fmt」を「FanBinEdit」なんかのバイナリエディタを使って開きます。するとこんな画面が出ます。
「thbgm.fmt」は恐らく曲の長さとかを記述してあるファイルです。
16進数で書いてあるのでぱっと見だとなんのこっちゃ分かりませんが、
下線を引いてる部分が1曲目の「th17_01.wav」という曲について書いてある部分です。
黒下線を引いてある最初の32文字と後ろの48文字は使いません。
赤線部は曲の開始位置を示します。
青線部は多分曲の長さです。
緑線部はイントロ部分の長さです。
4.さて、「thbgm.fmt」の形式が分かったところで次は曲目ファイルを作ります。
テキストエディタを開いて「titles_thxx.txt」というファイルを作ります。
ここに記述すべき情報は、
曲の開始位置、イントロ部分の長さ、ループ部分の長さ、(曲名)
です。
前2つは「thbgm.fmt」に書いてあるのをそのまま使えばOKです。
ただし書くときは後ろから書きます。
なので例えばイントロ長は「00489F40」と書きます。
しかしループ部分の長さは「thbgm.fmt」に載ってないので自分で計算する必要があります。
どうすりゃいいかというと、曲全体の長さから繰り返さないイントロ部分の長さを引いてやれば良いわけです。
つまり「th17_01.wav」の例だと、
00EE2E80 - 00489F40 = 00A58F40
となります。
何をやっているかというと、16進数の引き算です。
進数とかよく分からないという人もいると思うので、あまり深く考えず電卓で計算しましょう。
よく分かっている人も計算が面倒臭いので、まあ電卓を使いましょう。
Windows10の電卓アプリを開いて、左上の≡みたいなマークをクリックして、
電卓のモードをプログラマーに切り替えましょう。
そうするとさっきの≡マークの下になんかいろいろ英語が出てきますが、HEXを選びます。
あとは普通に計算するだけです。
こんな感じで全曲分のループ長を調べて「titles_thxx.txt」に書いていきましょう。
とても面倒臭いです。
参考に、今日の例大祭で頒布された、「東方鬼形獣 ~ Wily Beast and Weakest Creature. 体験版」の曲目ファイルを載せておきます。
(曲名が入っているのでネタバレ注意です。)
====================================
#「東方鬼形獣 ~ Wily Beast and Weakest Creature. 体験版」曲データ
#開始位置[Bytes]、イントロ部の長さ[Bytes]、ループ部の長さ[Bytes]、曲名
#位置・長さは16進数として記述する
@上海アリス幻樂団\東方鬼形獣体験版\thbgm_tr.dat,東方鬼形獣 ~ Wily Beast and Weakest Creature. 体験版
00000010,00489F40,00A58F40,物言わぬ獣の雲
00EE2E90,0028E780,013CFE00,地蔵だけが知る哀嘆
02541410,001209E8,00D3A670,ジェリーストーン
0339C468,0036C000,01552900,ロストリバー
04C5AD68,00206680,0125F840,石の赤子と水中の牛
060C0C28,00261ED0,01A3DD10,不朽の曼珠沙華
07D60808,001A1F50,016AE720,セラフィックチキン
====================================
5.出来たファイルを「東方BGM Player THxxBGM」の実行ファイルが入ってるフォルダー内の「List」というフォルダーに入れましょう。
「List」が無かったら作ってください。
「東方BGM Player THxxBGM」を起動すると、thxx.bgmの場所を聞かれるので、ゲームのインストールフォルダのパスを指定してやれば聞けるようになれます。
以上で曲目ファイルの作り方は終わりです。
どこか間違っていたら教えてください。
(多分間違えています)
それにしても今年の例大祭は人が多かったですねー。
スポンサーサイト
コメント