TyranoBuilder / TyranoScript ゲームを英語に翻訳する方法
RuneTranslate で TyranoBuilder / TyranoScript のビジュアルノベルを英語に翻訳するステップバイステップガイド — data/scenario/*.ks スクリプトの抽出、KAG タグのマスキング、キャラクター表示名の翻訳、そしてプレイ可能な HTML5 または Electron ビルドの書き出し。
TyranoBuilder と、その基盤となる TyranoScript エンジンは、数多くの日本のインディービジュアルノベルを動かしています — Kirikiri や Ren'Py に対するウェブ技術(HTML5 / JavaScript)の代替であり、ゲームをスタンドアロンの HTML5 フォルダとしても、Electron でラップした実行ファイルとしても配布します。そのシナリオは Kirikiri と同じ KAG 形式の .ks スクリプト構文を使うため、テキストがどこにあるかさえ分かれば簡単にたどり着けます。このガイドでは、RuneTranslate を使って TyranoBuilder ゲームを最初から最後まで翻訳する流れを、ほとんどのツールが見落とすエンジン固有の要素である キャラクター表示名 を含めて解説します。
必要なもの
- Windows 版 RuneTranslate — 無料で、すべてのエンジンとプロバイダーがアンロック済みです。
- TyranoBuilder のゲーム。スタンドアロンの HTML5 フォルダ(ルートに散在する
data/とtyrano/ディレクトリ)か、Electron でラップしたビルド(tyrano/tyrano.jsとdata/scenario/*.ksを含むresources/app.asar)のいずれか。RuneTranslate は両方を検出します。 - ターゲット言語 — 英語、スペイン語、フランス語、ドイツ語、ポルトガル語、ロシア語、中国語、イタリア語、トルコ語、ベトナム語、ほか20以上。
- 翻訳プロバイダーを1つ。ビジュアルノベルはセリフが多いため、LLM(OpenAI / Anthropic)または DeepL が最も自然に読めることが多く、無料の Google Translate も設定なしですぐに使えます。
ステップ1:ゲームフォルダを開く
RuneTranslate を起動し、新規プロジェクト をクリックして、ゲームのディレクトリ(Electron でラップしたビルドの場合は .exe を含むフォルダ)を指定します。エンジン検出が自動的に実行され、tyrano/ ランタイムと data/scenario/ スクリプトから TyranoBuilder を認識します。Electron ビルドの場合、RuneTranslate は app.asar を直接読み込むので、何も展開する必要はありません。元のゲームが変更されることは一切ありません。
ステップ2:文字列がどのように抽出されるか
RuneTranslate は、TyranoBuilder がテキストを保存しているあらゆる場所から翻訳可能なテキストを取り出します:
- シナリオスクリプト —
_preview.ksや、暗号化ビルドのゲームが依存するsystem/_*.ksのミラーを含む、すべてのdata/scenario/**/*.ksファイル。 - UI と設定 —
tyrano/lang.jsのインターフェース文字列とdata/system/Config.tjs。 - キャラクター表示名 — セリフの上に表示される話者ラベル(次のセクションを参照)。
KAG のインラインタグ — [r] の改行、[p] のクリック待ち、[改ページ] のページ送り、[font color=...]、その他の日本語名タグ — は、何かがプロバイダーに届く前に数値の [[U#]] プレースホルダーの背後にマスクされ、書き出し時に復元されるため、エンジンの書式はそのまま保たれます。バイナリまたは暗号化された .ks ファイルは UTF-8 判定で検出され、上書きされることはありません。
ステップ3:キャラクター名 — Tyrano 固有の部分
TyranoBuilder のシナリオでは、話者を [yuki] のようなインラインの短縮形で指定することがよくあります — これは表示テキストではなくキャラクターの ID です。RuneTranslate はこうしたインライン参照を決して書き換えません(書き換えるとエンジンのキャラクター検索が壊れ、シーンがクラッシュします)。代わりに、キャラクターの表示名を翻訳し、書き出し時に正しい [chara_new name=... jname=...] エントリを data/system/chara_define.ks に注入します。その結果、画面に 表示される 名前は翻訳され、スクリプトがそのキャラクターを見つけるために使う ID は手つかずのまま残ります。
ステップ4:翻訳とレビュー
プロバイダーを選んで実行します。OpenAI GPT-4o や Anthropic Claude はキャラクターの声色や個性的な話し方に最も自然で、DeepL はナレーションに速く整っており、無料の Google Translate はメニューをカバーします。名前がすべてのルートで同一に表示されるよう、まず登場人物と繰り返し使う用語を用語集にまとめておきましょう — Glossary 101 を参照してください。すべての行は原文の隣のエディターに表示されます。インラインで編集し(フォーカスが外れたときや Ctrl+Enter で保存)、検索と置換を使い、あるいは任意の AI リファイナー を実行して文脈を踏まえた2回目の校正を行えます。無料プランの RuneTranslate は有料版よりおよそ 3–4× 遅く制限されています — 出力品質は同じです。
ステップ5:プレイ可能なビルドを書き出す
書き出し をクリックします。スタンドアロンの HTML5 ゲームの場合、RuneTranslate は翻訳済みの .ks スクリプト、lang.js、設定、そして注入した chara_define.ks をゲームのコピーに書き込みます。Electron でラップしたゲームの場合は、変更した app.asar を再パックします。いずれの場合も、出力は選んだ場所にある完全で実行可能なコピーです — 起動すればターゲット言語でプレイできます。
既知の制限
- 暗号化された
.ksファイル(非 UTF-8 として検出)はそのまま残されます — ビルドがシナリオを暗号化している場合、それらの行は翻訳されません。 - 画像内のテキスト(ロゴ、手描きの UI、CG のキャプション)は翻訳されません — 機械翻訳の範囲外です。
- 実行時にセリフ文字列を組み立てるカスタムプラグインは、エディターでの手早い手直しが必要になる場合があります。
従来のやり方より簡単な理由
手作業のやり方では、app.asar を展開し、(見落としやすいシステムミラーを含む)すべての .ks ファイルを見つけ、KAG タグを避けながら手で翻訳し、話者ラベルが実際に変わるようキャラクター名の注入を解明し、それから asar を壊さずに再パックする必要がありました。RuneTranslate はこの一連の流れを数クリックにまとめ、エディターを開いたままにして表現を自分でコントロールできるようにします。
全機能一覧については TyranoBuilder エンジンページを見る、関連する KAG エンジンについては Kirikiri ガイド を読むか、RuneTranslate をダウンロード して実際のゲームで試してみてください。
RuneTranslate を試してみませんか?
無料プランですべてのエンジンとすべての翻訳プロバイダーが使えます。Supporter(月額 $3)ならフルスピードで翻訳できます。
Windows 版をダウンロード