見出し画像

9th Dawn III 日本語化実現か?

さらに幾つか動作させるために必要な操作を加えました。これによりSteam経由での動作が可能となりゲーム本体への変更を一切行わない状態で日本語の表示が可能となりました。(変更点)*2

いくつか追記しました (変更点)*1

はじめに

以前 Steam版 9th Dawn III の日本語化の可能性について投稿しましたが、もしかすると完全な日本語化が出来るかもしれない方法をお伝えします。
以下に手順などを記載しておきますが、デメリットも多々あり安全性も含めて推奨できるものではないので、自己責任でお願いします。GOG版は未所持の為検証しておりません。

以前の時にプラグイン型のMOD制作で文字列を日本語化すれば出来るのではないかと構想をお伝えしましたが、それらを解消できるプラグインがあったので実際に試してみました。

これらについては 9th Dawn IIIだけでなくUnity製のゲームであり且つBepinEXが動作すれば日本語化できる可能性を秘めています。実際に試したい方は同様の手順で別のゲーム等も試してみたらよいかもしれません。

翻訳データを別で用意できるタイプのゲームであれば、今回の方法の自動翻訳を用いた方法はあまりお勧めの方法では無いかもしれません。
マルチ言語化を実装していないゲームや、ゲームが新しく翻訳データない場合は、PCOTやCapture2Textなどの翻訳支援ツールを利用した場合と同等の機能をゲーム内で直接表示できるようになると思えば分かりやすいかもしれません。
9th Dawn III はコード内に言語データが含まれおり英語のみの実装なので後者に該当します。



0. 必要となるツール群


※xxの部分はバージョンにより異なります。
BepinEx
  Modのベースとなる大事なやつ バージョン5以降のやつ
  以下ダウンロード
   ・BepInEx_x64_5.xx.xx.xx.zip

bbepis / XUnity.AutoTranslator
  BepinExも対応しているプラグインで自動翻訳してくれる
  ゲーム本体への直接的な変更はない
  以下ダウンロード
   ・XUnity.AutoTranslator-BepIn-5x-4.xx.xx.zip 翻訳プラグイン本体
   ・TMP_Font_AssetBundles.zip 代替フォント

UnityEX
  Unityのアセットの変更を行うツール
  ロシア語のフォーラムで分かりくいですがWindows版です。
  今回は無くてもイイ

steam_api64.dll か  Assembly-CSharp.dll の改造 (変更点)*1
  
 安全性皆無の改造されたものが必須。入手方法や改造方法の詳細については説明しませんが、抜き取りして置き換えるかsetStateを変えます。
  ※入手できない方はこの先の作業を行ってもゲームが動きません



1. メリットとデメリット

・メリット
 自動翻訳
 バージョンアップによる影響がほぼ無い
 自動翻訳後の手動で修正が容易
 

・デメリット
 非公式な方法の為かなりグレー
 翻訳するまでの時間や翻訳の精度やパフォーマンスの低下
 Steamを経由しないのでオーバーレイ機能や実績やプレイ時間の反映がされない。セーブなども手動管理




2. 導入の手順


まず9th Dawn III を通常通り起動しランチャー等の設定でフルスクリーンの設定を解除してからゲームを終了してください。

次に9th Dawn IIIのインストールフォルダを開きます。
Steamのライブラリの9th Dawn IIIを右クリック>管理からローカルファイルの閲覧からインストール先を表示します。

特に変更等していなければ以下になります。
C:\Program Files (x86)\Steam\steamapps\common\9th Dawn III

[9th Dawn III]フォルダ以下に[GameBin]フォルダがあります。
[GameBin]フォルダがゲームのフォルダになります。

BepInEx_x64_5.x.xx.x.zip と XUnity.AutoTranslator-BepIn-5x-4.xx.xx.zip とBepinExとTMP_Font_AssetBundles.zipを解凍してすべて[GameBin]フォルダへコピーまたは移動します。

フォルダやファイルの構成として

...[common][9th Dawn III]
       └[GameBin]
        ├ arialuni_sdf_u2018 と u2019[BepInEx][core][plugins][XUnity.AutoTranslator] ...

このようなフォルダ構成になりファイル全てがコピーされればOKです。


