対応エンジン · Godot Engine
Godot は、インディーおよび日本語同人ゲームの急成長する一角の背後にある、無料のオープンソースエンジンで — 翻訳者にとっては閉じた箱です。出荷された Godot ゲームはすべてを 1 つの .pck アーカイブ(しばしば .exe に付加)に収め、スクリプトは GDScript バイトコード(.gdc)にコンパイルされ、シーンはバイナリ(.scn)で保存されるからです。RuneTranslate はそれを開きます。バンドルの GDRE Tools(オープンソースの Godot RE ツールキット)を使って、パックを展開し、GDScript を .gd ソースにデコンパイルし、バイナリシーンをテキストに変換し、それからすべての翻訳可能な文字列 — スクリプトからのセリフとナレーション、シーン上のラベルと UI テキスト — を一覧します。.gd / .tscn / .tres / .cfg / .godot 内のハードコードされた文字列を読みます。.csv / .po / .translation のローカライズテーブルは読みません。任意のプロバイダーで翻訳し、エクスポート時に翻訳を復元したソースにスプライスしてゲームを再パックします。検出と抽出は Godot 3.x と 4.x をカバーしますが、純粋 TS の再パックは Godot 4(pack v2〜v3)のみで、エクスポートは現在、.pck が .exe に埋め込まれたゲームで実行されます — スタンドアロン .pck と Godot 3 プロジェクトは検出、抽出、翻訳しますが、まだ再パックできません。暗号化された .pck ファイル(キーがバイナリに焼き込まれている)は開かれません。エクスポートしたビルドはエンジンが実行時にルーズなソースをコンパイルすることに依存するので、再配布する前に翻訳済みコピーが動くことを検証してください。ソース言語はデフォルトで日本語、プロジェクトごとに設定可能です。
Godot のセリフはしばしば 1 つの GDScript の「データベース」ファイル内に行の長い配列として格納されるので、繰り返し出るキャラクターや地名が何百回も現れます。キャストとキーワードを事前に用語集化して、すべての行がそれらを同じように表示するようにしましょう。 用語集の基本 →
RuneTranslate をゲームディレクトリ — .exe があるフォルダ(.pck は通常その中に埋め込まれています)、またはその隣のスタンドアロン .pck / data.pck — に向けます。エンジン検出は埋め込みパックの署名を自動的に認識します。元のファイルは決して変更されません。
RuneTranslate はバンドルの GDRE Tools サイドカーを実行して .pck を展開し、コンパイル済み GDScript をデコンパイル(.gdc → .gd)し、バイナリシーンを変換(.scn → .tscn)します。それから復元したソースをスキャンし、すべての翻訳可能な文字列 — スクリプトのセリフとシーン / UI テキスト — をファイルごとにグループ化して一覧し、エンジンのマークアップはプレースホルダーの背後にマスクされます。
Godot のゲームはたいていセリフが多いので、ストーリーテキストには LLM(OpenAI GPT-4o / Anthropic Claude)または DeepL が最もよく読めます。無料の Google Translate やローカルモデル(Ollama / LM Studio)は短い UI 文字列をカバーし、OpenAI 互換プロバイダーを OpenRouter や NanoGPT に向けられます。任意の AI リファイナーの 2 回目のパスが言い回しを引き締めます。
.pck が .exe に埋め込まれたゲームでは、RuneTranslate はあなたの翻訳を復元した GDScript / シーンソースにスプライスし、新しい .pck を再パック(コンパイル済み .gdc / バイナリ .scn を捨ててエンジンが翻訳済みソースを読み込むように)し、.exe のコピーに再埋め込みします。スタンドアロン .pck と Godot 3 プロジェクトはエディターで翻訳できますが、まだエクスポートしません。エクスポートしたコピーを実行すると、あなたの言語でプレイできます。
エクスポートしたビルドは Godot ランタイムがルーズな翻訳済みソースをコンパイルすることに依存するので、共有する前にエクスポートしたゲームを一度起動し、セリフとメニューがあなたの言語で表示されることを確認してください。