2021年4月6日火曜日

Disco Elysium のローカライズが困難になったのかも

文学的なゲーム Disco Elysium のローカライズ方法について調べています。先月末に The Final Cut 版がリリースされましたが、これにより日本語化がかなり難しくなったようです。理由は次の二点です。

  1. IL2CPP化によりゲームの解析が困難
  2. Unity 2020.2.3f1 化により無料版 UnityEX が使用不可
まず、IL2CPP化によりゲームの解析がとても難しくなりました。これは、解析ツール(AssetStudioGUI)が必要とする DLL がなくなり、アセットの詳細が確認できなくなったためです。

次に、ゲームが Unity 2020.2.3f1 で作成されており、無料版 UnityEX ではアセットの Export/Import ができません。これにより、ゲーム内のテキストやフォントの差し替えができず、日本語化が困難な状況です。古い UnityEX もいくつか試しましたが成果は得られませんでした。


調べてみたこと


■bundle ファイルの調査

StreamingAssets\aa\StandaloneWindows64\dialoguebundle_assets_all_(略).bundle
このファイルを AssetStudioGUI で Export すると台詞の抽出は可能です。ただし、Export 時にメモリーを大量(1.5GB程度)に消費します。また、作成された JSON ファイルは約250MB、900万行以上あるので、テキストエディターで開く時は注意が必要です。

試しに、この bundle ファイルを直接バイナリーエディタで変更してみましたが、ログにCRCエラーを吐いてゲームがフリーズしてしまいました。このファイルの形式は UnityFS でデータは圧縮されています。おそらくバイナリーエディタで勝手に修正したため、正しく解凍できなくなったと思われます。

Unity Assets Bundle Extractor(UABE)


このツールは Unity 2020 に対応していないため、使用できませんでした。

BepInEx

BepInEx 5.4.9 の導入を試みたが、使い方がまだわかっていません。BepInEx は、Unity 2020 にも、IL2CPP にも対応しているらしいので、もう少し調べてみます。

ちなにに、韓国の有志翻訳チームが BepInEx を使用していたのは、The Final Cut リリース前なので IL2CPP化されていなかったと思われます。



とりあえず、BepInEx が The Final Cut 版で使用できるのかを探るのが近道かな? それとゲーム内に日本語フォントが入っているかも確認する必要があるな。
うーん、状況はかなり厳しい・・・

Disco Elysium - The Final Cut のローカライズ方法について情報をお持ちの方がいらっしゃいましたら、コメントいただけると助かります。

では・・・

5 件のコメント:

  1. il2cpp_dataは「Il2CppDumper」を使ってDLLを作成しなおして、作成されたDLL群を\Disco Elysium\disco_DataフォルダにManagedフォルダを作成してコピーしてください。
    https://github.com/Perfare/Il2CppDumper
    これでAssetStudioGUIでMonoBehaviourを確認することができます。

    StreamingAssetsに含まれている英語のデータはarticyで作られたものがインポートされているのだと思います。
    ツールを作るのは結構大変だとは思います。

    返信削除
    返信
    1. 無事、AssetStudioGUIでMonoBehaviourを確認できました。

      articy は初めて知りました。
      会話情報を管理するツールなんですね。
      少し調べてみます。
      情報ありがとうございました。

      削除
  2. 初めまして。
    私もやってみたのですが、従来のBepInExでは取り出せないと
    海外のユーザーさんに教えていただきました。
    ゲーム自体は日本語書体は持っていません。
    他国語版用にそれぞれNotoファミリーが埋め込んであるのを確認しています。
    Final Cutでも画像は取り出せるのですが、テキスト部分は待つしかないとか。
    歯がゆいですね…。

    返信削除
    返信
    1. おお!すでに色々チャレンジされているのですね。

      現時点では、ローカライズに必要そうな会話関連ファイル(Disco Elysium.json)とその他のファイル(GeneralLockitEnglish.json)から情報を抽出し、Excelシートを作成したところです。
      フォントの差し替え方法については引き続き検討中です。
      時間が取れたら、ブログ記事を書く予定です。

      削除
    2. そこまでおできになってるんですねすごい!
      旧バージョンのデータをそのままいじっている状態ですが、一部テキストの翻訳が終わっています。まだごくごく一部ですが、会話IDなどが大幅に変わっていないようなら、お役に立つかもしれません。

      URLに進捗など書いたnote記事を貼っておきますので、よろしかったらご参照ください。

      削除

Raspberry Pi 3 Model A+ で広告ブロックサーバーを作る(その2)

前回作成した 広告ブロックサーバー の稼働状況をAmbientにアップロードするスクリプトを書いたのでメモを残しておきます。