必要であればセーブデータのコピーとバックアップを

%AppData%\..\LocalLow\Valorware\9th Dawn III\SaveData
にSteamID毎にフォルダが作られて記録されるようです。

C:\Program Files (x86)\Steam\userdata にも数字のフォルダの下にゲームIDである [1154850] の下にも同様にセーブデータがあるようです。クラウドでのセーブなのかよくわかりません。




3. 起動の確認

※Steamから起動している場合はBepinExが動作しないのを確認しています。これを改善する方法があれば是非教えてください。デメリットが幾つか無くなります。


ファイルのコピーが完了後、Steamからゲームを起動するのではなく、[GameBin] の中にある9th Dawn III.exeを直接起動させてください。
今後ゲームの起動に関しては直接起動のみとします。
タイトル画面後にエラーのダイアログが表示されていると思います。設定を作るだけなのでゲームを×で終了させます。

この段階でBepinExが正常に動作していれば、[BepinEx] フォルダの中に [config] の他にもいくつかのフォルダが自動生成されているはずです。

(変更点)*2
[BepinEx] 内の [config] フォルダを開き BepinEx.cfg をメモ帳などで開きます。

...

[Preloader.Entrypoint]
...
type = Application

上記を

...

[Preloader.Entrypoint]
...
Type = MonoBehaviour

に書き換えて上書き保存します。

同様に [config] フォルダ内の AutoTranslatorConfig.ini も同時に生成されていると思うので翻訳に関する設定を変更するためにメモ帳などで開きます。

[General]
Language=en
FromLanguage=ja

[Behaviour]
MaxCharactersPerTranslation=200
...
OverrideFontTextMeshPro=

上記の項目を見てください。最低限度の変更点はこれだけです。初期設定では日本語を英語に翻訳する設定になっているので書き換えます。それと代替フォントとして使用するTextMeshProの設定します。

[General]
Language=ja
FromLanguage=en

[Behaviour]
MaxCharactersPerTranslation=2000 最大値2500です 2000もあれば十分
...
OverrideFontTextMeshPro=arialuni_sdf_u2018   もしくは arialuni_sdf_u2019 

arialuni_sdf_u2018とu2019の2つがありますがどちらでも構いません。

Twitterで指摘のあった所について (変更点)*1

MaxCharactersPerTranslation=が翻訳の文字数制限が初期値が200となっていますが、より大きな数字に変更したほうが良いかもしれません。最大値は2500なので余裕をもって1000でも2000でもよいかもしれません。(変更点)*1

他にも細かい設定が沢山ありますが詳細は各自調べてください。変更できたら設定ファイルを上書き保存します。

次に steam_api64.dll か Assembly-CSharp.dll を改造したものに置き換えます。改造方法については説明しません。(変更点)*1

この状態でSteamのランチャーからゲームを起動するとほとんどの文字列が日本語へと順次自動翻訳されます。
多少時間がかかりますが待ちましょう。エラー画面でゲームが進行出来ない場合でも日本語の表示がされているはずです。
□□□で表示される場合は、Alt + Fを押してOverrideFontMeshProで設定した代替フォントへ切り替えることで日本語表示に変更することができます。
原文を見たい場合は Alt + T で簡単に切り替えられます。

(変更点)*2
Alt + 0 で翻訳エンジンを変えることもできます。初期の翻訳はGoogle翻訳なのでDeepL翻訳に変更すると精度もなかなか良いのでお勧めです。

その他の操作は 5. その他 各種必要な操作に記載しています。


以下ゲーム内での実際の画面 全て自動翻訳です。未翻訳部分のメッセージやダイアログ等は英文の表示後に翻訳されていきます。

画像1


画像2


画像3




4. 別枠でフォントの導入


別枠でフォントの導入に関してはUnityExを使いますが、特に気にならず代替フォントだけでよいのならここの作業は飛ばして問題ないです。

9th Dawn IIIで使っている内部のフォントはTrueTypeフォントみたいなのでそのフォントを日本語の表示可能なものへ置き換える作業です。


最初にUnityExを起動し Open archiveから

インストールフォルダの...\9th Dawn III\GameBin\9th Dawn III_Data 内にある  resources.assets を開きます。

