2019年9月1日日曜日

Fallout Shelter のフォントについて(その2)


Fallout Shelter の翻訳および日本語の表示方法に関する情報はこちらの記事を御覧ください。
「synctam: Fallout Shelter 日本語化支援ツールの使い方」
https://synctam.blogspot.com/2019/10/fallout-shelter.html

前回の記事から既に一年以上経ってしまいましたが、やっと日本語の表示に成功しました。まだ、細かな作業が残っていますが、今回の作業で分かったことなどを忘れない内にメモしておきます。自分用のメモなので、順不同で説明とかもありません。

日本語表示および日本語ビットマップフォントについて、「お~るげーむず(仮)」さんよりサンプルのビットマップフォントを提供していただき、日本語の表示が可能となりました。ありがとうございました。
「お~るげーむず(仮)」
https://agk.saloon.jp/


一部分を機械翻訳したものですが、SSを貼っておきます。








前回からゲームのバージョンも変更されていますので、改めて詳細を書きます。


■Unityバージョン
Unity 2017.4.8f1


■ゲームバージョン
1.13.13


■フォント(ttf or otf):File Type=128(0x80))

  • Boogaloo-Regular.ttf: 丸っこいゴシックで柔らかい感じ。
  • FontdinerSwanky.ttf:独特のとんがったフォント
  • FuturaStd-CondensedBold.otf:極太のゴシックで丸みを帯びた、ちょっとだけ手書きっぽい。
  • FuturaStd-CondensedBoldObl.otf(注1):極太のゴシック。ちょっと縦長。
  • JennaSue.otf:筆記体の手書き風。
  • monofonto.ttf:少し細目のゴシック。
(注1)このフォント一覧は Asset Studio を使って調べたのですが、「FuturaStd-CondensedBoldObl.otf」は UnityEX上では見つけられなかったので、未処理。


■UnityFSファイルの編集方法

  1. UABEで data.unity3d を開く。
  2. data.unity3d.tmp として保存する。 これで、解凍されるみたいです。
  3. UABE で data.unity3d.tmp を開く。
  4. resources.assets を選択し、Export ボタンを押し、resources.assets として保存する。
  5. UnityEX で resources.assets を開く。
  6. 以降、通常のUnityEXの使い方でアセットを操作する。
  7. UnityEX での作業が全て追わたら以下の作業を行う。
  8. UABEで data.unity3d.tmp を開き resources.assets を import する。
  9. UABEで data.unity3d.tmp2 として保存する。
  10. UABEで、compress を選び、data.unity3d.tmp2 を選択し、data.unity3d に上書き保存する。

以下、UnityEX で resources.assets を開いた状態で以下の作業を行う。


■フォントのexport
UnityEXで、以下の5フォントをexportする。
  • Boogaloo-Regular.ttf
  • FontdinerSwanky.ttf
  • FuturaStd-CondensedBold.ttf
  • JennaSue.ttf
  • monofonto.ttf
今回は ttf の差し替えも行いました。ビットマップフォントを差し替えた場合はこの作業は不要かもしれません。後で確認することにします。


■翻訳対象テキスト
UnityEXで、Type=-6(MonoBehaviour id:114)を探し、"resources_00001.-6" を [右クリック]-[Export selected] する。


■画像フォント
UnityEXで、Type=28(Texture2D id:12 - DXT5) を探し、"futura_0.tex"を [右クリック]-[Export with convert] する。
以下のフォルダーに"futura_0.tex.dds"が存在することを確認する。
「Fallout Shelter\FalloutShelter_Data\Unity_Assets_Files\resources\Textures」

同様に、"monofonto_0.tex" を export する。


■座標情報
UnityEXで、Type=114(MonoBehaviour) を探し、"resources_00001.-6" を [右クリック]-[Export selected] する。
同様に "resources_00002.114" を export する。


■export したファイルの確認
export 後の Unity_Assets_Files フォルダー下のファイル構成は以下の通り。

Unity_Assets_Files
    └─resources
        │  Boogaloo-Regular.ttf
        │  FontdinerSwanky.ttf
        │  FuturaStd-CondensedBold.ttf
        │  JennaSue.ttf
        │  monofonto.ttf
        │  resources_00001.-6
        │  resources_00001.114
        │  resources_00002.114
        └─Textures
                futura_0.tex.dds
                monofonto_0.tex.dds


