対応エンジン · NScripter / ONScripter
NScripter(Naoki Takahashi 製)は、日本語同人および商業ビジュアルノベルの大きな一角がオーサリングされた、クローズドソースの Windows エンジンです。ONScripter はオープンソース(GPL)のクロスプラットフォームランタイム — Linux、macOS、Android、ONScripter-EN、Ponscripter — で、ファン翻訳者が実際に翻訳済みビルドを出荷するものです。RuneTranslate は両方をカバーします。ゲームのルーズなスクリプト — すべてのバイトが 0x84 に対して XOR された nscript.dat または pscript.dat、あるいはプレーンテキストの 0.utf / 0.txt — を読み、Shift-JIS / CP932(または UTF-8)のセリフをデコードし、すべての翻訳可能な行を一覧し、エクスポート時に再エンコードして、元の .dat が使っていた場合は再難読化(XOR 0x84)し、エンジンがどのアーカイブより上に読み込むルーズなスクリプトを書きます。翻訳された英語の行がコマンドと誤解析されないよう(古典的な NScripter の罠)1 バイトのテキストマーカーを自動的に適用し、画像テキスト OCR 経由で、タイトル画面、メニュー、ボタンに焼き込まれたソース言語のテキスト(デフォルトは日本語)を翻訳します。ほとんどのゲームはスクリプトをルーズに出荷します(完全対応)。.nsa / .sar アーカイブの中だけにパックされたスクリプトはまだ読まれず、SPB 圧縮の画像アートはまだ堅牢化中です。再配布する前に実在のゲームで検証してください。
ビジュアルノベルは何千もの行にわたって固定のキャストと繰り返し出る用語に頼り、機械翻訳はヒロインの名前を 3 つの章で 3 通りに綴ります。キャラクター、地名、繰り返し出る用語を事前に用語集化して、すべてのセリフの行とすべてのメニューがそれらを同一に表示するようにしましょう。 用語集の基本 →
RuneTranslate をゲームディレクトリ — ゲームの .exe(または ONScripter バイナリ)、スクリプト(nscript.dat、pscript.dat、またはプレーンテキストの 0.utf / 0.utf.txt / 0.txt)、そして .nsa / .sar アーカイブがあるフォルダ — に向けます。検出はそれらのスクリプトマーカーをキーにします — 素の 0.txt や単独の .nsa だけでは不十分で、裏付けとなる NScripter シグナル(エンジンフォント、ONScripter バイナリ、本物のスクリプトファイル)が必要です。元のフォルダは決して変更されません。
RuneTranslate は nscript.dat / pscript.dat を 0x84 に対して un-XOR し(またはプレーンテキストの 0.utf / 0.txt を直接読み)、Shift-JIS / CP932(または UTF-8)のテキストをデコードし、すべての翻訳可能な行をファイルごとにグループ化してエディターに一覧します。エンジンのマークアップとコマンドトークンは数字プレースホルダーの背後にマスクされるので、プロバイダーがそれらを壊すことはありません。
これらのゲームはセリフが多くトーンに敏感なので、たいてい 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 で実行すると、あなたの言語でプレイできます。