YU-RIS ビジュアルノベルを英語に翻訳する方法
RuneTranslate は YU-RIS(raiL-soft)のビジュアルノベルを英語と 30 以上の言語に翻訳します — .ypf パッケージとコンパイル済み YSTB スクリプトを純粋 TypeScript で読み、各スクリプトの XOR キーを復元し、翻訳済みスクリプトをルーズにエクスポートします。ベストエフォート。
RuneTranslate は、ファン翻訳者にとって長らく壁だった別のエンジンを読み取ります:YU-RIS、数百の同人および商業日本語ビジュアルノベルの背後にある raiL-soft による Windows スクリプトエンジンです。YU-RIS のゲームフォルダを開き、.ypf アーカイブでいっぱいの pac/ ディレクトリと、中身が読めない ysbin.ypf を見つけて諦めたことがあるなら — それがこのエンジンです。RuneTranslate はそれを検出し、そのパッケージを純粋な TypeScript で開き、コンパイル済みスクリプトからセリフを読み出し、ゲームが自力で読み込む翻訳済みコピーをエクスポートします。
まず正直なところ:YU-RIS 対応はできたばかりで、多くの 実在ゲームでまだ検証されていません。ですので、RuneTranslate を YU-RIS のゲームに向けて、検出しない、開かない、あるいはゲームが読み込めないものをエクスポートした場合は、ぜひ教えてください — 詳しくは最後に。
YU-RIS エンジンとは実際に何か
YU-RIS(ゆーりす と表記されることもあります)は、raiL-soft による日本語ビジュアルノベルスクリプトエンジンです。完成したゲームは Windows の .exe と、一連の .ypf パッケージアーカイブ — たいてい pac/ フォルダにあり、アート、音声、スクリプトを保持します。シナリオは YSTB と呼ばれるバイナリフォーマットに コンパイル され、ysbin.ypf 内の .ybn ファイル(ysbin/yst00000.ybn のような内部パス)として格納されています。その「パックされたアーカイブ内のコンパイル済みシナリオ」という組み合わせこそが、このエンジンの膨大なバックカタログを通常の機械翻訳ツールの手の届かないままにしてきたものです。
なぜ YU-RIS ゲームは翻訳が難しかったのか
Ren’Py のようなソース駆動エンジンと比べると、YU-RIS はテキストをいくつもの層の背後に隠します:
- すべてが `.ypf` パッケージの中にある。 スクリプトはルーズではなく — 難読化されたファイル名と zlib 圧縮されたエントリで、YU-RIS 独自のコンテナにパックされています。そのフォーマットのリーダーがなければ、編集するものがありません。
- シナリオはテキストではなくコンパイル済み。
.ybnは 4 つのセクション(命令ストリーム、引数記述子テーブル、文字列テーブル、行番号)に分かれたバイナリYSTBコンテナです。日本語は文字列テーブルにあり、記述子から参照されます。 - スクリプトは XOR 暗号化されている。 各
YSTBの 4 つのセクションは、ゲームごとに異なる 4 バイトのキーでスクランブルされています。テキストが読める前に、それを復元する必要があります。 - すべての文字列がセリフとは限らない。 文字列テーブルには、変数名、アセットパス、スクリプトが比較する式のオペランドも含まれます — 1 つ翻訳すると、フローが静かに壊れます。
総合的な結果:流暢な読み手でさえ、専有アーカイブを展開し、コンパイル済みバイナリをパースし、XOR を破り、それからセリフとエンジンの内部文字列を見分けなければなりません — 1 行を翻訳する前に、です。それが RuneTranslate があなたの代わりに行う作業です。
RuneTranslate が今できること
RuneTranslate はパイプライン全体を純粋な TypeScript で処理します — 外部ツールなし、Python サイドカーなし、インストールするものなし:
- `.ypf` パッケージを直接読む。 アーカイブを内製で開き、エントリを展開し、難読化されたファイル名を復元します — GARbro 不要。自分でゲームをすでに展開済みですか? ルーズな
ysbin/フォルダの.ybnスクリプトも検出されます。 - コンパイル済み `YSTB` スクリプトをパースし、暗号化を破る。 引数記述子テーブルから各スクリプトの 4 バイト XOR キーを 自動的に 復元し、Shift-JIS 文字列テーブルをデコードし、スクリプトファイルごとにグループ化してすべての日本語の行を一覧します。
- セリフと機構を見分ける。 変数名、アセットパス、式のオペランドは表示されますが デフォルトで除外 され、赤いオプトイン行になるので、ストーリーロジックが比較する文字列を翻訳することはありません。
- インライン制御コードを保持する。 バックスラッシュコード(改行、色、ルビ)と角括弧タグは、プロバイダーが見る前に数字プレースホルダーの背後にマスクされ、その後正確に復元されます。
- 再パックなしでエクスポートする。 翻訳された各スクリプトを再構築し — 長いまたは短い翻訳が収まるよう文字列テーブルのオフセットをパッチし、XOR キーを再適用し — それから
.ybnを元のアーカイブパスにルーズに書きます。YU-RIS はパックされたコピーよりルーズなファイルを優先するので、ゲームはあなたの翻訳を読むだけです — 私たちの Kirikiri や Artemis のフローと同じルーズファイルのオーバーライドです。
日本語 → 英語が最も得意 ですが、30 以上の言語 をターゲットにできます。
必要なもの
- Windows 版 RuneTranslate — 無料。すべてのエンジンとプロバイダーが解放されています(無料ティアは機能ではなく速度がスロットルされます)。
- YU-RIS のゲームフォルダ — ゲームの
yu-ris.exeとその.ypfパッケージ(通常はpac/にあり、スクリプトはysbin.ypfに)があるディレクトリ。 - ターゲット言語 — 英語、スペイン語、フランス語、ドイツ語、中国語、その他 30 以上。
- 1 つのプロバイダー。無料の Google Translate はそのまま使えます。DeepL には無料ティアがあります。OpenAI、Anthropic、ローカルモデル、あらゆる OpenAI 互換 API は自分のキーを用意するタイプです。YU-RIS のゲームはセリフが多いので、LLM または DeepL が最もよく読めます。
ステップ 1: ゲームフォルダを開く
RuneTranslate を起動し、新規プロジェクト をクリックして、YU-RIS のゲームディレクトリに向けます。検出は自動的に実行されます — .ypf パッケージ(またはルーズな ysbin/ フォルダの .ybn スクリプト)を見つけると、プロジェクトを YU-RIS と認識します。元のゲームフォルダは決して変更されません。
ステップ 2: スクリプトがどう読まれるか
RuneTranslate は .ypf パッケージを開き、ysbin.ypf からコンパイル済み YSTB スクリプトを取り出し、各スクリプトの XOR キーを復元し、Shift-JIS 文字列テーブルをデコードします — ファイルごとにグループ化して、すべての日本語の行をエディターに一覧します。エンジンの内部文字列(変数名、アセットパス、式のオペランド)は表示されますがデフォルトで除外され、インライン制御コードは数字プレースホルダーの背後にマスクされるので、プロバイダーがそれらを壊すことはありません。
ステップ 3: 翻訳
プロバイダーを選んで実行します。LLM(OpenAI / Anthropic) はキャラクターの声とトーンに最適で、DeepL はナレーションを高速かつクリーンに、無料の Google Translate は短いメニュー文字列や選択肢に十分です。名前が同一に表示されるよう、キャストを事前に用語集化しましょう — 用語集 101 を参照。完了したら、AI リファイナー で任意のパスを実行すると、各行を文脈の中で読み直し、MT が残しがちな堅く直訳的な言い回しを引き締めます。
ステップ 4: すぐ実行できるコピーをエクスポート
エクスポート をクリックします。RuneTranslate は、再構築した各 .ybn を元のアーカイブパスにルーズに配置し、手を加えていない .ypf パッケージと並べて、ゲームの翻訳済みコピーを書き出します。再パックはありません — YU-RIS はパックされた元のものよりルーズなスクリプトを優先して読み込むので、ゲームはあなたの翻訳を読むだけです。実行すれば、ターゲット言語でプレイできます。
既知の制限
- YU-RIS の文字列は Shift-JIS(cp932)です。 英語やその他 cp932 で表現可能なターゲットはきれいにエクスポートされます。cp932 の範囲外のターゲット — 拡張キリル文字、韓国語、繁体字中国語 — は、まだ自動化されていないゲームフォント/エンコーディングのハックが必要です。
- ルーズファイルのオーバーライドが想定される読み込みパス で、ほとんどの YU-RIS ゲームで機能します。エンジンがパックされたコピーよりルーズなスクリプトを優先するからです。それを尊重しない稀なタイトルでは、エクスポートに調整が必要かもしれません — まさに私たちがまだ確認中の実ゲーム挙動です。
- 画像アートに焼き込まれたテキスト — ビットマップとして描かれたタイトル画面やメニューボタン — はスクリプトテキストではなくピクセルです。それには 画像テキスト翻訳 を参照してください。
- 正確なアーカイブとスクリプトのバリアントはリリースごとに異なる場合があります。必ず自分の具体的なコピーで検証してください。
できたばかりです — 壊れたら教えてください
繰り返す価値があります:YU-RIS 対応は 新規追加 で、多くの実在ゲームではまだテストされていません。.ypf リーダー、YSTB パーサー、キー復元は構築され、ユニットテスト済みですが、このエンジンには私たちがすべて見たわけではないスタジオごとの長年のばらつきがあります。ですので、RuneTranslate を YU-RIS のゲームに向けて、検出しない、アーカイブを開かない、何も抽出しない、あるいはゲームが読み込めないものをエクスポートした場合は、Discord で報告してください — ゲーム名とパッケージ方法があると、私たちが最速で堅牢化できます。
RuneTranslate をダウンロードし、ずっと読みたかったあの YU-RIS VN に向けて、試してみてください。別のアーカイブベースの VN エンジンについては、次に Artemis ウォークスルー を読んでください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード
