Godot ゲームを英語に翻訳する方法
RuneTranslate は Godot 3.x / 4.x のゲームを翻訳します — .pck を開き(.exe に埋め込まれていても)、GDRE Tools で GDScript とシーンをデコンパイルし、UI とセリフを一覧します。エクスポートは .exe に再パックします。ベストエフォート。ビルドが実行できるか検証してください。
RuneTranslate は Godot で作られたゲームの翻訳にも対応しました — Godot は、インディーや同人ゲームを出荷する最も人気のある方法の 1 つに静かになった、無料のオープンソースエンジンです。Godot は歴史的に外部から翻訳するのが最も難しいエンジンの 1 つでした。リリースされた Godot ゲームは密閉された箱だからです:すべてが 1 つの .pck アーカイブ(しばしば .exe 自体の末尾に接着されている)にあり、スクリプトは GDScript バイトコードにコンパイルされ、シーンはバイナリで保存されています。RuneTranslate はその箱を開け、テキストを読み、あなたの翻訳をパックし直します。
これは 新規追加されたエンジン なので、まず何よりも:RuneTranslate を Godot のゲームに向けて、検出しない、開かない、あるいはエクスポートしたコピーが実行できない場合は、ぜひ教えてください。詳しくは最後に。
Godot とは実際に何か
Godot は無料の MIT ライセンスのオープンソースゲームエンジンで、2D と 3D のインディーゲームの主流の選択肢となり、日本の同人タイトルでも出荷が増えている一角です。ゲームは通常 GDScript(Godot 独自の Python に似た言語)で書かれ、シーン — リソースとして保存されたノードのツリー — としてレイアウトされます。ゲームがエクスポートされると、そのすべて — スクリプト、シーン、画像、音声 — が 1 つの .pck パックファイルにまとめられ、実行ファイルの隣に置かれるか、非常に一般的には .exe 自体の末尾に付加されます。そのパッケージ化こそが、Godot ゲームを難攻不落に見せているものです。
なぜ Godot ゲームは翻訳が難しかったのか
Ren’Py のようなスクリプト駆動エンジンと違い、出荷された Godot ゲームはほとんど何もプレーンテキストで露出しません:
- すべてが `.pck` の中にある。 編集するルーズなスクリプトやテキストファイルはなく — パックが
.exeに埋め込まれている場合、ツールを向ける可視の.pckすら存在しません。 - スクリプトはコンパイル済み。 GDScript はコンパイル済みバイトコード(
.gdc)として出荷され — 現代の Godot 4 ではそのバイトコードはさらに圧縮されています — なので、コードに焼き込まれたセリフは grep したりテキストエディターで開いたりできるものではありません。 - シーンはバイナリ。 UI ラベルやメニューテキストは、エディターで見る人間が読める
.tscnではなく、Godot のバイナリリソースフォーマット(.scn)で保存されたシーンファイルにあります。 - ほとんどのゲームは翻訳ファイルを使わない。 Godot には一級のローカライズシステム(CSV /
.po→.translation)がありますが、多くのゲーム — 特に小さな同人タイトル — はそれを一切使わず、単に日本語をスクリプトとシーンにハードコードします。RuneTranslate はまさにそれらのハードコードされた文字列(.gd、.tscn、.tres、.cfg、project.godot内)を対象とします。まだ.csv/.po/.translationローカライズテーブルは読まないので、それらを 使う ゲームは今のところ対象外です。
RuneTranslate が今できること
RuneTranslate は Godot を一級のエンジンとして扱い、読めるプロジェクトをあなたのために再構築します。内部では GDRE Tools(オープンソースの Godot リバースエンジニアリングツールキット)のコピーをバンドルし、次のことに使います:
- `.pck` を展開 — スタンドアロン、
data.pck、あるいは.exeの末尾に埋め込まれたパック(RuneTranslate が埋め込みパックの署名を自動検出します)。 - コンパイル済み GDScript をデコンパイル(
.gdc→.gd)して、コード内のセリフとナレーションを再び読める状態にします。 - バイナリシーンを変換(
.scn→.tscn)して、その上のラベルと UI テキストを取り出せるようにします。
その後、復元されたプロジェクトをスキャンし、すべての翻訳可能な文字列 — スクリプトのセリフとナレーション、シーンの UI テキスト — をファイルごとにグループ化してエディターに一覧し、エンジンのマークアップはプレースホルダーの背後にマスクされるので、プロバイダーがそれを壊すことはありません。エクスポート時に、あなたの翻訳を復元したソースにスプライスし、実行可能なゲームのコピーをパックし直します(正確な方法は後述)。
必要なもの
- Windows 版 RuneTranslate — 無料。すべてのエンジンとプロバイダーが解放されています。
- Godot のゲームフォルダ — 通常はゲームの
.exe(パックが埋め込まれている)だけ、あるいは.exeとその隣の.pck/data.pck。Godot 3.x と 4.x の両方に対応します。 - ターゲット言語 — 英語、スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語、その他 20 以上。
- 1 つの翻訳プロバイダー。無料の Google Translate はそのまま使えます。DeepL には無料ティアがあります。OpenAI、Anthropic、ローカルモデル(Ollama / LM Studio)、あらゆる OpenAI 互換 API は自分のキーを用意するタイプです。Godot のゲームはたいていセリフが多いので、ストーリーテキストには LLM(OpenAI / Anthropic)または DeepL が最もよく読めます。
ステップ 1: ゲームフォルダを開く
RuneTranslate を起動し、新規プロジェクト をクリックして、Godot のゲームディレクトリ — ゲームの .exe(別途出荷されるなら .pck も)があるフォルダ — に向けます。エンジン検出は自動的に実行されます:実行ファイル末尾の埋め込みパック署名、ルーズな .pck、あるいは Godot プロジェクトを認識します。元のファイルは決して変更されません。
ステップ 2: 展開してプロジェクトを復元
RuneTranslate はバンドルの GDRE Tools サイドカーを実行し、パックを展開し、コンパイル済み GDScript をデコンパイルし、バイナリシーンを読めるソースに変換します。その後、復元したプロジェクトをスキャンし、すべての翻訳可能な行 — スクリプトのセリフとナレーション、シーンのラベルと UI テキスト — をファイルごとにグループ化して一覧します。アセットパス、ノード名、その他のコード識別子はフィルターされるので、プレイヤーが実際に目にする文字列だけを翻訳できます。
ステップ 3: 翻訳
プロバイダーを選んで実行します。ストーリー主導のゲームには、LLM(OpenAI / Anthropic) がキャラクターの声に最適で、DeepL はナレーションを高速かつクリーンに、無料の Google Translate は短い UI 文字列に十分です。Godot のゲームは、セリフを 1 つのスクリプト内の長い行の配列 — 「ストーリーデータベース」 — として保持することが多いので、同じキャラクターや地名が何百回も現れます。どこでも同一に表示されるよう、キャストとキーワードを事前に用語集化しましょう。用語集 101 を参照。AI リファイナー で任意のパスを実行すると、機械翻訳が残しがちな堅い言い回しを引き締めます。
ステップ 4: 翻訳済みビルドをエクスポート
エクスポート をクリックします。元のスクリプトがコンパイル済みバイトコードなので、RuneTranslate は ソースオーバーライド アプローチを使います:あなたの翻訳を復元した .gd / .tscn ソースに書き込み、コンパイル済み .gdc / バイナリ .scn を捨ててエンジンがルーズな翻訳済みソースにフォールバックするようにし、新しい .pck をパックし直し、.exe のコピーに再埋め込みします。元のゲームは手を加えられないままで、別の実行可能な翻訳済みコピーが手に入ります。
エクスポート範囲に注意: エクスポートは現在、パックが `.exe` に埋め込まれ ていて Godot 4 で作られたゲーム(純粋な TS の再パッカーは Godot 4 のパックフォーマットのみ書き込みます)で機能します。実行ファイルの隣にスタンドアロンの .pck を出荷するゲーム、あるいは Godot 3 で作られたゲームは、それでも 検出、抽出、翻訳 できます — 翻訳パス全体を行い、用語集や参照として使えます — が、RuneTranslate はまだそれらでプレイ可能なビルドを再パックできません。埋め込みパックの Godot 4 ゲーム(最も一般的な同人ケース)は最初から最後までエクスポートできます。
ステップ 5: コピーが実行できることを検証
エクスポートしたビルドは、Godot ランタイムが読み込み時にルーズな翻訳済みスクリプトソースをコンパイルすることに依存しているので — どの新しいエンジンでもそうですが — エクスポートしたゲームを一度起動し、共有する前にセリフとメニューがあなたの言語で表示されることを確認してください。スクリプトが読み込まれない場合、それこそが私たちの堅牢化に役立つ報告です(後述)。
既知の制限
- ベストエフォート。 再配布する前に、エクスポートしたゲームが起動して正しく読めることを検証してください。
- エクスポートは埋め込みパック + Godot 4 のみ。 スタンドアロンの
.pckゲームや Godot 3 のゲームは検出、抽出、翻訳できますが、まだプレイ可能なビルドに再パックできません。 - ハードコードされた文字列のみ。 RuneTranslate はスクリプトとシーンに焼き込まれた日本語を読みますが、少数のゲームが使う
.csv/.po/.translationローカライズテーブルは読みません。 - 暗号化されたパック。 一部のゲームは、バイナリに焼き込まれたキーで暗号化された
.pckを出荷します。それらはまだ開かれません。 - C# / .NET(Mono)ゲーム。 RuneTranslate は GDScript に注力します。C# の Godot ゲームのロジックにコンパイルされたテキストは対象外です。
- 画像に描かれたテキスト。 アートワークとしてレンダリングされたタイトルやロゴはピクセルであって文字列ではありません — それは 画像テキスト翻訳 の仕事で、スクリプト抽出ではありません。
- 非ラテンのターゲット言語は、ゲームが実際にそれをレンダリングできるフォントを出荷しているかどうかに依存します。
壊れたら教えてください
Godot は多くのエンジンバージョンとパッケージ化スタイルにまたがり、私たちがすべて見たわけではありません。ゲームが検出しない、展開しない、あるいは起動しないものをエクスポートした場合は、報告してください — ゲーム名、その Godot バージョン、パッケージ方法(埋め込みパックかルーズな .pck か)こそが、私たちが最速で堅牢化するのに役立ちます。
RuneTranslate をダウンロードし、ずっと読もうと思っていたあの Godot ゲームに向けて、試してみてください。別の現代的なエンジンについては、次に Unity ウォークスルー を参照してください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード
