ポケモン BW,BW2 戦闘時等BGMをミュートする

※この記事はソフトのROMイメージが吸い出されていることを前提として書いています。

エメラルドプラチナHGSSで手法の違いはあれど再生されるBGMを変更することに成功したので、BW2でも同じようなことができるかどうか調べてみたところ、音声を無音化する「ミュート」に関して有力な情報を発見しました。

How to Make a No Music ROM of BW2 - Pastebin.com

ざっくりまとめると、

  • 「Tinke」などのNDSのROMファイル用編集ソフトを使って、ROM内のsdatファイルに格納されたsseqファイルをダミーのBGMのもので上書き(いわゆるロムハック)することで特定のBGMをミュートすることができる
  • 戦闘時に街のBGMを流すような変更に関してはこの方法ではできない

という内容。このpastebinを読むだけで何をすべきかは既に明白なのですが、バトルサブウェイ関係についてミュートが可能かどうかが検証されておらず、また、日本語でこの作業について解説している方が見受けられなかったので、ここにいち情報として残したいと思います。
前もって、上記のpastebinの投稿者様ならびにTinke等有用なツールを製作してくださった方々に感謝いたします。



必要なもの

ポケットモンスター『ブラック』『ホワイト』『ブラック2』『ホワイト2』のいずれかのROMイメージと実行環境

・変更した音声を確認しやすい状況のセーブデータ(推奨)

・ROMファイルからのsdatの抽出と展開、ROMの再構成ができる環境

(当記事では例としてNDSのROMイメージ用エクスプローラTinke(v0.9.2)を使用します。ndstool、sdatxtractなどもsdatの抽出ができるようですが筆者は試していません。)

vgmtrans (sdat内部の音声プレビューに使用)

・ドライブの十分な空き容量



【TinkeでROMを開きsdatを展開する】

Tinkeを起動してROMを読み込み終わると、編集用の画面が開きます。

左側のツリーの最下に"swan_sound_data.sdat"(BW2の場合)または"wb_sound_data.sdat"(BWの場合)というファイルがあるので、選択したあと右下の「View」をクリックします。

sdatファイルの内部構造が右側にツリー表示されたら、そのツリーの「SSEQ」フォルダを展開します。


【sseqファイルの差し替え】

無音のBGMを扱ったsseqファイルを抽出し、ミュートしたいBGMに上書きします。

先ほど展開した「SSEQ」フォルダの上から3番目にある"SEQ_BGM_SILENCE_FIELD"を選択し、「Extract」をクリック。(上記で引用したpastebinではBGM_DUMMYを使用していましたがBGM_SILENCE_FIELDの方がよいです。)

ファイル名末尾に拡張子".sseq"を追加して、任意の場所に保存します。

例として、ミュートしたい音声は

ギアステーション
「バトルサブウェイ*1
「戦闘!バトルサブウェイトレーナー」
「戦闘!チャンピオン*2
「戦闘でピンチ!*3
「トレーナーに勝利!」
「チャンピオンに勝利!*4

としますが、「SSEQ」フォルダの中のファイルが非常に多いことや、独特なファイル名の関係で実際にどういった内容の音声なのかわかりにくいことが問題です。

音声をプレビューしたい場合は、vgmtransを起動してROMファイルまたは「Extract」したsdatをDrag&Dropしてください。内部ファイル名に応じた音声が再生できるようになります。

(ファイル名そのままで音声を聞くことのできるサイトもあります)

変えたい音声のファイルは、上から順に

SEQ_BGM_GEAR_STATION
SEQ_BGM_BATTLE_SUBWAY
SEQ_BGM_VS_SUBWAY_TRAINER
SEQ_BGM_VS_CHAMP
SEQ_BGM_BATTLEPINCH
SEQ_BGM_WIN2
SEQ_BGM_WIN5

であることがわかりました。

これらのファイルをツリー上で選択し、「Change」をクリックして先ほど抽出した"SEQ_BGM_SILENCE_FIELD.sseq"を「開く」と、音声の内容が置き換わります。

変更の有無を確認したい場合は、ツリー上でファイルを選択し直して(更新を反映して)から右上のデータの説明部分の「size」を見比べることでできます。「size」が"48"になっていればSEQ_BGM_SILENCE_FIELDに置き換わっています。


変更が終わったら、右側ツリーの「Save SDAT」をクリックして変更内容を保存し、左側ツリーの「Save ROM」で新しく名前を付け直してROMを保存します。

注意点として、ROMの吸出し時にtrimして(容量を削減して)いても、Tinkeで保存し直すとフルで吸い出した際と同じ容量で書き出されます。(BWは約256MB、BW2の場合は約512MB)

ROMを実際に起動して、変更した音声の再生を試してみて、不都合がなければミュート化成功です。

うまくいっていない場合はオープニングの音声が消えていることでわかります。sdat編集済みのROMを再度編集すると起こるようなので、無編集のいわゆる"素ROM"から1回の「Save SDAT」で済ますことをおすすめします。

※効果音をSILENCE_FIELDに置き換えると、オープニングの音声が正常に再生されるにもかかわらず、ゲーム内での再生時にフリーズするようです。("SEQ_ME_ASA"=「回復」、"SEQ_ME_BPGET"=「BPをもらった!」で確認済み)




ミュート化ROMでバトルビデオを撮ってBGMをつけてみるテスト↓
youtu.be
HPゲージが赤色になった際にBGMがミュートされたまま継続していることがわかると思います。

*1:電車内

*2:サブウェイマスター戦で再生

*3:プレイヤー側のHPゲージが赤色に変化した際に再生

*4:サブウェイマスター戦で勝利した際に再生