■特殊文字の解析
画像フォントの中には Game Pad 用のボタンなど48種類が含まれている。

このボタンの画像がなかなか厄介だったりして・・・

これらの48文字分の文字コードは次の通り。
  • 65248(0xFEE0) - 65295(0xFF0F) = 48文字
これらの文字は、アラビア表示形B(U+FE70~U+FEFF)、および半角・全角形(U+FF00~U+FFEF)に含まれる文字領域をボタン画像などに使用しているようです。
参考:
・アラビア表示形B(Arabic Presentation Forms-B)
・半角・全角形(Halfwidth and Fullwidth Forms)
このため、日本語を使用する場合は、半角・全角文字(U+FF01 - U+FF0F)の15文字を別の領域に移動する必要がある。ただし、U+FF00は未割り当て文字なので不要。
!"#$%&'()*+,-./
これらの文字はUnicode(私用領域:U+E000 - U+F8FF)に割り当てて使用する予定。割当領域は、U+E001 - U+E00F の15文字。これらの文字が使用されていた場合は、日本語化MODツールで変換することとします(未着手)。
参考:
「Unicode U+FC00~U+FFFF(64512~65535) ユニコード 0g0.org」
https://0g0.org/list/FC00-FFFF/ 
「Unicode(私用領域) - CyberLibrarian」
http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/private.html


■DDSについて
Paint.NET でDDSを編集後保存する場合のオプション。
  • 拡張子:dds
  • 設定:DXT5(補完アルファ)
  • 圧縮の種類:クラスターフィット(低速/高画質)
  • エラーメトリック:知覚的
  • 追加オプション:設定しない


■座標ファイルの修正
今回は、「お~るげーむず(仮)」さんから頂いた座標情報ファイルを修正して使用することにします。

座標ファイルの先頭部分にある、FileID と PathID をオリジナルの値に変更する。

選択した青い部分の FileID と PathID を変更する。

■今後の予定作業

  1. 現時点ではボタンなどの文字の取り込みは未着手。取り込み手順を検討する。
  2. 座標ファイル変更用ツールのバグ修正。
  3. 翻訳シートCSVから日本語化MODを作成するツールの見直し。
  4. TrueTypeフォントの差し替えの必要有無を確認する。 (2019.09.04 追記:確認したところ、TrueTypeフォントの差し替えしは不要でした)
  5. 作業手順の再確認と検証。

以上です。

5 件のコメント:

  1. はじめましてです!
    日本語化を試みましたが挫折したものです
    もしよろしければ翻訳済みのファイルをUPしてもらえないでしょうか・・・!
    PSVITAでやっててドハマリしてましたが、steamでできることを大いに喜びましたが、同時に日本語化されてなくショックもデカかったです・・・
    どうかおねがいします・・・!

    返信削除
    返信
    1. コメントありがとうございます。
      申し訳ありませんが、現時点で公開できるようなファイルはありません。

      もし、プログラミングが可能であれば、日本語化に必要なプログラムのソースを公開していますので、御覧ください。
      「synctam/FssJpModAid: Fallout Shelter 日本語化MOD作成支援ツール」
      https://github.com/synctam/FssJpModAid

      お約束はできませんが、翻訳の方法や日本語を表示する手順を記事にしたいと思います。

      削除
    2. すいません、間違いました。
      ここに、翻訳の手順や日本語の表示方法がありますので御覧ください。
      「synctam: Fallout Shelter 日本語化支援ツールの使い方」
      https://synctam.blogspot.com/2019/10/fallout-shelter.html
      よろしくおねがいします。

      削除
    3. ありがとうございます!
      無事日本語化できました!!
      日本語化するためにスプレッドシートも学べてよかったです!!
      またよろしくお願いいたします!

      削除
    4. お役に立てて何よりです。
      機械翻訳だけでは意味不明なところがあるかと思いますが、その様なところは手直ししていただければ、より楽しめるようになると思います。
      よろしくおねがいします。

      削除

Raspberry Pi 3 Model A+ で広告ブロックサーバーを作る(その2)

前回作成した 広告ブロックサーバー の稼働状況をAmbientにアップロードするスクリプトを書いたのでメモを残しておきます。