対応エンジン · Unity
現代の日本のインディー・同人ゲームの大きな割合 — RPG、ビジュアルノベル、シミュレーション — が Unity で出荷されています。RuneTranslate はそうしたゲームが外部化するテキストを翻訳します:TextAsset のペイロード(JSON / CSV / TSV / プレーンテキストのシナリオブロブ)と、.assets、level ファイル、AssetBundles(単一バンドルの data.unity3d ゲームを含む)にパックされた MonoBehaviour 文字列フィールド、加えて StreamingAssets 配下のルーズなスクリプトファイル。バイナリのアセットファイルの読み書きは同梱の UnityPy ランタイムが処理し、すべてがプロジェクトごとのワークスペースで動作するので元のゲームはそのまま保たれます。Mono ビルドでは、埋め込みの型ツリーを持たないビルドでも MonoBehaviour フィールドが読めます — RuneTranslate がゲームの Managed/*.dll からそれらを生成します。対象外:ゲームのコード(Assembly-CSharp.dll)にコンパイルされたテキストと、IL2CPP ビルドの MonoBehaviour フィールド。再配布の前に実際のゲームで検証してください。
Unity の VN/RPG スクリプトは通常 JSON や CSV テーブルとして外部化されるため、キャラクター名や繰り返し登場する用語が多くの TextAsset にまたがって何百回も現れます。プロバイダーはバッチごとに一貫性なく言い換えます。主人公、パーティ、常連 NPC、地名、必殺スキルやシステム用語を最初に用語集へ登録し、すべての TextAsset と StreamingAssets ファイルで同一に表示されるようにしましょう。 用語集の基本 →
ゲームディレクトリ(<Name>_Data フォルダーを含むもの)を RuneTranslate に指定します。エンジン検出は globalgamemanagers / data.unity3d / resources.assets を探します。同梱の UnityPy ランタイムが自動で使われます — 別途 Python のインストールは不要です。
RuneTranslate はシリアライズされたファイルからソース言語(既定は日本語;プロジェクトごとに対応する任意のソース言語を設定)の TextAsset と MonoBehaviour 文字列、加えて StreamingAssets 配下のルーズなスクリプトファイルをスキャンします。構造化ペイロード(JSON / KAG / HTML)は個々の翻訳可能な行に分割され、ファイル構造がそのまま往復します。
DeepL はナレーション主体のセリフに強い既定です。OpenAI GPT-4o や Anthropic Claude は様式化された話し言葉やオノマトペをうまく扱います。無料の Google Translate やローカルモデル(Ollama / LM Studio)はメニュー文字列やアイテム名をカバーします。プロバイダールーティングで短い文字列を安価なレーンに振り分けられます。
エクスポート時、RuneTranslate はゲームをコピーし、翻訳済み文字列をアセットファイルと StreamingAssets スクリプトにその場で書き戻します。翻訳済みビルドは元と同じように動作します — 手動でのアセット操作は不要です。