Kirikiri / KAG ビジュアルノベルを英語に翻訳する方法
RuneTranslate で Kirikiri / KAG のビジュアルノベルを英語に翻訳します — 移植された GARbro スキームで暗号化された .xp3 アーカイブを読み、KAG .ks シナリオと PSB シーンを翻訳し、ゲームが自動読み込みする patch.xp3 をエクスポートします。
Kirikiri(吉里吉里)とその KAG シナリオ層は、日本語ビジュアルノベルの大きな一角 — 商業美少女カタログのほとんどを含む — を動かしています。難点:Kirikiri はスクリプト、アート、音声を暗号化された .xp3 アーカイブにパックし、多くのスタジオがその上にゲームごとの暗号化スキームを適用します。それが Kirikiri が翻訳しにくいという評判を持つ理由です。このガイドは、それを最初から最後まで RuneTranslate で行う手順を説明します:.xp3 を読み、暗号化を処理し、KAG .ks シナリオを翻訳し、ゲームが自動的に読み込むパッチをエクスポートします。
必要なもの
- Windows 版 RuneTranslate — 無料。すべてのエンジンとプロバイダーが解放されています。
- Kirikiri のゲームフォルダ — ゲームの
.exeと 1 つ以上の.xp3アーカイブ(一般的にはdata.xp3、scenario.xp3など)があるディレクトリ。.exe.emb/.xp3.sigファイルを持つ署名付き KirikiriZ ビルドも認識されます。 - ターゲット言語 — 英語、スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語、その他 20 以上。
- 1 つの翻訳プロバイダー。ビジュアルノベルはセリフが多いので、たいてい LLM(OpenAI / Anthropic)または DeepL が最もよく読めます。無料の Google Translate はそのまま使えます。
ステップ 1: ゲームを開いて XP3 を展開する
RuneTranslate を起動し、新規プロジェクト をクリックして、Kirikiri のゲームディレクトリに向けます。エンジン検出は自動的に実行されます。組み込みの XP3 リーダーがアーカイブインデックス — 大きなアーカイブが使う 17 バイトの圧縮インデックスヘッダーを含む — を開き、シナリオファイルを取り出します。元のアーカイブは決して変更されません。
アーカイブが暗号化されている場合、RuneTranslate はおよそ 2 ダースの移植された GARbro 暗号化スキームと、よりシンプルなファイルごとのスクランブル用の汎用シングルバイト XOR 総当たりソルバーで復号を試みます。ほとんどの市販ゲームはこれらのいずれかに当てはまります。アーカイブごとの実行時状態やスタジオが保持するキーを必要とするスキームは非対応のままです — それらが本当にロックされた例外です。
ステップ 2: Kirikiri のセリフがどう抽出されるか
Kirikiri はセリフを KAG .ks シナリオスクリプトに格納します。RuneTranslate はそれらをパースし、翻訳可能なテキストをエディターに一覧します:
- セリフとナレーション — 生のシナリオ行。
- スマート属性抽出 —
[ruby/]、[ch text="..."]、[name text="..."]、[button text="..."]のようなタグ内の読めるテキストが取り出されて翻訳され、タグ構造そのものは保持されます。
KAG のインライン制御タグは、プロバイダーに届く前に数字の [[K#]] プレースホルダーの背後にマスクされるので、機械がエンジンの整形を壊すことはできません。一部の KirikiriZ ゲームは、シナリオをコンパイル済み PSB .scn バイナリ(PSB\0 フォーマット)として出荷します — RuneTranslate は暗号化されていない PSB シナリオ(フォーマットバージョン 1 から 4)もパースして再パックするので、それらのゲームもテキストスクリプトと同じように翻訳できます。
ステップ 3: 翻訳とレビュー
プロバイダーを選んで実行します。キャラクターの声や様式化された話し方には、OpenAI や Anthropic のような LLM が最もよく読めます。DeepL はナレーションを高速かつクリーンに、無料の Google Translate はメニューをカバーします。すべてのルートで名前が同一に表示されるよう、キャストと繰り返し出る用語を先に用語集化しましょう — 用語集 101 を参照。無料ティアでは翻訳が控えめにスロットルされます — AI プロバイダーでおおよそ 2 倍遅く、無料スクレイパーではそれ以下 — 出力品質は同一です。有料ティアはフルスピードで実行し、翻訳メモリを追加します。
すべての行がソースの隣のエディターに入ります。インラインで編集し(ブラーまたは Ctrl+Enter で保存)、検索と置換を使い、任意の AI リファイナーで文脈を踏まえた 2 回目の校正を実行します — 長い VN ルートで価値があります。
ステップ 4: パッチをエクスポート
エクスポート をクリックします。RuneTranslate は翻訳済みシナリオを ルーズファイル とスタートアップフック、さらに 役立つ場合はフラットな patch.xp3 として書き出します。単一の方法では普遍的でないので、2 つのオーバーライドパスを使います:
- ルーズファイル + スタートアップフック — フックの
addAutoPath呼び出しがルーズファイルをゲームのアーカイブより上に引き上げます。ビルドごとに異なる初期化エントリポイントを実行するので、RuneTranslate はゲームが使う 3 つの名前すべて —AfterInit2.tjs、xAfterInit2.tjs、xAfterInit.tjs— の下にフックを書き込むので、ゲームが呼ぶどれかが拾います。 - patch.xp3 — Kirikiri は
patch.xp3/patch2.xp3をゲーム自身のアーカイブより高い優先度で自動マウントします(「後のパスが勝つ」)ので、ゲームがスタートアップフックを無効にしていてもオーバーライドします。暗号化ビルドでは、そのエントリはゲーム自身のスキームで事前に暗号化されます。アーカイブ署名を強制するビルドは余分なpatch.xp3を拒否するので、それらではルーズファイルのフックが翻訳を運ぶパスになります。
出力は、元のゲームの隣に置かれたあなたの翻訳です。.exe を起動すると、ターゲット言語でプレイできます。
既知の制限
- 実行時状態、ルックアップテーブル、スタジオが保持するキーを必要とするゲームごとのスキームで暗号化された XP3 は非対応です — およそ 2 ダースの GARbro スキームと XOR 総当たりソルバーが組み込まれており、ほとんどの市販ゲームをカバーしますが、すべての例外ではありません。
- 暗号化された / MDF 圧縮された PSB
.scnシナリオは飛ばされます。暗号化されていない PSB(バージョン 1〜4)のみ対応します。 - コンパイル済みまたはトークン化された KAG
.ksバイトコード(テキストにデスクランブルできないバイナリ /jkマジック)は飛ばされます — 読める KAG スクリプトと暗号化されていない PSB シナリオのみがパースされます。 - 画像テキスト(ロゴ、手描き UI、CG のキャプション)は翻訳されません — 機械翻訳の範囲外です。
なぜこれが従来より簡単なのか
手動のルートは、暗号化スキームを特定し、GARbro で XP3 を抽出し、KAG タグ内の読めるテキストを手作業で見つけ、マークアップを壊さずに翻訳し、それから再パックするかオーバーライドパスを正しく配線する、というものでした。RuneTranslate はチェーン全体 — 復号、抽出、タグのマスク、翻訳、ルーズフックと patch.xp3 の両方の構築 — を数クリックに畳み込み、言い回しを管理できるようエディターを開いたままにします。
Kirikiri エンジンページで全機能リストを見るか、別のビジュアルノベルエンジンについて Ren’Py ガイドを読むか、RuneTranslate をダウンロードして実在のゲームで試してみてください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード
