対応エンジン · NScripter / ONScripter
NScripter(高橋直樹 作)は、日本の同人・商業ビジュアルノベルの大部分が制作されたクローズドソースの Windows エンジンです;ONScripter はオープンソース(GPL)のクロスプラットフォームランタイム — Linux、macOS、Android、ONScripter-EN、Ponscripter — で、ファン翻訳者が実際に翻訳済みビルドを出荷する先です。RuneTranslate は両方をカバーします。ゲームのルーズなスクリプト — すべてのバイトが 0x84 で XOR された nscript.dat、またはプレーンテキストの 0.txt — を読み取り、Shift-JIS / CP932 のセリフをデコードし、翻訳可能なすべての行を一覧し、エクスポート時に元の .dat が使っていた場合は再エンコード・再難読化(XOR 0x84)して、エンジンがアーカイブより優先して読み込むルーズなスクリプトを書き出します。翻訳された英語の行がコマンドとして誤解析されないよう(NScripter の古典的な罠)1 バイトのテキストマーカーを自動適用し、画像テキスト OCR でタイトル画面、メニュー、ボタンに焼き込まれたソース言語テキスト(既定は日本語)を翻訳します。ほとんどのゲームはスクリプトをルーズに出荷し(完全対応)、.nsa / .sar アーカイブ内にのみパックされたスクリプトはまだ読めず、SPB 圧縮の画像アートは現在も堅牢化中です。再配布の前に実際のゲームで検証してください。
ビジュアルノベルは何千行にもわたる固定キャストと繰り返される用語に依存し、機械翻訳はヒロインの名前を3つの章で3通りに綴ります。キャラクター、地名、繰り返される用語を最初に用語集へ登録し、すべてのセリフとメニューで同一に表示されるようにしましょう。 用語集の基本 →
ゲームディレクトリ — ゲームの .exe(または ONScripter バイナリ)、スクリプト(nscript.dat またはルーズな 0.txt)、.nsa / .sar アーカイブを含むフォルダー — を RuneTranslate に指定します。エンジン検出が自動認識します;元のフォルダーは決して変更されません。
RuneTranslate は nscript.dat を 0x84 で un-XOR し(またはルーズな 0.txt を直接読み取り)、Shift-JIS / CP932 のテキストをデコードし、翻訳可能なすべての行をファイル別にグループ化してエディターに一覧します。エンジンのマークアップとコマンドトークンは数値プレースホルダーの背後にマスクされ、プロバイダーが壊すことはありません。
これらのゲームはセリフが多く口調に敏感なので、LLM(OpenAI GPT-4o / Anthropic Claude)や DeepL が最もよく読めます;無料の Google Translate やローカルモデル(Ollama / LM Studio)は短いメニュー文字列をカバーし、OpenAI 互換プロバイダーを OpenRouter や NanoGPT に向けられます。オプションの AI リファイナーによる 2 回目のパスが逐語的な言い回しを引き締めます。
NScripter の UI の多くは事前レンダリングされたアートなので、タイトル画面やボタンの日本語は文字列ではなくピクセルです。画像上の各テキストを枠で囲み、認識し、翻訳すると、エクスポート時に翻訳済み画像がルーズに書き出され、エンジンが .nsa アーカイブより優先して読み込みます。
エクスポート時、RuneTranslate はゲームをコピーし、翻訳済みスクリプトをルーズファイルとして書き戻します — Shift-JIS / CP932 に再エンコードし、元の .dat が使っていた場合は XOR 0x84 で再難読化し、1 バイトのテキストマーカーを適用 — 加えて翻訳済み画像をその隣にルーズに置きます。エクスポートしたコピーを NScripter または ONScripter で実行すると、あなたの言語でプレイできます。