Sniper Elite 4は技術的には日本語化できます

Mod関係(GTA以外)
この記事は約4分で読めます。
スポンサーリンク

※ここで日本語化ファイルの配布はしていません!ここは日本語化ファイルを作成する人の手助けになる技術的な情報を書いただけです! 引用していたツイートのPV数稼ぎ疑惑も含めてこれ以上の混乱を防止するため、私のアンケートツイート(作ってほしい?という内容)の引用部分は削除しました(追記: 2024年6月9日)。また、記事に載せているasrファイルを解析した情報に一切触れずに「PV稼ぎしただけだっただろ」という旨の批判をしたコメントは、過剰な悪評防止のため2024年11月27日に削除しました。

どういうわけだか2018年(具体的な日付は覚えていない)にFPS†ZHで日本語化のスプレッドシートのひとつが一般公開をやめてしまい、もうひとつは編集不可な状態になり、一時期は日本語化が不安になっていたSniper Elite 4。そもそも日本語化が容易にできるような構造なのか不安にと思っていた人もいるでしょう。
結果的には他の有志がプログラムによる書き換え不要な日本語化Modをリリースしたことから分かるように、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~”とか)を使うタイプのほうが好きなんだけどね。

日本語のテキストを入れた画像

これはUTF-16で同じ長さになるようにテキストを入れた例
こっちは(UTF-16で)長さが違う日本語テキストを入れた例
テキストのカラーを変えるタグの色をいじった例。水色から明るい緑に変えた。どういうことかって?ちゃんと解析できる展開ツール作るのに役立つ情報を知ったってことよ。

Sniper Elite 3以降Rebellionゲーのテキストファイルの基本構造はずっと同じ

2019年の7月10日になってもう一度調べましたが、Sniper Elite 4のテキストファイルはStrange BrigadeやZombie Army Trilogyなどとも同じ模様。ちなみにSniper Elite V2 Remasteredのものとは違います(ヘッダーのバージョンが3でなく2)。Sniper Elite 3のテキストファイルの構造はここが参考になると思います

asrファイルの内部構造についての情報記事

コメント

  1. KGCV より:

    今までSE4の翻訳を試みていた者です。
    もし翻訳を開始されるなら、是非お手伝いさせて下さい。

  2. kagikn より:

    ありがたいです。まずテキスト書き換えられるようにするためのツール作るのが先ですけどね。
    先駆者みたいにツールが全く出てない状態(バイナリエディタでゴリゴリ書き換えずに日本語化できない状態)で翻訳進めて挫折とかしたくないですし。
    作ったらMITライセンスでも適用してソース含めて配布しますよ。他の人にももっと役に立つように。

    翻訳シートで翻訳始めたあとに発音とか考慮しながら最終的に私が固有名詞とかを決めると思うけど許してね。

  3. MTu より:

    日本語化待ってます。

  4. partizani より:

    日本語化は断念されたのですか?
    心待ちにしていたのですが・・・

    • kagikn kagikn より:

      いや断念したというかGTAVCの日本語化もしときたいかなーと。
      まあ先に日本語化するためのツールや翻訳シートだけ用意するかもしれません。翻訳シートは荒らし対策に採用する翻訳を別のセルに分けとくつもりですが。

  5. 横から より:
    • kagikn kagikn より:

      いや、システムの説明文とか翻訳なしでセリフ翻訳だけじゃ終わったとは言えませんよ。スプレッドシートもほんの最初の部分だけだし。
      そもそも一番の問題は、あのゲームのテキストファイルに変換するツールをまだ作ってないってことです。

      あとは、ボタン表記とかに変換する制御用の文字コードを全部把握してないところも問題ですかね。

  6. ssu より:

    現在2021年になりましたが、Sniper Elite4のPC日本語化は諸事情などによりもう作らないということなのでしょうか。

    • kagikn kagikn より:

      もう作ることはありえないとまでは言いませんが、少なくとも最初のバージョンをリリースするまではあまり期待しないでください。そもそも元から入ってるフォントで十分グリフがあるかとかの検証もまだだし、翻訳用に使うファイルのフォーマットどうするかっていうのもまだ考えていないのです(特にボタン用の特殊な文字コードをどう表現するかが)。

  7. Shannon より:

    ここの情報から着想を得て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.)
    あとはひたすら翻訳するだけかも。

  8. ハンス より:

    結局誰も書き換えソフト作ってくれないので作りました。
    https://github.com/mirai364/AsrTextExtractor

    適切なCSVを作成すれば変換できるようになっています。

    あと、switch や ps4 には日本語翻訳があるので、
    それの Menu.asr_en と Menu.asr_jp があれば、ほとんどの字幕を書き換えられるはずです。
    ※1日クオリティーなのでバグがあったら, プルリクかissueください