📝

XUnity Auto Translatorを使ってみた

2022/12/23に公開

これ

https://github.com/bbepis/XUnity.AutoTranslator/releases
Unityのゲームは単にテキストファイルいじるだけじゃダメらしい
これを使えばゲームしながらリアルタイムで翻訳してくれる

ゲーム

Pathfinder Wrath of the righteous

必要物

TMP_Font_AssetBundles.zip
XUnity.AutoTranslator-ReiPatcher-5.2.0.zip
を上記からいただいて解凍する

やること

steamapps\common\Pathfinder Second Adventure
に解凍したフォントファイルx2とSetupReiPatcherAndAutoTranslator.exeを置く

SetupReiPatcherAndAutoTranslator.exeを起動→適当なキーを入れると消える
Wrath(Patch and Run)を起動→勝手に消える

以上で,同フォルダにAutoTranslatorフォルダが生成される.
ここにConfig.iniがいるのでテキストエディタで開く.
Config.iniをいじる前にコピーしてConfig.ini_bakとかバックアップ作っておくと安心?

文字通りではあるけど

[General]
Language=ja
FromLanguage=en

にする.英語を日本語に翻訳するということ.

[Behaviour]
MaxCharactersPerTranslation=2000

何文字まで一気に翻訳かけるか.2000とか2500がいいらしい.

OverrideFontTextMeshPro=arialuni_sdf_u2019
FallbackFontTextMeshPro=arialuni_sdf_u2019

さっき解凍したありあるふぉんと.
ここまででゲーム起動すればとりあえずゲームは全部翻訳されるけど,
飾り文字はうまく翻訳できないのでNew Gameが"EWゲーム"みたいになる.

翻訳の調整

AutoTranslationフォルダを下っていくと,_AutoGeneratedTranslation.txtというファイルがいる.

Quick save=クイックセーブ

みたいな感じで,”翻訳前=翻訳後”みたいにずらずら書かれている.このなかにさっきのEWゲームとか載ってるはず.一度翻訳済みだとずっとそれが表示されるみたい.

r:"^(<voffset\=0em><font\="Saber_Dist32"><color\=#561600><size\=140%>[A-Z]</size></color></font></voffset>[\S\s]+)"=$1
r:"^(<voffset\=0em><font\="Saber_Dist32"><color\=#672B31><size\=140%>[A-Z]</size></color></font></voffset>[\S\s]+)"=$1

中身を全部消してこれを貼り付ける.これを入れると飾り文字のときは翻訳しないようになるらしい.5ちゃんでみた.

同じディレクトリに_AutoGeneratedTranslations.ja.txtってファイルを作ってもいいらしい.

It is also worth noting that this plugin will read all text files (*.txt) in the Translation (Directory), so if you want to provide a manual translation, you can simply cut out texts from the Translation_AutoGeneratedTranslations.{lang}.txt (OutputFile) and place them in new text files in order to replace them with a manual translation. These text files can also be placed in standard .zip archives.

_AutoGeneratedTranslation.txtに”Camellia=Cアメリア”,_AutoGeneratedTranslations.ja.txtに”Camellia=カメリア”とする翻訳テキストが入っていた場合,.ja.txtのファイルのテキストデータが優先して反映されるらしい.
ゲーム起動中であってもALT+Rを押せば翻訳テキストが更新できるみたい.

In this context, the Translation{Lang}\Text_AutoGeneratedTranslations.txt (OutputFile) will always have the lowest priority when reading translations. So if the same translation is present in two places, it will not be the one from the (OutputFile) that is used.

おまけ

ALT+T だけ押せれば戦える.

ALT + 0: Toggle XUnity AutoTranslator UI. (That's a zero, not an O)
ALT + 1: Toggle Translation Aggregator UI.
ALT + T: Alternate between translated and untranslated versions of all texts provided by this plugin.
ALT + R: Reload translation files. Useful if you change the text and texture files on the fly. Not guaranteed to work for all textures.
ALT + U: Manual hooking. The default hooks wont always pick up texts. This will attempt to make lookups manually. Will not hook text components from frameworks not enabled.
ALT + F: If OverrideFont is configured, will toggle between overridden and default font.
ALT + Q: Reboot the plugin if it was shutdown. This will only work if the plugin was shut down due to consecutive errors towards the translation endpoint. Should only be used if you have reason to believe you have remedied the problem (such as changed VPN endpoint etc.) otherwise it will just shut down again.

Debugging-only keys:
CTRL + ALT + NP9: Simulate synchronous errors
CTRL + ALT + NP8: Simulate asynchronous errors delayed by one second
CTRL + ALT + NP7: Print out loaded scene names and ids to console
CTRL + ALT + NP6: Print out entire GameObject hierarchy to file hierarchy.txt

Rhapsody of fireの歌詞みたいな単語ばっかり出てくるから世界観知ってないと難しいよね.
英語でやろうと思ったけどキャラクリで諦めちゃった.

_AutoGeneratedTranslationをいじれば翻訳の調整できるとか書いたけど,ゲーム内のテキストファイルは10万行あったから1つ1つ直すのは現実的じゃないね.

Discussion