Sniper Elite 4が日本語化可能っていう俺の記事がここ数日に約350PV/日とかなってたからアンケートとるが、やっぱり日本語化用のテキストファイル編集ツール(と翻訳所)作ってほしい?
— ギリー㌠ (@kagikn) June 24, 2018
俺も作りたいとは本当に思ってるが作るなら対価代わりに寄付募るのも許してくれ
どういうわけだか日本語化のスプレッドシートのひとつが一般公開をやめてしまい、もうひとつは編集不可な状態になり、日本語化が不安になってしまったSniper Elite 4。そもそも日本語化が容易にできるような構造なのか不安にと思う人もいるでしょう。
実はexeをフックするとかいう手間などかけずにちゃんと日本語化することができるような構造になっているのです。
テキストファイルの文字はUTF-16
テキストファイルの文字はUTF-16(リトルエンディアン)で書かれており、UTF-16で使われている文字コードを貼り付ければフォントファイルに対応したものがある限り、理論上は大抵の文字が使用可能です(サロゲートペア付きは知らんがScaleformは対応してないしこれもしてないと思う)。
英語のテキストファイルをバイナリエディタで見ると英単語のアルファベットの後ろがnull文字で、中国語のテキストファイルを見てもUTF-16で見る限りどうもカスタムエンコーディングじゃないと思ったので、英語のファイルの”ANTI-ALIASING”を”ANTI-エイリアスING”となるように書き換えると表示できたので、それで気づきました。
このゲームを日本語化するのに中国語化Modの改造をすることがないことはこれでほぼ確実です。
ちなみに、Sniper Elite 3もUTF-16でテキストを格納しています。テキストファイルが非英語圏の人に優しい構造になっててホッとしました。2010年代にもなって違ってたら呪ってやりたかったけど。
あとは日本語翻訳とテキストファイルの完全な構造分析を待てばほとんど終わるのはほぼ間違いないです。
テキストだけど文字化けしてるような文字って何?
Rebellionゲーのテキストには、UTF-16で読んでも文字化けしてるかのような文字が入っていますが、あれは私用領域の文字をボタンを表示するための文字として使ってるというだけの模様。ただし、これらの私用領域のトークン的な役割をはたす文字を間違えたものに書き換えると正しいキーで操作できなくなるので(死体持ち上げキーを死体探りのに換えると死体を持ち上げられないとか)、識別しやすいようにtxtファイルでの出力時には”~INPUT_PICK_UP_BODY~”のようにわかりやすい表現に書き換え、asrなどのテキストファイルを出力するときは元に戻せる仕組みをasrの展開・作成ツールの機能として作ります。
正直言うと、個人的には最終出力のテキストファイルもGTAのようにASCIIで表現できる文字でボタンとかの表示に差し替えるトークン(”~INPUT_VEH_EXIT~”とか)を使うタイプのほうが好きなんだけどね。
日本語のテキストを入れた画像



Sniper Elite 3以降Rebellionゲーのテキストファイルの基本構造はずっと同じ
2019年の7月10日になってもう一度調べましたが、Sniper Elite 4のテキストファイルはStrange BrigadeやZombie Army Trilogyなどとも同じ模様。ちなみにSniper Elite V2 Remasteredのものとは違います(ヘッダーのバージョンが3でなく2)。Sniper Elite 3のテキストファイルの構造はここが参考になると思います。
コメント
今までSE4の翻訳を試みていた者です。
もし翻訳を開始されるなら、是非お手伝いさせて下さい。
ありがたいです。まずテキスト書き換えられるようにするためのツール作るのが先ですけどね。
先駆者みたいにツールが全く出てない状態(バイナリエディタでゴリゴリ書き換えずに日本語化できない状態)で翻訳進めて挫折とかしたくないですし。
作ったらMITライセンスでも適用してソース含めて配布しますよ。他の人にももっと役に立つように。
翻訳シートで翻訳始めたあとに発音とか考慮しながら最終的に私が固有名詞とかを決めると思うけど許してね。
日本語化待ってます。
日本語化は断念されたのですか?
心待ちにしていたのですが・・・
いや断念したというかGTAVCの日本語化もしときたいかなーと。
まあ先に日本語化するためのツールや翻訳シートだけ用意するかもしれません。翻訳シートは荒らし対策に採用する翻訳を別のセルに分けとくつもりですが。
https://docs.google.com/spreadsheets/d/1P2-VqeVR_OccJAPKcmeCDqob32XDR3q1AMQ2RphtwpQ/edit#gid=0
翻訳終わってます
いや、システムの説明文とか翻訳なしでセリフ翻訳だけじゃ終わったとは言えませんよ。スプレッドシートもほんの最初の部分だけだし。
そもそも一番の問題は、あのゲームのテキストファイルに変換するツールをまだ作ってないってことです。
あとは、ボタン表記とかに変換する制御用の文字コードを全部把握してないところも問題ですかね。
現在2021年になりましたが、Sniper Elite4のPC日本語化は諸事情などによりもう作らないということなのでしょうか。
もう作ることはありえないとまでは言いませんが、少なくとも最初のバージョンをリリースするまではあまり期待しないでください。そもそも元から入ってるフォントで十分グリフがあるかとかの検証もまだだし、翻訳用に使うファイルのフォーマットどうするかっていうのもまだ考えていないのです(特にボタン用の特殊な文字コードをどう表現するかが)。
ここの情報から着想を得てasr_enとpc_enのDLLN部分、HTXT部分については翻訳対応のソフトウェアを作れそうなのでベータ的に作ってみています。
元から入っているフォントでは中華フォントになってしまう部分などは分かっていますが、この部分はもっと有能な方が対応してくれるという発想で手を付けていません。
テキストはTSV形式でTag\tEnglish\tJapanese方式を採用し、色変えなどの特殊文字は外字領域っぽいので制御文字と合わせてすべて\u0000形式で出力。順序さえ間違えなければいい感じに翻訳はできそうです。(例外探索がまだ終わってないけど)
(例:Press \ue84b to pick up or drop a dead body.\u000aHold \ue84b to throw a dead body.)
あとはひたすら翻訳するだけかも。
結局誰も書き換えソフト作ってくれないので作りました。
https://github.com/mirai364/AsrTextExtractor
適切なCSVを作成すれば変換できるようになっています。
あと、switch や ps4 には日本語翻訳があるので、
それの Menu.asr_en と Menu.asr_jp があれば、ほとんどの字幕を書き換えられるはずです。
※1日クオリティーなのでバグがあったら, プルリクかissueください