UnityEXの画面下部の Search Name の右のテキストボックス内に LinguaFranca-Regular.ttf と入力して Find Next ボタンを押します。

該当のファイルが選択されて青く反転していると思うので右クリックをして Export Selected を押します。

直後に [9th Dawn III_Data]フォルダ内に [Unity_Assets_Files]とその下に[resources]フォルダが作成され[resources]フォルダに先ほど選択したLinguaFranca-Regular.ttfがはいっているはずです。

...[GameBin][9th Dawn III_Data]
    └[Unity_Assets_Files]
      └[resources]
       └LinguaFranca-Regular.ttf

このフォントがゲーム内で使われているフォントのはずです。これを別のTrueTypeフォントと置き換えることによって日本語等の文字列を表示することができます。

現在のLinguaFranca-Regular.ttfという名前で別の日本語フォントを持ってきます。今回は 刻ゴシック Light をつかいました。

刻ゴシック Lightのファイル名は font_1_kokugl_1.15_rls.ttfというファイル名ですがこれを名前を変更しLinguaFranca-Regular.ttfにします。別のフォントを使用している方はそれらに対応したものを同様の手順で変更してください。

既存のLinguaFranca-Regular.ttfは上書きされてしまうので必要であれば別の場所にコピーしてください。

[resources]フォルダへ名前を変更した日本語のフォントを上書きするかコピーします。

UnityEXの画面へ戻り上部にある Import files ボタンを押すと[resources]フォルダにいれた今回はフォントの単一ファイルをresources.assetsのファイルへ組み込みます。進行状況のバーが動きますが速すぎて見えない可能性もあります。resources.assetsの日付が更新されていれば組み込みが終わっているはずです。

UnityEXを閉じ通常通りゲームを開始します。キャラ選択画面のフォントが変更されていれば内部のフォントの交換が完了しています。代替フォントを使用したい場合は Alt + F できます。この段階で日本語も翻訳され時間と共に勝手に表示していくはずです。

しかし・・・・

おま環なのか不明ですが、このままゲームを開始して自動翻訳を表示まで可能ですが、置き換えたフォントの一部だけしか表示されない問題があります。問題なく表示されたりされなかったり問題も多く、代替フォントなのが必要な状況なので良い解決策があるのなら教えてほしい。




5. その他 各種必要な操作


自動で翻訳されたデータは
GameBin\BepInEx\Translation\ja\Text\_AutoGeneratedTranslations.txt に格納されていきます。誤訳などもそのままなので必要であれば調整しましょう。完全に翻訳しきったらそのデータ欲しいくらいです。

(変更点)*2
一部の記号などの文字列が自動翻訳で日本語化された場合、全角になっており表示されないかと思います。!#%&?等 他にもあると思います。
対処方法として半角に置き換えると表示されるので翻訳データを編集する必要があります。
お勧めは、サクラエディタで翻訳データを開き変換メニューから全角英数→半角英数で一括で置き換えできます。


XUnity.AutoTranslatorの使用時 ゲーム中の特定のキーを押すと設定変更等が行えます。

ALT + 0: XUnity AutoTranslatorのUI表示 数字の0です   翻訳エンジンの切り替え等 DeepLいいね

ALT + 1: 翻訳アレンジUIの表示切替

ALT + T: 原文と翻訳の表示切替

ALT + R: 翻訳ファイルのリロード
   
上の翻訳データを手動で更新した場合などはゲーム実行中でも
   即座に適応できます。

ALT + U: 手動フッキング よくわかりません。

ALT + F: 事前に用意した代替フォントとの切り替え。

ALT + Q: プラグインの再起動

キーマッピングの詳細
https://github.com/bbepis/XUnity.AutoTranslator#key-mapping




最後に

ゲーム本体へは一切変更を行うことなく自動翻訳で日本語化が出来てしまうのは正直驚きでした。
完全な日本語化に関してはゲーム自体を相当やりこんで翻訳のデータを取得する必要があることと、翻訳を修正する能力とやる気努力も必要ですので時間はかかるかと思います。
他力本願ですがどなたか頑張ってその翻訳データを配布してほしいものです。

以上

この記事が気に入ったらサポートをしてみませんか?