文学的なゲーム Disco Elysium のローカライズ方法について調べています。先月末に The Final Cut 版がリリースされましたが、これにより日本語化がかなり難しくなったようです。理由は次の二点です。
- IL2CPP化によりゲームの解析が困難
- Unity 2020.2.3f1 化により無料版 UnityEX が使用不可
次に、ゲームが 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 版で使用できるのかを探るのが近道かな? それとゲーム内に日本語フォントが入っているかも確認する必要があるな。
うーん、状況はかなり厳しい・・・
Disco Elysium - The Final Cut のローカライズ方法について情報をお持ちの方がいらっしゃいましたら、コメントいただけると助かります。
では・・・
il2cpp_dataは「Il2CppDumper」を使ってDLLを作成しなおして、作成されたDLL群を\Disco Elysium\disco_DataフォルダにManagedフォルダを作成してコピーしてください。
返信削除https://github.com/Perfare/Il2CppDumper
これでAssetStudioGUIでMonoBehaviourを確認することができます。
StreamingAssetsに含まれている英語のデータはarticyで作られたものがインポートされているのだと思います。
ツールを作るのは結構大変だとは思います。
無事、AssetStudioGUIでMonoBehaviourを確認できました。
削除articy は初めて知りました。
会話情報を管理するツールなんですね。
少し調べてみます。
情報ありがとうございました。
初めまして。
返信削除私もやってみたのですが、従来のBepInExでは取り出せないと
海外のユーザーさんに教えていただきました。
ゲーム自体は日本語書体は持っていません。
他国語版用にそれぞれNotoファミリーが埋め込んであるのを確認しています。
Final Cutでも画像は取り出せるのですが、テキスト部分は待つしかないとか。
歯がゆいですね…。
おお!すでに色々チャレンジされているのですね。
削除現時点では、ローカライズに必要そうな会話関連ファイル(Disco Elysium.json)とその他のファイル(GeneralLockitEnglish.json)から情報を抽出し、Excelシートを作成したところです。
フォントの差し替え方法については引き続き検討中です。
時間が取れたら、ブログ記事を書く予定です。
そこまでおできになってるんですねすごい!
削除旧バージョンのデータをそのままいじっている状態ですが、一部テキストの翻訳が終わっています。まだごくごく一部ですが、会話IDなどが大幅に変わっていないようなら、お役に立つかもしれません。
URLに進捗など書いたnote記事を貼っておきますので、よろしかったらご参照ください。