The Spirit and the Mouse

The Spirit and the Mouse

Zbyt mało ocen
日本語翻訳ツール導入手順(XUnity Auto Translator)
Autorstwa: mofuzoh
2023年前半に日本語対応がアナウンスされているこのゲームですが、早く遊んでみたい!! という方のために、Unity製ゲーム向けの翻訳ツール導入手順をまとめます。
   
Przyznaj nagrodę
Ulubione
Ulubione
Usuń z ulubionych
はじめに
2023/10/25 に正式に日本語対応されましたので、
このガイドの手順は不要です


The Spirit and the Mouse が・・・

このゲームは Unity で製作されているため、Unity製ゲーム用のリアルタイム翻訳ツール「XUnity Auto Translator」が使えます。
ただ、レビューにも書きましたが、単にツールを導入しただけでは、以下の問題があります。
  • アイコン表示用のタグが誤翻訳され、タグが表示されてしまう(このガイドで解決済み!
  • 色指定タグが単語を分断してしまうため、翻訳精度が下がる(未解決
前者はこのガイドの手順で導入することにより解決します。
後者は厄介ですが、文意はだいたい掴めますので、遊ぶのに大きな支障はないでしょう。

日本語版がリリースされれば、このツールも使う必要はなくなりますが、何か月も待てない!という方は、是非試してみてください。画面キャプチャー系翻訳ツールと違って、リアルタイム(※初回翻訳時は少しタイムラグがあります。一度翻訳されたものは瞬時に表示されます)で日本語表示されるのは快適です。
更新履歴
翻訳ファイル _AutoGeneratedTranslations.txt の更新履歴


Ver 1.02 (2022.10.6) ... ゲームクリアまでの表示がおかしくなる箇所を一通り修正

Ver 1.01 (2022.10.5) ... 原文のスペルミスがSteamのNGワードでフィルタリングされてしまっていたものを正規表現で回避

Ver 1.00 (2022.10.4) ... 初回公開版:開発元クレジット誤り訂正 / アイコン表示タグ誤り解消(キーボード / Xboxコントローラー / PS4コントローラー) / UI周りで気になった箇所のみ翻訳
Steamガイドの文字数制限もあるので、UI全てを翻訳はしていません。意味不明な翻訳になるクイズ文をおまけで翻訳してあります。


※翻訳にあたっての前提事項
  • ゲーム進行に問題がなく遊べる最小限の翻訳を行い、それ以外は機械翻訳に任せています。
  • 翻訳エンジンはツール標準設定の GoogleTranslateV2 を使う前提になっています。それ以外の翻訳エンジンを選択した場合や、GoogleTranslateの翻訳内容に変更が発生した場合は、正常に表示されなくなる可能性があります。
導入手順

1.ゲームのインストール先フォルダを確認
ファイル操作を行うので、ゲームのインストール先を確認しておきましょう。

Steamのゲーム一覧またはライブラリからゲームを選んで右クリック、
管理-ローカルファイルを閲覧 を実行


ゲームがインストールされているフォルダが開きます。

標準インストール時は、
C:\Program Files (x86)\Steam\steamapps\common\The Spirit And The Mouse
になります。
2.MelonLoader のダウンロードとゲームへの適用
XUnity Auto Translator はMODになっていますので、Unity用MODの導入ツールが必要です。
ここでは使い方が簡単な MelonLoader というツールを利用します。

① ダウンロード
以下のリンクから、Githubのページを開く
https://github.com/LavaGang/MelonLoader

画面右側の、「Latest」をクリック (ダウンロードページを直接紹介しないのは、最新版を取得するためです)


MelonLoader.Installer.exe を好きなフォルダにダウンロード


② インストール
ダウンロードした、MelonLoader.Installer.exe を実行(※セキュリティの警告が出るかもしれませんが続行してください)し、SELECT ボタン(ゲームの選択)を押す


手順1で調べておいたインストール先フォルダを指定し、ゲーム本体
TheSpiritAndTheMouse.exe
を選択


そのまま INSTALL ボタンを押す (設定の変更は不要)


以下のメッセージが出たら、OKボタンを押す


ゲームのフォルダにいくつかのフォルダとファイルが作成され、インストールは完了です。
3.XUnity Auto Translator のダウンロードとゲームフォルダへの配置
XUnity Auto Translator 本体と代替フォントを導入します。(解凍してコピーするだけです)
MelonLoader を使うので、ツールも MelonLoader 用を選びます。

① ダウンロード
以下のリンクから、Githubのページを開く
https://github.com/bbepis/XUnity.AutoTranslator

画面右側の、「Latest」をクリック


2つのファイルをダウンロードして、解凍
TMP_Font_AssetBundles.zip を好きなフォルダにダウンロードして解凍
XUnity.AutoTranslator-MelonMod-x.x.x.zip を好きなフォルダにダウンロードして解凍
※ x.x.xの部分はバージョン番号


zipファイルを解凍すると、以下のファイルとフォルダができます。
・TMP_Font_AssetBundles.zip
 → arialuni_sdf_u2018
   arialuni_sdf_u2019
・XUnity.AutoTranslator-MelonMod-x.x.x.zip
 → Mods (フォルダ)
   UserLibs (フォルダ)

② 解凍したツールを導入(コピー)
2つのファイルと2つのフォルダを、ゲーム本体と同じ場所にコピー


これで準備完了です。
4.初期設定
① 初期化
ゲームを一度起動して、すぐ終了してください(何かキーを押してメニュー表示 ⇒ Quit )。
※翻訳ツールの導入が成功していれば、画面上に文字がいっぱい出るウィンドウが表示されます。これは、MODのログ表示なので気にしないでください。

② 設定ファイルの変更
XUnity Auto Translator が翻訳に必要なファイルを自動生成しています。
Config.ini をメモ帳などで開いて、初期設定をしてください。

標準インストール時の Config.ini ファイルの場所は、
C:\Program Files (x86)\Steam\steamapps\common\The Spirit And The Mouse\AutoTranslator
になります。

[General] セクションの以下の2行を編集。
en(英語) と ja(日本語) を入れ替える
Language=ja FromLanguage=en

[Behaviour] セクションの以下の3行を編集。
翻訳テキストの最大文字数を1000に。代替フォントを指定(2018と2019どちらでも使えそうですが、2018の方が高さが揃っているので2018を使います)
MaxCharactersPerTranslation=1000 OverrideFontTextMeshPro=arialuni_sdf_u2018 FallbackFontTextMeshPro=arialuni_sdf_u2018
※このゲームは2018が適しているようですが、もし正しく表示されない文字があれば、2019に変更しましょう。その場合、2行とも同じフォントを指定するのが正しい設定のようです。

③ 翻訳動作の確認
ゲームを起動して、何かキーを押し、最初のメニューが日本語に翻訳されることを確認してください。確認できたら、ゲームを終了します。
(これを行わないと、次の作業で編集するファイルが作られません)
5.翻訳済ファイルの編集
最初に説明した通り、このゲームはテキスト中にタグが含まれているため、正常に翻訳されない箇所が出てきます。アイコン表示などのUI周りのおかしな表示を一通り修正した翻訳結果を用意しましたので、以下の手順で設定してください。自分で修正する手間を省けます。

ツールが自動生成する翻訳ファイル _AutoGeneratedTranslations.txt をメモ帳などで開いて、次項の内容に置き換えてください。
(※すでに書かれている内容を消去して、全行を貼り付けてください)

標準インストール時の _AutoGeneratedTranslations.txt ファイルの場所は、
C:\Program Files (x86)\Steam\steamapps\common\The Spirit And The Mouse\AutoTranslator\Translation\ja\Text
になります。
_AutoGeneratedTranslations.txt の内容
Ver 1.02
©2022 - Alblune / Armor Games Studio=©2022 - Alblune / Armor Games Studio r:"^<sprite\="KeyBoard-Filled" name\="(.+)">$"="<sprite\="KeyBoard-Filled" name\="$1">" r:"^<sprite\="Xbox-Filled" name\="(.+)">$"="<sprite\="Xbox-Filled" name\="$1">" r:"^<sprite\="DualSense-Filled" name\="(.+)">$"="<sprite\="DualSense-Filled" name\="$1">" r:"^Last saved: ([0-9]+) seconds ago"=$1秒前にセーブ済み r:"^Kibblins helped: ([0-9]+\/[0-9]+)$"=助けたキブリン $1 r:"^Unlocks at <sprite\=4> ([0-9]+)$"=<sprite\=4> $1個でロックが解除されます r:"^Find ([0-9]+) <sprite\=4> to unlock this!"=ロックを解除するために、$1個の <sprite\=4> を見つけてください! r:"^Purchase for <sprite\=0>([0-9]+)?"=<sprite\=0>$1 で購入しますか? <style\="controls/interact">=<style\="controls/interact"> <style\="controls/menu"> Journal=<style\="controls/menu"> 履歴 <style\="controls/map"> Map=<style\="controls/map"> 地図 <style\="menu/cancel> Back=<style\="menu/cancel> 戻る <style\="menu/submit> Confirm=<style\="menu/submit> 確認 <style\="menu/up"> <style\="menu/down"> Select=<style\="menu/up"> <style\="menu/down"> 選択する Move <style\="controls/look"> to look around.=<style\="controls/look"> で周囲を見渡す。 To climb <color\=#73B9FF>Small Ledges</color> walk towards them.=<color\=#73B9FF>小さな段差</color>を越えるには、そのまま向かって歩いてください。 Press <style\="controls/interact"> to <color\=#73B9FF>Climb</color> Ledges.=<style\="controls/interact"> を押して段差を <color\=#73B9FF>登る</color>。 Press <style\="controls/interact"> near a <color\=#73B9FF>Lattice</color> to climb on it.=<color\=#73B9FF>格子</color> の近くで <style\="controls/interact"> を押して登る。 <style\="controls/crouch">=<style\="controls/crouch"> <style\="menu/submit"> Track=<style\="menu/submit"> 追跡 <style\="menu/pageleft">=<style\="menu/pageleft"> <style\="menu/pageright">=<style\="menu/pageright"> <style\="menu/cancel"> Resume=<style\="menu/cancel"> 再開 <style\="controls/map"> Stuck?=<style\="controls/map"> 迷っていますか? Press <style\="controls/squeak"> to squeak.=<style\="controls/squeak"> を押して鳴く。 <style\="controls/shock">=<style\="controls/shock"> Press <style\="controls/menu"> to open your <color\=#73B9FF>Quest Journal</color>.=<style\="controls/menu"> を押してあなたの <color\=#73B9FF>クエスト履歴</color>を参照します。 <style\="menu/submit"> Untrack=<style\="menu/submit"> 追跡を止める <style\="menu/Cancel"> Cancel=<style\="menu/Cancel"> キャンセル <style\="menu/pageleft"> Erase=<style\="menu/pageleft"> 消去 Press <style\="controls/map"> to see the Kibblin's location on your map.=<style\="controls/map"> を押して、マップでキブリンの位置を確認してください。 Press <style\="controls/speakFollower"> to speak with your follower.=<style\="controls/speakFollower"> を押して相手と会話します。 <style\="menu/submit"> Track Quest=<style\="menu/submit"> クエストの追跡 <style\="menu/cancel"> Exit=<style\="menu/cancel"> 閉じる <sprite\=13> Move Backward=<sprite\=13> 後方に移動します <sprite\=13> Move Right=<sprite\=13> 右に移動します <sprite\=13> Menu=<sprite\=13> メニュー <sprite\=13> Right=<sprite\=13> 右 <sprite\=13> Left=<sprite\=13> 左 <sprite\=13> Up=<sprite\=13> 上 <sprite\=13> Move Forward=<sprite\=13> 前進します <sprite\=13> Down=<sprite\=13> 下 <sprite\=13> Move Left=<sprite\=13> 左に移動します Move Right=右に移動します It's a squeak button! What do you want more?=ただ鳴くだけのボタンです!\nそれ以上何が必要ですか? Interact with the world and character: Climb, speak,...=舞台や登場人物に働きかける操作です:登る、話す、等々... Hold to walk slowly.=押し続けてゆっくりと歩きます。 Shock objects around the player.=プレーヤー周囲のオブジェクトにショックを与えます。 Press this button talk to a character following you.=このボタンを押して、相手と会話を行います。 Recenter the camera behind the player.=プレイヤーの真後ろにカメラ位置を設定し直します。 Validate in menus.=メニューで選択を行います。 r:"^Press a button to rebind this(.+)to cancel.$"="押したボタンにこの操作が割り当てられます。\n <style\="controls/menu"> でキャンセルします。" Press <style\="controls/elecMode"> to <color\=#73B9FF>change form</color> temporarily.=<style\="controls/elecMode"> を押して、一定時間 <color\=#73B9FF>フォームを変更</color> します。 Press <style\="controls/photo"> to open the <color\=#73B9FF>Photo mode</color>.=<style\="controls/photo">を押して <color\=#73B9FF>写真モード</color> を開きます。 <style\="controls/elecmode">=<style\="controls/elecmode"> <style\="menu/submit"> Teleport=<style\="menu/submit"> テレポート <style\="menu/submit"> Activate=<style\="menu/submit"> 有効化 <style\="menu/submit"> Deactivate=<style\="menu/submit"> 無効化 <style\="menu/submit"> Buy=<style\="menu/submit"> 買う Press <style\="controls/photo"> to enter Photo mode, and take beautiful pictures! Try out the different filters and have fun! My best seller!=<style\="controls/photo"> を押して写真モードに入り、美しい写真を撮りましょう!\nさまざまなフィルターを試して楽しんでください!\n私のベストセラー! Press <style\="controls/shock"> to <color\=#73B9FF>Shock</color> glowing objects.=<style\="controls/shock">を押して、輝くオブジェクトに <color\=#73B9FF>ショック</color> を与えます 。 Hold <style\="controls/crouch"> to <color\=#73B9FF>Crouch</color> and move slowly.=<style\="controls/crouch">を押したまま、<color\=#73B9FF>伏せて</color> ゆっくりと動きます。 Take a look at what I can offer you. Press <style\="menu/cancel"> to close the shop when you’re done.=提供できるものをご覧ください。\n見終わったら、<style\="menu/cancel"> を押してください。 Quit to Main Menu=メインメニューに戻る Go back to the title screen ? Progression will be saved.=タイトル画面に戻りますか?\n進行状況はセーブされます。 Interact=操作 Loading...=読み込み中... Fall=降りる Release=手を離す The Spirit and the Mouse=精霊とネズミ Quest Journal=クエスト履歴 Resume=再開 Inactive=停止中 Traverse=通過 Feed=与える Quest Complete=クエストが完了しました On=オン Climb mode=自動で登る Rumble=コントローラー振動 Crouch=伏せる Squeak=鳴く The Spirit=精霊 Speak to follower=相手に話しかける Recenter camera=カメラ位置リセット Page Right=右のページ Pan=パン Orbit=回転 FEED… ME...=電気を…ください… <align\="center"><size\=200%><sprite\=14></size></align>=<align\="center"><size\=200%><sprite\=14></size></align> <size\=200%><sprite\=14></size>=<size\=200%><sprite\=14></size> <color\=#a8a8a8ef>"<sprite\=14>".... What could this mean? </color>=<color\=#a8a8a8ef>「<sprite\=14>」....これはどういう意味ですか? </color> "<sprite\=14>"...What could this mean? =「<sprite\=14>」...これはどういう意味ですか? A <color\=#31defffc>dark beverage</color> sold nearby, drunk in the morning to help you come to your senses. <color\=#ff4b00e2>How much</color> does it cost?=とある <color\=#31defffc>黒い飲み物</color> 、この近所で売られていて、朝に飲むと目がすっきりします。さて、その <color\=#ff4b00e2>お値段</color> は? Nested in an alcove above an <color\=#31defffc>old well</color>, the birth date of <color\=#31defffc>Saint-et-Claire</color> is forever carved in stone. <color\=#ff4b00e2>When</color> was it?=<color\=#31defffc>古い</color>井戸の上に築かれた石の小空間に、 <color\=#31defffc>サン・エ・クレール</color> の街が誕生した日が永遠に刻まれています。さて、それは <color\=#ff4b00e2>いつ</color> ?
6.固有名詞の変換設定
あるNPCの名前が英単語とみなされて、意味の通らない訳文が発生するので、置換ファイルを使って置き換えます。また、物語の舞台となる村の名前もあちこちに出てきて、誤訳が気になるので置換しておきます。
置換の定義を多用するとパフォーマンスに影響するそうですが、これ以外の固有名詞も、翻訳エンジンの癖で表記に揺らぎがあったり、翻訳されたりされなかったりするので、気になる場合は自分で追加してみましょう。

ツールが自動生成する置換用ファイル _Substitutions.txt をメモ帳などで開いて、以下の内容を貼り付けて保存してください。

Ver 1.02
Kidive=キディブ Sainte-et-Claire=サン・エ・クレール Saint-et-Claire=サン・エ・クレール Sainte-Et-Claire=サン・エ・クレール

_Substitutions.txt ファイルは、_AutoGeneratedTranslations.txt と同じ場所にあります。

Kidiveの発音はキディブになるのですが、キブリンたちの名前は、「Ki + 英単語」になっているので、キダイブの方が正しいかもしれません。お好みで変更してください。
7.あとは遊ぶだけ!
【翻訳の一時解除】
Alt +T キーを押すと、翻訳が解除されて元の英文が表示されます。もう一度同じ操作で戻ります。翻訳の意味が通らず原文を確認したい場合に。

【アップデート時の対応】
ゲーム本体にアップデートがかかった場合、翻訳が動かなくなる可能性があります。その場合は、手順2-② の作業をもう一度行ってみてください。
(まだそういう事態に遭遇したことがないので、予測です……)

【ツールの導入に失敗した場合】
ゲームをアンインストールした後、手順1で調べたフォルダ内のファイルを全部消してから、ゲームをインストールし直してください。
セーブデータはSteamクラウドに保存されるので消えません。



■ 課題 ■
色指定タグが単語を分断してしまう問題を解消するために色々試したのですが、上手くいってません……。
装飾が失われることとトレードオフで翻訳精度を上げる手段として、_Preprocessors.txt (翻訳エンジンに送る前にテキストを加工する設定ファイル)で色指定タグを除去すればよいと考えたのですが、正規表現チェッカーではマッチングするにも関わらず、XUnity Auto Translator では該当のテキストがヒットしません……どうして……?
こんな感じにしてみましたが、ダメでした。(これだと、動いてもタグが複数セット存在するケースに対応できませんが)
r:"^(.*)<color\\=#[A-Fa-f0-9]+>(.+)<\/color>(.*)$"=$1$2$3
どなたか、チャレンジしてみてください……。