Tree of Savior の音声を変える方法

音声をアドオンを導入するのと同じ方法で変える方法を説明します。
途中、多数のファイルをmp3及びoggに変換する作業があり、やや冗長ではありますがご容赦ください。

必要なもの

  • FMOD Designer ver 4.4.463
    SHA256SUMS
    結構古いバージョンです。インストーラはGoogle検索で入手できるはず。
    なお、FMOD Studioだとおそらくうまくいきません。
  • fmod_extr.exe

    SHA256SUMS
    すみません、現時点で(20/05/14)入手困難なようなので勝手に転載ですが・・・
    FMODExtractor
     
  • OggDropXPd,LameDropXPd
    いずれもこちらからダウンロードできます
    https://rarewares.org/index.php
  • IPF Suite
    SHA256SUMS
    DiscordのTOSDEV コミュニティの#fixed-addonsチャネルから最新版がダウンロードできます。
    Addon Managerの左下より参加できます。

  • 3GBくらいの空き領域

※ToSのインストールフォルダは「C:\Program Files (x86)\Steam\steamapps\common\Tree of Savior (Japanese Ver.)」であるものと仮定して説明しています。
変更している場合は適宜読み替えてください。

手順

ステップ1 変更元の音声ファイルを用意

  1. 「必要なもの」を適当な場所にインストール・展開します。
  2. IPF Suiteを起動します。
  3. C:\Program Files (x86)\Steam\steamapps\common\patchフォルダをエクスプローラーで開きます。
  4. パッチを壊さないよう、中身を適当な場所にコピーしておきます。
    自信のある方はそのままでいいです。
  5. パッチ番号が大きい順に(つまりは、最新のパッチから)IPFSuiteの左ペインにドラッグ&ドロップし開いていき、sound.ipfが表示されるまでひたすら探します。
    ※(ファイル名のXXXXXX_001001.ipfのXXXXXX がパッチ番号。001001は国際版だと異なると思いますが、今回は関係ないです。
    ※#fixed-addons版ではないIPFSuiteだと暗号化解除が必要になります。
    100MB越えのパッチあたりが怪しいでしょう。
  6. Sound.ipfが入っているパッチが見つかったら、Extract Allボタンを押し適当な場所に展開します。
    なお、パッチ番号は後で使うのでメモっておきます。
  7. 今度は、C:\Program Files (x86)\Steam\steamapps\common\dataフォルダにあるsound.ipfを開きます。
    同じくExtractAllで先ほどとは別の適当なフォルダに展開します。
  8. 適当なフォルダ(以降、作業フォルダと呼ぶ)に、以下のような構成でフォルダを作成します。
    (作業フォルダ)
    ├proj
    └se
    …├#base
    …├battle
    …├misc
    …├mon
    …├pc
    …└skillvoice
    ……└Japanese

    ※/se/#baseは作業の煩雑さを回避するためのフォルダです
    ※/se/battle,/se/misc,/se/mon,se/pcは/se/#baseへのシンボリックリンクでも構いません。その場合、後述するコピーの手間が省けます。

  9. パッチIPFを展開したフォルダにある、data/sound.ipfの中身を作業フォルダ/projにコピーします。
    skilvoice_F1.fsb及びskilvoice_M1.fsbも必要になりますが、パッチには含まれていない場合がありますので、
    その際はsound.ipfから抽出したものをコピーしてください。
  10. /proj内の*.fsbファイルをfmod_extr.exeが置いてあるフォルダにコピーします。
  11. fmod_extr.exeに一つずつ、*.fsbファイルをドラッグ&ドロップします。

    同じフォルダにwavファイルが生成されます。

    生成したファイルを、入力したFSBファイルに対して以下の通りに移動します。
    SE.fsb → /se/#base
    skilvoice_jap.fsb→ /se/skillvoice/Japanese
    skilvoice_F1.fsb→ /se/skillvoice/
    skilvoice_M1.fsb→ /se/skillvoice/
    skilvoice_kor.fsb→ /se/skillvoice/

  12. oggdropXpd及び、lamedropxpdを起動し、すべてのwavファイルをmp3、oggファイルに変換します。
    WAVファイルを各ウインドウにドラッグ&ドロップすると変換が実行されます。
    なお、oggdropxpd、lamedropxpdのOutput Directory OptionsにあるSame as Input Directoryにチェックが入っていることを確認してください。
    また、変換後にWAVファイルを削除しないようにしてください。
    なぜこんなことをするのかというと、一部の音声がmp3、oggファイルを指しておりそのままでは編集できず、またファイルの特定が面倒だからです。
    そのため、音声を差し替える段階では/se/#baseフォルダはいじりません。(シンボリックリンクで各フォルダを作成した場合はいじりますが)
  13. 変換が終わったら、/se/#baseの中身を以下のフォルダにコピーします。
    ・/se/battle
    ・/se/misc
    ・/se/mon
    ・/se/pc
    シンボリックリンクで各フォルダを作成している場合はコピーの必要はありません。
  14. /se/projのR1.fdpをFMOD Designerで開きます。(インストールすれば関連付けしてあるのでダブルクリックで起動できるはず)
  15. 右上のLanguageをJapaneseにしたのち、Banksタブを押します。
    まず左ペインのSEをダブルクリックしてみます。読み込みにしばらく時間がかかります。
    読み込み終わると、おそらくSEが赤字で表示されます。
    中央ペインの一覧をざっと眺めると、赤字のファイルがあるかと思います。
    これは不足しているファイルがあることを表しています。
    残念ながら、全ファイル揃っているわけではないので、これらを適当な音声ファイルで補ってやる必要があります。
    手っ取り早いのはよく似たファイル名の音声をコピーし補うことです。
    同様に、skillvoiceをダブルクリックしても不足しているファイルがあることがわかります。

    現時点(20/05/14)では以下のファイルが不足しています。

    /se/どこかのフォルダ ←失念しました
    hit_wpn_heavy1.wav
    item_block_dagger.wav
    quest_success.wav
    quest_success_1.ogg
    skl_cleric_cure_body_1.wav
    skl_cleric_cure_body_3.wav
    skl_eff_acidburn_1.wav
    skl_eff_dark_air.wav
    swd_hit_good_final2.wav

    /se/skillvoice/
    voice_atk_long_f_3.wav
    voice_atk_long_f_7.wav
    voice_atk_long_f_1.wav

    /se/skillvoice/Japanese
    J_voice_atk_long_f_3.wav
    J_voice_atk_long_f_7.wav
    J_voice_atk_long_f_1.wav
    ファイルを補ったら、再度SE、skillvoiceをダブルクリックしてみます。
    白字になればOKです

    これでようやく、準備が整いました。

ステップ2 音声を差し替える

試しにダブルガンスタンスの音声を変えてみましょう。
ダブルガンスタンス(男)の音声は、
/se/skillvoice/Japanese/J_voice_archer_m_DoubleGunStance_cast_2.wavになります。
(実際には2パターンのうちの1ですが)

  1. 適当なフォルダに、差し替えたいWAVファイルを置き、ファイル名を音声の名称に合わせて変更します。
    次に、拡張子に合わせてoggdropXpd,lamedropXpdでmp3,oggに変換します。WAVなら変換は不要です。
  2. /se/skillvoice/Japanese/J_voice_archer_m_DoubleGunStance_cast_2.wavを、差し替えたいファイルで置き換えます。
  3. 再生ボタンを押してみて、音が変わっているか確認します。

    変わっていればOKです。

注意:一部の音声(/se/misc/levelup1.oggなど)は音量が小さくなる・再生速度が速くなるなどのエフェクトをサウンドドライバ側で後付しています。
プロジェクトファイルを弄ってしまうとうまく音が鳴らなくなるため、音声ファイル側で音量を上げる・長さを変えるなどの調整が必要となります。

ステップ3 ToSで動かす

  1. メニューのProject→Buildを選択します。
  2. SEとskilvoice(Japanese)、skilvoice(korean)のみチェックを入れ、Buildを押します。
    初回は10-30分程度かかるのでお待ちください。
  3. FMOD Designerを終了します。
  4. IPF Suiteを起動し、Newを押します。
    先ほどメモしたパッチ番号を以下の二つの欄に入力します。
  5. Saveを押し、任意のファイル名のIPFファイル(*.ipf)として保存します。
    ここではまだ、アドオンのような機種依存文字をファイル名に含めないでください。
  6. IPFSuiteをいったん終了し、再度起動します。(重要)
  7. Openを押し、先ほど作成したIPFファイルを開きます。
  8. New Containerを押し、sound.ipfと入力します。
  9. 左ペインをsound.ipfを選択した状態にし、/projフォルダの中身(R1.fevファイル,.fsbcacheフォルダ、undo-log.txt,fmod_designer.logは除く)を右上のペインにドラッグ&ドロップします。
    ※R1.fevファイルを含めると音が鳴らなくなります
  10. IPF Suiteを終了します。
  11. ファイル名の先頭を_にし、またのような機種依存文字を含めるようにファイル名変更します。
  12. C:\Program Files (x86)\Steam\steamapps\common\Tree of Savior (Japanese Ver.)\dataフォルダにIPFファイルをコピーします。
  13. ToSを実行し、音声が変わっていれば成功です。
    音が一切ならなくなった場合や置き換わっていない場合は失敗です。
    なお、IPFファイルは再利用せず、毎回手順4から実施してください。

おわりに

NEXON時代のsound.ipfを持っていれば旧啓示者ちゃんボイスにもできるはずです。
手順が多く煩雑ではありますが、頑張ってください。