2019年3月22日金曜日

Offworld Trading Companyの和訳に関してもう少し突っ込んで調べて(機械翻訳も全文して)みた

ゲームそのものには興味は失せていますが、ゲーム自体よりもこういうほうを調べたりするほうが楽しいので少々表題の件について調べてみました。

ついでと言っては何ですが、例によってGoogle Spreadsheetに翻訳作業所を用意し、これまた例によってシートからゲームに適用できる形式に変換するツールも作ってみました。
ツールの使い方は・・・見ればすぐわかります。画面上に日本語で書いてますから。
まあ、直感でやってください。
ソースはついてます。なお、エラーチェックなんぞしてません。
これまた毎度恒例ですが、翻訳作業所の編集権は制限しております。
まあ、どうせ誰も困らないのでどうでもいいですが、制限する理由について気になった方は過去の当ブログをご参照いただければ幸いです。

このシートにはworkshopで公開なさっておられるJapanese locale / 日本語化 (β)の訳文も反映しましたが、問題があればお知らせください。

もうworkshopのmodも最終更新が2年まえですから、もう更新は望めないでしょうし、いまさらHumble Bundleで手に入れてしまった以上、やれることはやっとこうという感じでありますので、一つご容赦ください。

現時点でのシートの状況は、本体、Core Game, Almanac DLC, Jupiter's Forge Expansion Pack中の(要するにHumble Bundleでバンドルされていた)すべての英文(7,363センテンス)の機械翻訳を完了し、原文と和文でのタグの不整合がないように全文をチェックを完了しています。
用語の統一、自然な日本語への再翻訳、ゲーム内での表示妥当性の全文のチェックはしていませんし、する気もございません。

以下、結果だけクレクレ様には何のかかわりもありません。
お読みいただいてありがとうございました。

さて、全部手動で日本語化をやるとした場合、どうするかを書き連ねてまいります。
まず、言語の追加は、特にそれ用の手段は用意されていませんでした。
そのため、表示される文字列を改変するMODとして作成し、そのMODをゲームに適用しなければなりません。

このゲームではMODといっても、DLLを作らなくても予めひな形として用意されているXMLファイルを書き換えるだけでも立派にMODとして適用できます。
元ネタは
マイドキュメント\My Games\Offworld\Mods\Hidden\Reference\Data\ フォルダに格納されています。

日本語化MODを作成する場合は、そのフォルダに格納されているXMLファイル中にあるすべての"English"という要素を片っ端から日本語に書き換えればOK。
但し、元ネタを書き換えてもそのままでは適用されません。
書き換えたら、たとえばOreOreLangという名前のMODにすると決めた場合、単純に
マイドキュメント\My Games\Offworld\Mods\OreOreLang\Data\ フォルダ
に書き換えたファイルをコピーしてあげれば立派にMODとして成立します。
イタリック体で書いたMOD名でゲーム内から参照できます。
なお、中身がカラッポでもマイドキュメント\My Games\Offworld\Mods\内部にフォルダさえあればMODとしてゲーム内から選択可能になります。

特にフォントや体裁にこだわらなければ、上記の手順だけでチュートリアル以外は日本語化できます。

Englishを直接書き換えるんじゃなくてJapaneseとして選択可能にしたい!という場合は、language.xmlも書き換える必要がありますが、まあ、その辺はお好み次第です。
(ツールではlanguage.xmlも自動生成します)

いずれにせよ、片っ端から日本語化する場合、現在のバージョンでは20ファイル、7,363もの文章を翻訳する必要があります。

しかし、ここで罠があります。
いくら頑張ってもチュートリアルには日本語化MODを適用できません。
なぜならば、チュートリアルもまたMODだからです。

このゲームはMODはゲーム中に1つしかロードできません。
従って、チュートリアルがロードされると、ほかのMODはゲーム内から破棄されます。
そのため、日本語化したデータが適用されません。

実は最初、それが分からなくてちょっとしたプログラムでMODを作って何とかならんか、とごちゃごちゃやってみたのですが、どうやってもチュートリアルに入ると自作のプログラムMODが実行されなくなってしまいます。
どうもアンロードされてしまっている様子でした。

そこで、さらによく調べてみたら、チュートリアルもMODだったというオチでした。
これはXMLでのMODも同じ挙動と考えられます。
これでお判りいただけたかと思いますが、先にチュートリアルとBold体で「等」を強調したわけがお分かりいただけたかと思います。
いうまでもありませんが、チュートリアル以外でもMOD扱いであればいくら翻訳を頑張ってもこのままでは反映はされません。

では、せめてチュートリアルだけでもどうするか、という具体的な話ですと、逆手(?)を取って、チュートリアルもMODである以上、MODとしての日本語化したXMLファイルをチュートリアルMODに追加してあげればいいわけです。

追加といっても、単純にチュートリアルMODのフォルダに日本語化したXMLをコピーするだけです。
具体的には、チュートリアルMODは
Steam\steamapps\common\Offworld Trading Company\Offworld_Data\StreamingAssets\Mods\Hidden\Tutorials\Data
にありますので、そこに先ほど作成した20個(language.txtを改造した場合は21個)のXMLファイルをすべて(じゃなくてもいいんですけど何が必要なのか調べるのか面倒なので)コピーしてあげれば日本語化されます。
イオ関連のチュートリアルの場合はTutorialsフォルダと並んで設置されているIoTutorialフォルダです。

練習戦の日本語化の場合、一ひねりが必要です。これもMODなのですが、デフォルトではMODフォルダが未指定なのです。Unityのアセットだけを参照しているわけですね。
ではどうするか。
はい、ここまでお読みいただいている方には簡単にお察しいただけます通り、単にMODフォルダを指定してやればいいだけです。
MODフォルダを指定する定義はsenario.xmlにて記述されています。
実際に、そのなかで<zMod/>なんて書いてある要素に対して片っ端から日本語化されたテキストを突っ込んであるフォルダ名を入れちゃえばちゃんと日本語化されました。
これは横着してTutorialフォルダを指定しないほうがいいと思います。言語以外にもチュートリアル用の特殊な設定が適用されてしまいますので。

まずは上記までで、一通り日本語化するための手順は網羅的にご説明できたかと思います。

さて、日本語化しても、今度は表示上の問題があります。
チュートリアルの登場人物のセリフはばかに長いので、適切な長さで改行させないと猛烈に小さな字で表示されてしまいます。

このゲームでは表示領域内に収まらない場合はフォントを小さくして対応している箇所があるのですが、日本語はホワイトスペースで区切らない言語のため、自動折り返しができず、横に猛烈に長い文章となってしまい、横幅が収まるようにフォントを小さくされてしまうので、結果的に文字が猛烈に小さくなってしまうというわけです。

一応、念のために無幅空白(U+200BとかU+200Cとか)を一文字ごとに挿入したらどうなるかという実験をしてみましたが、無幅空白では折り返されませんでした。ワードラップ適用対象はU+0020だけのようです。残念です。

従って、見栄えを求めるなら自分自身で改行位置を決定する必要があります。
むろん、見栄えを求めなければ文字がやたらめったら小さいだけでハングアップしたりするようなことは今のところなさそうですので、まあ不幸中の幸いです。

とりあえずコピペだけで20+1のファイルに和訳用データを落とせる仕組みを作りましたので、とりあえずはこのゲーム代として支払った額分はしっかり楽しめました。

なお、翻訳者は(これまで手掛けたゲーム翻訳すべてで)常に大募集中でございます。
ご協力を賜れば幸甚です。
ま、過去にひっとりもいないのですけど。

お読みいただき、まことにありがとうございました。

0 件のコメント:

コメントを投稿