RuneTranslateがGodot製ゲームの翻訳に対応
RuneTranslateはGodot 3.x / 4.x製のゲームを英語や30以上の言語に翻訳できるようになりました——.pckを開き(.exeに埋め込まれている場合でも)、コンパイル済みのGDScriptを逆コンパイルし、同梱のGDRE Toolsサイドカーでバイナリのシーンを変換したうえで、セリフとUIテキストを一覧化します。ゲームフォルダを指定し、自動検出して、翻訳し、再パックした実行可能なコピーを書き出すだけ。新たに追加された機能で、ベストエフォート——書き出したビルドが動作するか確認してください。
RuneTranslateはGodotで作られたゲームの翻訳に対応しました——インディーや同人ゲームをリリースする最も人気のある手段の一つに、いつの間にか成長した無料のオープンソースエンジンです。Godotは歴史的に、外部から翻訳するのが最も難しいエンジンの一つでした。リリースされたGodotゲームは密封された箱だからです。すべてが単一の.pckアーカイブに収まっており(多くの場合.exe本体の末尾にそのまま貼り付けられています)、スクリプトはGDScriptのバイトコードにコンパイルされ、シーンはバイナリで保存されています。RuneTranslateはその箱を開け、テキストを読み取り、あなたの翻訳を中へ再パックします。
これは新たに追加されたエンジンです。ですのでまず何よりも先に——RuneTranslateをGodotゲームに向けて、検出されない、開けない、あるいは書き出したコピーが動作しない場合は、ぜひお知らせください。詳しくは末尾で。
Godotとは実際のところ何か
Godotは無料でMITライセンスのオープンソースゲームエンジン(最初の公開リリースは2014年)で、ここ数年で人気が爆発しました——いまや2D・3Dのインディーゲームの主流の選択肢であり、日本の同人タイトルでも採用が着実に増えています。ゲームは通常、Godot독自のPythonに似た言語であるGDScriptで書かれ、シーン——ノードのツリー(ここにラベル、あそこにボタン、ダイアログボックス)をリソースとして保存したもの——として構成されます。
Godotゲームをリリース用に書き出すと、それら——スクリプト、シーン、画像、音声——のすべてが単一の.pckパックファイルにまとめられます。このパックは実行ファイルの隣に置かれるか、あるいはごく一般的には`.exe`の末尾に直接付け足され、フォルダはゲームの実行ファイルが一つあるだけのように見えます。まさにこのパッケージングこそが、Godotゲームを攻略不能に見せているのです。
なぜGodotゲームは翻訳が難しかったのか
Ren'Pyのようなスクリプト駆動のエンジンとは違い、リリースされたGodotゲームはプレーンテキストとしてはほとんど何も露出しません。
- すべてが`.pck`の中にあります。 編集できるばらけたスクリプトやテキストファイルはなく——パックが
.exeに埋め込まれている場合には、ツールを向ける目に見える.pckすら存在しません。 - スクリプトはコンパイル済みです。 GDScriptはコンパイル済みのバイトコード(
.gdc)として配布され——さらに最新のGodot 4ではそのバイトコードが追加で圧縮されます——ので、コードに焼き込まれたセリフはgrepしたりテキストエディタで開いたりできるものではありません。 - シーンはバイナリです。 UIのラベルやメニューのテキストは、エディタで目にする人間が読める
.tscnではなく、Godotのバイナリリソース形式(.scn)で保存されたシーンファイルの中にあります。 - ほとんどのゲームは翻訳ファイルを使いません。 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以上。
- 翻訳プロバイダーを一つ。無料のGoogle Translateはそのまま使え、DeepLには無料枠があり、OpenAI、Anthropic、ローカルモデル(Ollama / LM Studio)、そしてOpenAI互換のあらゆるAPIは自前のキーを使います。Godotゲームは通常セリフが多いので、ストーリーテキストにはLLM(OpenAI / Anthropic)やDeepLが最も自然に読めます。
ステップ1:ゲームフォルダを開く
RuneTranslateを起動し、New projectをクリックして、Godotゲームのディレクトリ——ゲームの.exe(そして別途同梱されていれば.pck)があるフォルダ——を指定します。エンジン検出は自動で走ります。実行ファイル末尾の埋め込みパックのシグネチャ、ばらけた.pck、あるいはGodotプロジェクトを認識します。元のファイルは決して変更されません。
ステップ2:パックを展開してプロジェクトを復元する
RuneTranslateは同梱のGDRE Toolsサイドカーを実行し、パックを展開し、コンパイル済みのGDScriptを逆コンパイルし、バイナリのシーンを読めるソースへ変換します。続いてその復元したプロジェクトをスキャンし、翻訳可能なあらゆる行——スクリプトのセリフやナレーション、加えてシーンのラベルやUIテキスト——をファイルごとにまとめて一覧表示します。アセットのパス、ノード名、その他のコード識別子は除外されるので、プレイヤーが実際に目にする文字列だけを翻訳できます。
ステップ3:翻訳する
プロバイダーを選んで実行します。ストーリー重視のゲームなら、キャラクターの語り口にはLLM(OpenAI / Anthropic)が最適で、ナレーションにはDeepLが速く整っており、短いUI文字列には無料のGoogle Translateで十分です。Godotゲームはセリフを一つのスクリプト内の長い行の配列——「ストーリーデータベース」——として保持することが多く、同じキャラクター名や地名が何百回も登場します。登場人物と主要な用語をあらかじめ用語集に入れて、どこでも同一に表示されるようにしましょう。詳しくは用語集入門(Glossary 101)を参照してください。AIリファイナーによる任意の仕上げ工程を加えると、機械翻訳が残しがちな硬い言い回しが引き締まります。
ステップ4:翻訳済みビルドを書き出す
Exportをクリックします。元のスクリプトはコンパイル済みのバイトコードなので、RuneTranslateはソースオーバーライド方式を用います。あなたの翻訳を復元済みの.gd / .tscnソースに書き込み、コンパイル済みの.gdc/バイナリの.scnをパックから取り除いてエンジンがばらけた翻訳済みソースにフォールバックするようにし、新しい.pckを再パックします——パックが埋め込み型だった場合は.exeのコピーへ再び埋め込みます。元のゲームは手つかずのまま残り、別個の、実行可能な、翻訳済みのコピーが手に入ります。
ステップ5:コピーが動作するか確認する
書き出したビルドは、読み込み時にGodotランタイムがばらけた翻訳済みスクリプトソースをコンパイルすることに依存しています。ですので——どの新しいエンジンとも同じく——共有する前に、書き出したゲームを一度起動して、セリフとメニューがあなたの言語で表示されることを確認してください。スクリプトが読み込まれない場合、それこそが私たちが堅牢化するのに役立つ種類の報告です(下記参照)。
既知の制限
- 新規追加+ベストエフォート。 再配布する前に、書き出したゲームが起動して正しく読めることを確認してください。
- 暗号化されたパック。 一部のゲームは、バイナリに焼き込まれた鍵で暗号化された
.pckを配布します。それらはまだ開けません。 - C# / .NET(Mono)ゲーム。 RuneTranslateはGDScriptに注力しています。C#製Godotゲームのロジックにコンパイルされたテキストは対象外です。
- 画像に描き込まれたテキスト。 アートワークとしてレンダリングされたタイトルやロゴはピクセルであって文字列ではありません——それはスクリプト抽出ではなく画像テキスト翻訳の仕事です。
- 非ラテン系のターゲット言語は、ゲームがそれを実際に表示できるフォントを同梱しているかどうかに左右されます。
できたばかりです——壊れたところを教えてください
Godot対応はできたばかりの追加です。Godotは多くのエンジンバージョンとパッケージング方式にまたがっており、私たちはそのすべてを見たわけではありません。ですのでRuneTranslateをGodotゲームに向けて、検出されない、展開できない、あるいは起動しないものが書き出される場合は、ぜひ報告してください——ゲームの名前、そのGodotバージョン、そしてどうパッケージされているか(埋め込みパックか、ばらけた.pckか)が、私たちが最速で堅牢化するのにまさに役立ちます。
RuneTranslateをダウンロードして、ずっと読みたかったあのGodotゲームに向けて、試してみてください。もう一つの現代的なエンジンについては、次にUnityの手順をご覧ください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード