対応エンジン · GameMaker
GameMaker のゲーム(古いリリースは GameMaker Studio として販売されていました)は、コンパイル済みのデータを 1 つのファイルにまとめています。Windows では data.win、Linux では game.unx、macOS では game.ios です。RuneTranslate はこのファイルを、サードパーティ製ツールや sidecar を使わずに自分で読み書きします。各文字列をゲームのバイトコード上でたどり、描画関数やメッセージ関数に届くかどうかを調べるので、プレイヤーが目にするテキストだけが翻訳の対象になり、検索用のキー、ファイル名、ゲームが比較に使う文字列には手を触れません。ゲームに同梱された言語ファイル(JSON、CSV、INI / key=value、Yarn と Chatterbox のダイアログ)や gettext の .po / .mo カタログも取り込まれ、マークアップと制御コードはプレースホルダーの裏にマスクされるため、プロバイダーが壊すことはできません。翻訳には DeepL、LLM(OpenAI / Anthropic)、無料の Google 翻訳、ローカルモデルなど、好きなプロバイダーを使えます。書き出し時、翻訳にゲームのフォントにない文字(キリル文字、ベトナム語、中国語、日本語、韓国語、タイ語、アクセント付きラテン文字)が必要な場合は、RuneTranslate がそれらのグリフをゲーム自身のフォントに合うスタイルで追加します。日本語、中国語、タイ語では、テキストボックスの幅がゲームから裏付けられた位置でのみ改行します。書き出しはどれも、何かを置き換える前に読み直され、バイト単位で検証されます。GameMaker は新しく追加されたエンジンで、GameMaker Studio 1.4、GameMaker Studio 2.3、GameMaker 2022 LTS、2023、2024 で作られた実際のゲームでエンドツーエンドの検証を行いました。YYC(ネイティブコード)でコンパイルされたゲームは例外で、言語ファイルとフォントは翻訳できますが、コード内のテキストには届きません。ソース言語は既定で日本語で、プロジェクトごとに設定できます。
GameMaker のゲームでは、キャラクター名、アイテム名、メニュー用語がデータファイルと言語ファイルにまたがって繰り返し登場します。どの行でも同じ訳になるよう、先に用語集へ登録しておきましょう。 用語集の基本 →
RuneTranslate をゲームのディレクトリに向けます。Windows では data.win、Linux では game.unx、macOS ビルドでは game.ios が入っているフォルダーです。検出はデータファイルを自動で認識し、ゲームを開いても何も変更されません。ゲームがインストーラーで配布されている場合は、先にインストールしてください。1 つの実行ファイルにまとめられた GameMaker Studio 1.4 のゲームは、書き出し時に通常のゲームフォルダーへ展開されます。
RuneTranslate はデータファイルをサードパーティ製ツールや sidecar なしで自分で読み取り、各文字列をゲームのバイトコード上でたどって、描画関数やメッセージ関数に届くかどうかを調べます。プレイヤーが目にするテキストが翻訳単位になり、検索用のキー、ファイル名、ゲームが比較に使う文字列には手を触れません。ゲームに同梱された言語ファイル(JSON、CSV、INI / key=value、Yarn と Chatterbox のダイアログ)や gettext の .po / .mo カタログも一覧に載ります。
DeepL、LLM(OpenAI / Anthropic)、無料の Google 翻訳、ローカルモデルのいずれかで翻訳します。マークアップと制御コードはプレースホルダーの裏にマスクされるため、プロバイダーが並べ替えたり、削除したり、翻訳したりすることはなく、翻訳メモリが繰り返しの行を再利用します。
翻訳済みのコピーを別のフォルダーに、または(一部の Steam ゲームで必要な)その場で書き出します。翻訳にゲームのフォントにない文字が含まれる場合、書き出しはそれらのグリフをゲーム自身のフォントに合うスタイルで追加します。日本語、中国語、タイ語では、テキストボックスの幅がゲームから裏付けられた位置でのみ、禁則処理に従って改行します。macOS または Linux のビルドでは、変更されたファイルだけを書き出すので、それをインストール先にコピーして上書きします。
書き出しはどれも、何かを置き換える前に読み直され、バイト単位で検証されます。翻訳済みのゲームを起動し、共有する前にセリフ、メニュー、フォントをゲーム内で確認してください。