Unity ゲームを英語に翻訳する方法
RuneTranslate で Unity ゲームを翻訳します — TextAsset、MonoBehaviour フィールド(Mono と IL2CPP)、StreamingAssets を読み、なぜ外部化テキスト限定なのか、そして識別子ガードがどうゲームを壊さないようにするかを解説します。
Unity は、日本語インディーゲームとビジュアルノベルの増えつつある一角の背後にあるエンジンで — そして一般的なエンジンの中で翻訳が最も厄介です。Unity には単一のテキストフォーマットがないからです。セリフは TextAsset のブロブ、MonoBehaviour の文字列フィールド、ルーズな StreamingAssets スクリプト、あるいは C# の DLL に直接コンパイルされて存在しえます。このガイドは、Unity のゲームを RuneTranslate で翻訳する手順を説明し、同じくらい重要な、Unity を他と違わせる 1 つのルール — 外部化されたテキストのみ — を解説します。
まず大きな注意点:外部化されたテキストのみ
RuneTranslate は データ にある Unity テキスト — エンジンが実行時に読み込むアセットファイル、MonoBehaviour コンポーネント上の文字列フィールド(セリフ、名前、ラベル)を含む — を翻訳します。それらのフィールドを Mono と IL2CPP の両方 のビルドで読みます:型レイアウトは、Mono ではゲーム自身の DLL から来て、Managed/ フォルダがない場合は IL2CPP のメタデータから再構築されます。届かない のは、コンパイル済み C# コード自体(Assembly-CSharp.dll)にハードコードされたテキストです。実際には、スクリプトをアセットとコンポーネントに保持するゲームはよく翻訳できます — そして最初のステップであるプロジェクトを開くことが、自分が何を持っているかを教えてくれます。
必要なもの
- Windows 版 RuneTranslate — 無料。すべてのエンジンとプロバイダーが解放されています。
- Unity のゲームフォルダ — ゲームの
.exeと<GameName>_Data/フォルダ(globalgamemanagers、resources.assets、data.unity3d、level*ファイルを含む)があるディレクトリ。 - ターゲット言語 — 英語、スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語、その他 20 以上。
- 1 つの翻訳プロバイダー。無料の Google Translate はそのまま使えます。DeepL には無料ティアがあります。OpenAI、Anthropic、ローカルモデル、あらゆる OpenAI 互換 API は自分のキーを用意するタイプです。
ステップ 1: ゲームフォルダを開く
RuneTranslate を起動し、新規プロジェクト をクリックして、Unity のゲームディレクトリに向けます。エンジン検出は _Data/ フォルダを探し、プロジェクトを Unity と識別します。バンドルの UnityPy Python サイドカー(インストーラー内に同梱)がアセットファイルを開き、読める文字列を、プロジェクトごとのワークスペース %APPDATA%/RuneTranslate/unity-workspace/<projectId>/ に一覧します。元のゲームフォルダは決して変更されません。Unity は ベストエフォート のエンジンです — 再配布する前にエクスポートしたビルドが実行できることを検証してください。
ステップ 2: 文字列がどう抽出されるか
RuneTranslate は、Unity がテキストを外部化するあらゆる場所から読みます:
- TextAsset —
.assetsや AssetBundle に埋め込まれた JSON / CSV / スクリプトのブロブ。フォーマット対応の抽出器でスライスされます。 - MonoBehaviour の文字列フィールド — コンポーネント上の表示テキスト(セリフ、名前、ラベル)。Mono と IL2CPP の両方のビルドで(型情報はゲームの DLL から、または IL2CPP のメタデータから再構築)。
- StreamingAssets — ディスク上で直接歩かれるルーズなスクリプトファイル(
.json、.txt、.csv、.tsv、.xml、.yaml、.ksなど)。 - 暗号化された Addressable バンドル — Addressable アセットバンドルを AES 暗号化するゲームは自動的に復号されます(キーはバンドル自身のファイル名から導出)ので、そのテキストは他のバンドルと同じように抽出されます。
Unity は過剰翻訳が最も損害を与える場所でもあるので、RuneTranslate はそのためのガードを備えています。多くの MonoBehaviour 文字列はまったく表示テキストではありません — 制御識別子 や フローオペランド です:LoadScene 呼び出しが文字列で解決するシーン名、メッセージルーティングのキー、アニメーター / サウンドクリップ名、Live2D のパーツ名、Fungus の If / SetVariable ロジック内の比較値(例:村落出口 のようなフラグ)。それらを翻訳するとゲームは静かに壊れます — 典型的な症状は、エラーのない無限の「loading」画面です。RuneTranslate はこれらを自動的に 除外(赤で表示、オプトインのみ)に分類するので、エディターは本物のセリフとラベルを浮かび上がらせ、機構は放っておきます。Fungus の {$var} 置換と {color=...} / TMP <...> マークアップは、翻訳を無傷で生き延びるようプレースホルダーの背後にマスクされます。
ステップ 3: 翻訳とレビュー
プロバイダーを選んで実行します。DeepL や LLM はセリフに最もよく読め、無料の Google Translate はメニューやアイテム名をカバーします。キャストと繰り返し出る用語を先に用語集化しましょう — 用語集 101 を参照。すべての行がソースの隣のエディターに入ります。インラインで編集し(ブラーまたは Ctrl+Enter で保存)、任意の AI リファイナーで 2 回目の校正を実行します。無料ティアは控えめなスロットルで実行されます(AI プロバイダーでおおよそ 2 倍遅く、スクレイパーではそれ以下) — 同じエンジン、同じ出力品質で、有料はただフルスピードで実行されます。
ステップ 4: プレイ可能なビルドをエクスポート
エクスポート をクリックします。RuneTranslate はゲームをコピーし、それから翻訳済み文字列をアセットファイルにその場でパッチします。同じ除外ガードが書き戻し時にも実行されるので、古いプロジェクトが再エクスポート時に翻訳済みのシーン名やフローオペランドを誤ってプッシュすることはできません。出力は、選んだ場所にあるゲームの完全な実行可能コピーです — .exe を起動すると、ターゲット言語でプレイできます。
ゲームの組み込みフォントがグリフをレンダリングできない非ラテンの言語(中国語、日本語、韓国語、タイ語、アラビア語)へ翻訳しますか? RuneTranslate はエクスポート時に TextMeshPro のフォントスタックにフォールバックフォントを注入するので、欠けたグリフのボックスではなく翻訳済みテキストが表示されます。
既知の制限
- 外部化されたテキストのみ:コンパイル済み C# コード(Mono の
Assembly-CSharp.dll、または IL2CPP バイナリ)にハードコードされた文字列は翻訳されません。MonoBehaviour の データ フィールドは翻訳されます — Mono と IL2CPP の両方のビルドで。 - IL2CPP の MonoBehaviour 読み取りにはパース可能な
global-metadata.datが必要です。強く難読化されたメタデータは再構築されないかもしれません(ベストエフォート)。 - ベストエフォート:共有する前に、エクスポートしたゲームが起動して正しく読めることを確認してください。
- 画像テキスト(ロゴ、手描き UI、CG のキャプション)は翻訳されません — 機械翻訳の範囲外です。
なぜこれが従来より簡単なのか
手動の Unity 翻訳は、UABE や AssetStudio でアセットを展開し、どの TextAsset と MonoBehaviour フィールドが本物のテキストを保持するか探し、ゲームをクラッシュさせる識別子文字列を手作業で避け、それからアセットテーブルを壊さずに再インポートする、というものでした。RuneTranslate は抽出、分類(機構を翻訳しないように)、翻訳、その場でのパッチを数クリックに畳み込み — 言い回しを管理できるようエディターを開いたままにします。
Unity エンジンページで全機能リストを見るか、HTML ベースのエンジンについて TyranoBuilder ガイドを読むか、RuneTranslate をダウンロードして実在のゲームで試してみてください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード
