BGMの差し替え


(2008/10/22)
2010/06/10からBGMが暗号化されています。戻すにはこっちを参照

BGMを変えるにはsound/bgm下のファイルを置き換え置き換えますが、 ただ置き換えただけでは意図した通りに再生されないことがあります。


取り敢えずの回避方法

この問題を回避するには、 『ファイルサイズを元と同じになるようにすると良い』 と言われて言われており、殆どのケースで問題解決しますが、たまに解決しない場合があります
理由の一つにLoopの設定が上げられます。


ループ

BGMとして音楽を再生する場合1つの曲を繰り返し再生することが多く、大別すると
  • 一部のみを繰り返し再生(部分ループ)
  • 1曲まるごと繰り返し再生(全ループ)
があります

上記の方法で解決しない理由に、部分ループをさせる時のループ点指定方法の特殊性があります(それともこれが一般的?)


ループ点

ループ点を先頭からのバイト数で指定しているようです。「ようです」と言うのはちゃんと解析した訳ではなく それっぽいデータがありそこを変更するとループ箇所が変わるから。

例えば、0123456789、なるデータがあって7がLoop開始点、2がLoop復帰点だとします。
再生は、0123456723456723456
となり、89は死にデータになります。
結果、7→2が上手く繋がらない時があります
部分ループさせている理由は繰り返して再生する時に、綺麗に繋がるように微調整をした結果だと思われます。
当然、こんな面倒な事をしていたのは初期の開発者のみ。今は全ループのみ。


データ

実際にデータを覗いて見ると、
となっておりフォーマットにしたがってダンプしてみると、『繰り返しのタイプ』『ループの場所』などが判ってきます。


屠り方

  • ループの場所を新しいBGMにあわせる
  • 繰り返しのタイプを「全ループ」に変更
の2つかと思いますが、「全ループ」に変更するのが楽だと思います

とは言え、一々BinaryEditorで書き換えるのは面倒なので支援ツールを作ってみました


DL