対応エンジン · RPG Maker XP / VX / VX Ace
RPG Maker XP、VX、VX Ace は RPGツクールの Ruby 世代 — RGSS1、RGSS2、RGSS3 — にあたり、JavaScript ベースの MV / MZ とはまったく別の形式でゲームデータを保存します。読める JSON ではなく、すべてが Data/ 以下の Ruby Marshal バイナリに入っています:XP なら Map001.rxdata、VX なら .rvdata、VX Ace なら .rvdata2 が、データベースのファイルや System と並んでいます。製品として出たゲームは、たいていそれらを暗号化された RGSSAD アーカイブ — Game.rgssad(XP)、Game.rgss2a(VX)、Game.rgss3a(VX Ace) — に収め、実行ファイルの隣に置いています。RuneTranslate はこの 2 つの層を、どちらも純粋な TypeScript で自前で扱います。アーカイブは直接読み取るので、Ruby のインストールも RPG Maker のエディターも別の展開ツールも要りません。中の Marshal 4.8 データは自前のリーダーとライターで解析し、書き換えるのは文字列のリーフだけです — 浮動小数点数、テーブル、そのほかのオブジェクト本体はバイト単位でそのまま書き戻すので、ゲームが読み込むファイルの構造は出荷時のままです。そこからマップイベントのセリフ(XP はイベントコード 101、VX と VX Ace は 401 と 405 に格納)、「選択肢の表示」の一覧、イベント名とマップ名、データベース — アクター、アイテム、スキル、武器、防具、敵キャラ、ステートの名前、二つ名、説明、メモ — そして System の用語と属性名を取り出します。\C[1]、\N[2]、\V[3] のような制御コードはプロバイダーに渡す前にマスクされ、セリフは書き出し時にメッセージウィンドウへ収まるようワードラップされます。ひとつだけ率直に書いておきます:VX Ace は Ruby 1.9 で動き、すべての文字列にエンコーディングのタグが付くため、端から端まで Unicode です。XP と VX は Ruby 1.8 で動き、テキストをタグの無い Shift-JIS のバイト列として保存するので、エンコーディング周りの例外的なケースが起きやすくなります — この 2 つでは英語やローマ字のターゲットがもっとも安全です。新しい MV / MZ 世代は RPG Maker MV / MZ のページで扱っています。
Ruby 世代の RPG Maker のゲームは長く、同じ名詞があちこちで繰り返されます — あるイベントで書かれたスキル名は、データベースにも、戦闘ログにも、ショップのメニューにも出てきます。パーティの名前、町名、重要アイテム、看板スキルを一度用語集に入れておけば、どのプロバイダーでも Data/ 全体で同じ表記になります。これは VX Ace より XP と VX でいっそう効きます。Shift-JIS のテキストは、40 時間のゲームの途中で表記がぶれても気づきにくいからです。 用語集の基本 →
ゲームフォルダーを開いて Data/ を見てください。拡張子が .rxdata なら RPG Maker XP、.rvdata なら VX、.rvdata2 なら VX Ace です。Data/ が無い場合は、実行ファイルの隣に Game.rgssad(XP)、Game.rgss2a(VX)、Game.rgss3a(VX Ace)があるはずで、データはそのアーカイブの中にあります。代わりに www/data/*.json や data/*.json があるなら MV か MZ なので、RPG Maker MV / MZ のページをご覧ください。
RuneTranslate を起動し、新規プロジェクトをクリックして、ゲームの実行ファイルがあるフォルダーを指定します。検出は自動で、3 つのバージョンのどれなのか、データがそのまま置かれているのかアーカイブに入っているのかを報告します。暗号化された RGSSAD はそのまま読み取り、中の Data ファイルはプロジェクトごとの作業領域へ復号されます — Ruby のランタイムも外部の展開ツールも関わりません。
ターゲット言語を選び、次にプロバイダーを選びます:Google と無料の DeepL は API キーがまったく要らず、DeepL API はバランスの取れた品質、OpenAI、Anthropic Claude、DeepSeek、OpenAI 互換のエンドポイント、Ollama や LM Studio 経由のローカルモデルは長いセリフを文脈込みで扱えます。ソース言語は既定で日本語ですが、対応するソース言語ならプロジェクトごとに設定できます。
RuneTranslate は文字列をプロバイダーへバッチで送り、結果をプロジェクトに書き戻します。マップのセリフ、選択肢、データベースの項目、System の用語はグループ分けされているので、マップ単位・データベースのテーブル単位で確認し、任意の行を手で直し、失敗したバッチを再試行できます。制御コードは終始マスクされるため、\C[1]、\N[2]、\V[3] はそのまま往復します。
エクスポートすると、翻訳済みの Marshal データを組み込んだゲームの実行可能な完全コピーが書き出されます。アーカイブ入りのゲームでは、アーカイブを復号して Data/ にファイルを展開し、アーカイブ自体は外します — アーカイブが無いときに RGSS がゲームを読み込む方式です。セリフは書き出す際にワードラップされます。できあがるのは手元に残るプレイできる翻訳済みビルドで、元のゲームには手を触れません。