Epic 版 The Fall(Unity 2020.2.2f1)日本語化メモ
Epic 版 The Fall の Unity バージョンが 2020 を採用していることにより、日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) をインストールすることができなくなっておりましたが、別の方法で私が作成した日本語化ファイルを取り込むことで、ゲームを日本語化することに成功しました。
今回の記事では Epic 版 The Fall (Unity 2020.2.2f1)用日本語化ファイルを公開するとともに、どうやって日本語化ファイルを作成したのか、解析内容と日本語化ファイル作成方法及び成果物ファイルを公開します。
日本語化後の動作確認はゲームの起動とゲーム開始直後までです。クリアまでプレイしていないため、日本語化の影響による予期せぬエラーが発生する可能性はあります。
Epic 版 The Fall(Unity 2020.2.2f1)と日本語化 Mod ファイル基本情報
上の画像は UnityEX 1.9.7.9 で Epic 版 The Fall の resources.assets を開いたときに表示されたメッセージ 「Support unity 2020 is available in the Advanced or Ultimate version.」 です。
Epic 版 The Fall では Unity バージョンが 2020 に上げられたことにより、UnityEX では開けなくなってしまいました。
UnityEX にはメッセージ内にある Advanced と Ultimate という有料版が存在しており、こちらの有料版を入手することでメッセージが表示されることなく使えるようになると思いますが、無料(制限)版ではおそらく Unity バージョン 2019 までしか対応していないようです。
そのため 日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) をインストールするために必要な無料版 UnityEX ではインストールできません。
こちらの画像は UABE(Unity Assets Bundle Extractor) 2.2 stable d で resources.assets を開いたときに表示されたメッセージ 「Unable to read the bundle file!(Invalid file or unknown version?)」 です。UnityEX と同じく resources.assets ファイルを開けませんでした。
2019年8月版を最後に更新がなく、UABE(Unity Assets Bundle Extractor) が対応している Unity バージョンが 2019.2 までとなっているので、ツールの更新再開がない限り Unity 2020 バージョンの assets ファイルを開くことはできないでしょう。
2022年4月に UABE の作者が復帰?(DerPopo → SeriousCache に名前変更?)して UABE 3.0 beta 1 が公開 されました。
こちらの画像は AssetStudio v0.15.47 で Epic 版 The Fall の resources.assets を開いたときのものです。
resources.assets ファイルを問題なく開けてファイル内のデータを問題なく閲覧とエクスポートできるようですが、AssetStudio にはインポート機能がないため日本語化ファイルをインストールすることはできません。
こちらの画像は UABEA(uabe avalonia) latest build(exe ファイル更新日 2021年6月24日)バージョンを起動したところです。
2021年6月時点では唯一 Unity 2020 バージョンのファイルエクスポート・インポート両方に対応した Unity Mod ツールで(supported unity versions: 5 - 2020.3 表記)、今回 UABEA(uabe avalonia) を使うことで Epic 版 The Fall を日本語化できることを確認しています。
更新が止まってしまった UABE(Unity Assets Bundle Extractor) に代わり別の方が公開した後継ツールのようで、たまたま別のゲームの解析でこの問題を調べているときに Github で偶然見つけた ツールです。インターフェース画面や使い方は UABE(Unity Assets Bundle Extractor) とほぼ同じものとなっています。
リリース初期バージョンは使いたい機能が動作しなくて使えませんでしたが、2021年6月時点での UABEA(uabe avalonia) の latest build(exe ファイル更新日 2021年6月24日)を使うことで日本語化に成功、今回の日本語化ファイル公開につながることができました。
まだまだ未実装部分やバグなどがあるようですが、今後のアップデートで改善して機能するようになれば、UnityEX や UABE(Unity Assets Bundle Extractor) に代わる Unity 2020 バージョンのゲーム解析や改造ツールとしてお世話になることになるでしょう。
こちらの画像は Epic 版 The Fall の The Fall.exe プロパティ画面です。
assets ファイルをツールで開かなくても、The Fall.exe プロパティ画面の詳細タブにあるファイルバージョンと製品バージョンから 2020.2.2.~ と表記があるので、そこから Unity バージョンを確認(推測)することができます。
ちなみに resources.assets ファイルをバイナリエディタで開いた際のヘッダー部分からでも Unity バージョンを確認することもできるので、上記で紹介した Unity ツールを使わなくても一応確認できます。
Epic 版 The Fall(Unity 2020.2.2f1)日本語化手順
今回、こちらで作成した日本語化 Mod ファイルの動作確認のためインストールした Epic 版 The Fall です。
2021年3月の Epic 無料配布時に入手したものですが、Epic 版ではゲームエンジン Unity バージョンが変更されたことにより従来の UnityEX を使った 日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) を適用することはできなくなっています。
Epic 版 The Fall を起動したときのタイトルメニュー画面です。画面右下に Tha Fall v3.0 表記がありますが、このバージョンの場合は Unity 2020 バージョンとみていいようです。
Epic 版 The Fall(Unity 2020.2.2f1)日本語化 Mod インストール方法
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを、日本語化ファイルを取り込んだ resources.assets ファイルに差し替えることになるため、あとで元のデータに戻したい場合は事前に resources.assets ファイルをバックアップしておくか、Epic Games Launcher の整合性チェック機能 を使うようにしてください。
GitHub から UABEA(uabe avalonia) をダウンロード して展開・解凍、UABEAvalonia.exe を実行します。
2021年7月時点ではアクセス先のページ内に latest build リンクがあるので、クリックすると uabea-windows.zip のダウンロードが始まります。すぐ横の latest release から second release のダウンロードができますが、このバージョンでは日本語化に必要な機能が動作しなかったため使わないでください。
ダウンロードした uabea-windows.zip を展開・解凍して UABEAvalonia.exe(exe ファイル更新日 2021年6月24日バージョン) を起動します。
UABEA が起動したらメニューから File → Open をクリックします。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを UABEA で開きます。
Epic 版 The Fall の resources.assets ファイルを開くと上の画像のように表示されます。
この状態で次に説明する方法で日本語テキストファイルをインポートします。
こちらで用意した Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) をダウンロードして展開・解凍してください。
Dialogue_English-resources.assets-116.txt ファイルと Strings_English-resources.assets-122.txt ファイルが UABEA でのインポートに必要な日本語テキストファイルです。(一緒に同梱されている fixedsys-resources.assets-1531.dat ファイルはフォントデータのファイルです。導入方法ついては こちら で説明します)
翻訳内容については 日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) から変更ありません。
UABEA で resources.assets ファイルを開いた状態で Dialogue_English(Path ID 列 116)を選択します。
Dialogue_English 項目を選択した状態で画面右側にある Import Dump ボタンをクリックして、Dialogue_English-resources.assets-116.txt ファイルを選択してインポートします。
Dialogue_English-resources.assets-116.txt ファイルのインポート後は Dialogue_English(Path ID 列 116)の Modified 列に * マークが表示されます。
次に同じ操作で Strings_English(Path ID 列 122)を選択した状態で Import Dump ボタンをクリック、Strings_English-resources.assets-122.txt ファイルを選択してインポートします。
上記画像のように Dialogue_English(Path ID 列 116)と Strings_English(Path ID 列 122)の Modified に * マークがあるのを確認したら、メニュー File → Save をクリックして resources.assets ファイルを新規保存します。UABEA では UnityEX と違い、開いている assets ファイルへの上書き保存はできないため、新規保存が必要となっている点に注意してください。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを、UABEA で新規保存した resources.assets ファイルに差し替えて日本語化完了です。
以下、日本語化した Epic 版 The Fall のスクリーンショットを公開します。
一応これだけやれば一通り日本語化されているはずなので、通常プレイではおそらくこれで問題ないと思いますが、この方法だけでは 日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) の内容を完全に再現できていません。
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) の内容を完全に再現したい場合は、こちら と こちら の方法での作業が必要です。
Epic 版 The Fall(Unity 2020.2.2f1) dnSpy を使った Assembly-CSharp.dll ファイル内メッセージ日本語化方法
ここでは Epic 版 The Fall インストール先 The Fall_Data\Managed
フォルダにある Assembly-CSharp.dll ファイルにあるテキストを書き換えることになるため、あとで元のデータに戻したい場合は事前に Assembly-CSharp.dll ファイルをバックアップしておくか、Epic Games Launcher の整合性チェック機能 を使うようにしてください。
UABEA を使った日本語化 だけでは一部が日本語化されません。上記の画像はゲーム開始直後に表示されるメッセージでこの部分は英語のままとなっています。(なぜ、この箇所のみ英語になっているのかについては こちら で説明)
日本語化されなかったところについては Epic 版 The Fall インストール先 The Fall_Data\Managed
フォルダにある Assembly-CSharp.dll ファイルを dnSpy で開き、該当するゲーム内メッセージを書き換えることで日本語化できます。
なお、今回公開配布した Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) には日本語化した Assembly-CSharp.dll ファイルは含めていません。
dnSpy で Epic 版 The Fall インストール先 The Fall_Data\Managed
フォルダにある Assembly-CSharp.dll ファイルを開きます。
画面右下にある Search 欄で Search For: Number/String にして翻訳対象テキストを入力して検索します。ここでは Explore To Progress と入力します。
検索結果に表示された DialogueEnd をダブルクリックします。
class BlurryTextWriter に移動して翻訳対象テキストが見つかります。
DialogueEnd 内で右クリックから Edit Method C(#)... をクリックします。
別のやり方として画面左側にある Assembly Explorer から BlurryTextWriter → DialogueEnd() を右クリックから Edit Method C(#)... をクリックする方法もあります。
Edit Code 画面が開くので DialogueEnd() 内にある英語テキストを以下の通り、日本語化 Mod の内容に書き換えて Compile ボタンをクリックします。
- Explore to Progress → 進行を調査する
- Many hints in The Fall are hidden in data nodes like these two. If you're not sure where to go, explore and read! → ゲーム内のヒントは、これらの2つのようなデータノードに含まれています。行き先が分からなくなった場合はデータノードを調査してください。
Edit Code 画面で Compile ボタンをクリック後 dnSpy 画面に戻るので、メニューの File → Save Module ... をクリックします。
Save Module 画面で OK ボタンをクリックして Assembly-CSharp.dll ファイルを更新すれば日本語テキスト書き換え完了です。
ゲームを起動して英語表示だったところが日本語で表示されたら成功です。
Epic 版 The Fall(Unity 2020.2.2f1)フォント差し替え方法
ここでは Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルにフォントデータを取り込むことになるため、あとで元のフォントに戻したい場合は事前に resources.assets ファイルをバックアップしておくか、Epic Games Launcher の整合性チェック機能 を使うようにしてください。
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) に含まれている PixelMplus12 フォント に変更する方法説明します。
フォント変更は必須ではありませんが、デフォルトフォントのままだと一部が中華フォントで表示される仕様となっています。気になる人に向けてフォントを差し替えられるようにファイルを用意しておきました。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを UABEA(latest build 版)で開きます。
Asset Info 画面で fixedsys(Path ID 列 1531)項目を選択した状態で画面右側にある Import Raw ボタンをクリックします。
こちらで用意した Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) に含まれている fixedsys-resources.assets-1531.dat ファイルが UABEA でのインポートに必要なフォントデータファイルです。(フォントデータの変更・作成方法については こちら で解説します)
fixedsys-resources.assets-1531.dat ファイルを選択してインポートします。
fixedsys-resources.assets-1531.dat ファイルのインポート後は fixedsys(Path ID 列 1531)の Modified 列に * マークが表示されます。
fixedsys(Path ID 列 1531)の Modified に * マークがあるのを確認したら、メニュー File → Save をクリックして resources.assets ファイルを新規保存します。UABEA では UnityEX と違い、開いている assets ファイルへの上書き保存はできないため、新規保存が必要となっています。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを、UABEA で新規保存した resources.assets ファイルに差し替えてフォント変更完了です。
以下、PixelMplus12 フォント に変更した Epic 版 The Fall のスクリーンショットを公開します。
Epic 版 The Fall(Unity 2020.2.2f1) - UnityEX 用日本語化 Mod ファイル the_fall_jp_conv_20151228.zip → UABEA 用日本語化 Mod ファイル変換方法
ここでは 日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) からどのようにして Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) を作成(変換)したのか、その方法について解説します。
Epic 版 The Fall(Unity 2020.2.2f1) UABEA 用英語 → 日本語テキストファイル置換方法
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) に含まれる日本語テキストファイルから、どのような手順を踏んで UABEA インポート用日本語テキストファイルを作成したのかを説明します。
かんたんに説明すると MultiReplace という文字列置換ソフトを使って英語 → 日本語置換リストを作成して日本語への置換作業をしています。以下、その手順となります。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを UABEA(latest build 版)で開きます。
Asset Info 画面で Dialogue_English(Path ID 列 116)項目を選択した状態で画面右側にある Export Raw ボタンをクリックして Dialogue_English-resources.assets-116.dat ファイルをエクスポートします。続けて Export Dump ボタンをクリックして Dialogue_English-resources.assets-116.txt ファイルをエクスポートします。
次に同じ手順で Strings_English(Path ID 列 122)項目を選択した状態で画面右側にある Export Raw ボタンをクリックして Strings_English-resources.assets-122.dat ファイルをエクスポートします。続けて Export Dump ボタンをクリックして Strings_English-resources.assets-122.txt ファイルをエクスポートします。
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) の Unity_Assets_Files\resources
フォルダにある日本語テキストファイル Dialogue_English.txt ファイルと Strings_English.txt を用意します。
上の画像は Strings_English.txt ファイルと Strings_English-resources.assets-122.dat ファイルを比較したものです。
データ終端付近にあるタグ内容に相違があり、日本語テキスト Strings_English.txt ファイルにあった <ExploreToProgress> タグと <ExploreToProgressBody> タグは、Strings_English-resources.assets-122.dat ファイルには含まれていません。つまり、このタグ部分の英語テキストはどういうわけか Epic 版 The Fall では最初から存在しないことになっています。
こちらで dnSpy を使った Assembly-CSharp.dll ファイル一部の英語テキストの日本語化方法 を紹介しましたが、このタグ内のテキストが該当する部分になります。
また、Strings_English-resources.assets-122.dat ファイルには Strings_English.txt ファイルにはなかった <EndScreenPromoString> タグがあり、これは Epic 版 The Fall もしくは Unity 2020 バージョン で追加されたものと思われます。
以上の差分内容を加味して、先ほど UABEA を使って resources.assets ファイルからエクスポートした dat ファイル(Dialogue_English-resources.assets-116.dat と Strings_English-resources.assets-122.dat)と、日本語テキストファイル(Dialogue_English.txt ファイルと Strings_English.txt)をテキストエディタで MultiReplace 用置換リストを作成するために修正・整理します。
今回の置換リスト用 dat ファイル(置換元英語)およびテキストファイル(置換先日本語)を以下のルールで修正・整理します。
ここまでの成果物は the_fall_jp_conv_20151228-UABEA-20210703-MultiReplace-EN-to-JP.7z ファイル内にある en-text フォルダと jp-text フォルダの各テキストファイルにまとめてあります。
- dat ファイルを拡張子 txt 変換、テキストファイルは UTF-8(BOM なし) 形式で編集・保存
- 先頭行の <DialogueStrings> または <DataPoints> タグがある行を行ごと削除
- 最終行の </DialogueStrings> または </DataPoints> タグがある行を行ごと削除
- 正規表現で各行頭のタグ前にあるインデントのスペースまたはタブを削除
- 置換元テキスト(英語)に日本語テキストにあった <ExploreToProgress> タグと <ExploreToProgressBody> タグと英語テキストを追加(英語テキストは the_fall_jp_conv_20151228.zip 同梱の the_fall_localize_jp.xlsx から抽出)
- 置換先テキスト(日本語)に <EndScreenPromoString> タグと英語テキストを追加(こちらは未翻訳)
作成できた置換元テキスト(英語)と置換先テキスト(日本語)を Excel ファイルにまとめ、文字列連結演算子(&)を使って結合します。こちらの成果物は the_fall_jp_conv_20151228-UABEA-20210703-MultiReplace-EN-to-JP.7z ファイルの xls フォルダにある TheFall_MultiReplace.xlsx ファイルにまとめています。(Excel では文字列連結演算子(&)しか使っていないので、Google スプレッドシートでも同様なことは可能だと思います)
xls ファイル内の Dialogue-MultiReplace タブと Strings-MultiReplace タブの各セルに、置換元テキストと置換先テキストの間に @
を入れていますが、これは MultiReplace の区切り文字として扱うためです。(置換元および置換先テキストに @
を使っていないため)
MultiReplace をダウンロードして展開・解凍したら、成果物 the_fall_jp_conv_20151228-UABEA-20210703-MultiReplace-EN-to-JP.7z ファイルの MultiReplace フォルダ内にある Epic-The-Fall-Unity2020-EN-to-JP.mrp ファイルを、MultiReplace の exe ファイルがあるフォルダ内に配置します。
MultiReplace を起動してメニューからオプション → 設定読み込みをクリック、先ほど配置した Epic-The-Fall-Unity2020-EN-to-JP.mrp ファイルを開くことで、上記画像のように置換リストが設定されます。
内容は A タブ 1番目が Dialogue_English.txt 用置換リストで、A タブ 2番目に Strings_English.txt 用置換リストを設定しています。(それぞれ 1行目にある @@(区切り文字連続 2文字) はコメント扱い)
ちなみに Epic-The-Fall-Unity2020-EN-to-JP.mrp ファイルを配置しないで mrp 置換リストファイルを作成・設定したい場合は、成果物 the_fall_jp_conv_20151228-UABEA-20210703-MultiReplace-EN-to-JP.7z ファイルの xls フォルダにある TheFall_MultiReplace.xlsx ファイル内の Dialogue-MultiReplace タブと Strings-MultiReplace タブ内容をコピーして置換リストに貼り付け、MultiReplace 画面内にある区切り文字設定を @ に変更して保存することで mrp ファイルを作成できます。
置換したいリストに切り替えた状態で MultiReplace 画面内へ、UABEA でエクスポートした Dialogue_English-resources.assets-116.txt ファイルと Strings_English-resources.assets-122.txt ファイルをドラッグアンドドロップすることで英語 → 日本語に置換できます。
置換後のファイルは Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) に含まれる Dialogue_English-resources.assets-116.txt ファイルと Strings_English-resources.assets-122.txt ファイルと同じものになります。
注意点として置換できたファイルが別名で保存されますが、その際に UTF-8 ではなく Shift-JIS 形式として保存されてしまったことがありました。そのまま UABEA でインポートしてしまうとゲーム内で文字化けしまうため、Shift-JIS のテキストファイルからテキスト内容をコピーして、UTF-8(BOM なし) 形式の空のテキストファイルを作成してそこに貼り付けて保存するという作業を入れています。
原因はわかりませんでしたが、UABEA でテキストをインポートする際には UTF-8 形式になっているかどうか確認しておく必要があります。
Epic 版 The Fall(Unity 2020.2.2f1) UABEA 用フォント変更方法
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) に含まれる ttf フォントファイルから、どのような手順を踏んで UABEA インポート用フォントデータファイルを作成したのかを説明します。
日本語化 Mod ファイル(the_fall_jp_conv_20151228.zip) には fixedsys.ttf フォントファイルが同梱されていますが、PixelMplus(ピクセル・エムプラス)の PixelMplus12-Regular.ttf フォントファイル と同じものです。(ファイル名を変更しただけのもの)
UnityEX が使えた日本語化方法では ttf フォントファイルを UnityEX でインポートすることでフォント変更することができましたが、Epic 版 The Fall ではその方法が使えないため、UABEA でフォントデータをエクスポート後バイナリデータを書き換えてインポートするという形をとることになります。
Epic 版 The Fall インストール先 The Fall_Data フォルダにある resources.assets ファイルを UABEA(latest build 版)で開きます。
Asset Info 画面で fixedsys(Path ID 列 1531)項目を選択した状態で画面右側にある Export Raw ボタンをクリックして fixedsys-resources.assets-1531.dat ファイルをエクスポートします。
こちらの画像は UABEA の Asset Info 画面で fixedsys(Path ID 列 1531)項目を選択した状態で View Data ボタンを押したときに表示される View Data 画面です。
ConvertCase = -2
となっておりダイナミックフォントが指定されています。(-1 ならビットマップフォント指定)
この fixedsys-resources.assets-1531.dat ファイルにはダイナミックフォントがすでに内包されている状態で、アドレス範囲を特定できれば別の ttf フォントファイルに差し替えが可能です。(関連記事)
View Data 画面内にある FontData 項目にダイナミックフォントの ttf ファイルサイズと ttf ファイルのバイナリデータがそのまま格納されています。(Array Array ~ 以下をクリックして展開すると表示するの時間がかかり、その間応答なしの状態が続くため展開は非推奨)
先ほどエクスポートした fixedsys-resources.assets-1531.dat ファイルの FontData に該当するバイナリデータをバイナリエディタで書き換えることで、違うフォントに差し替えることができます。
上の画像はバイナリエディタ FavBinEdit でこちらで作成した fixedsys-resources.assets-1531.dat ファイルを開き、FavBinEdit ウォッチデータファイル fixedsys-resources.assets-1531.dat_fixedsys.ttf.FavBinEdit-W を読み込んだ時のものです。
それぞれのウォッチデータの名称についてはわかりやすいように判別しやすい名前にしただけなので特に意味はありません。ここで公開したウォッチデータは UABEA の View Data の情報をもとに書き換え対象となるバイナリデータを特定したものとなっています。
ウォッチデータ FontData int size = 27216
について、次のウォッチデータ ttf image
のバイナリデータのサイズが 27,216バイトとなっており、これを 16進数 4バイトのリトルエンディアンに変換すると 50 6A 00 00
となります(上記 Windows 電卓 - プログラマーの計算結果画像を参照)。ここには差し替えたいフォントサイズ(単位:バイト)を 16進数 4バイトのリトルエンディアンで書き換えます。
ウォッチデータ ttf image
に差し替えたいフォントのバイナリデータに書き換えます。書き換え方法やウォッチデータの作成方法については過去記事 PC ゲーム AI War: Fleet Command で日本語を表示する方法 を参考にしてください。
ウォッチデータ float Ascent 13.008
(vector m_FontData(Array Array (size 27216)) の下にあるデータ)は、ウォッチデータ ttf image
のデータ終端位置を特定・確認する目印のためにマークした箇所です。書き換えは必要ありません。
ここでは float Ascent 13.008
のアドレス位置を特定していますが、ゲームによっては同じフォントデータでもフォーマットが異なることがあるため、データ項目の並びも異なる可能性があります。
そのため、UABE や UABEA、AssetStudio を使ってどのような順序で格納されているのか確認する必要があります。
参考に Epic 版 The Fall(Unity 2020.2.2f1) UABEA 対応版 2021年7月3日版日本語化 Mod ファイル(the_fall_jp_conv_20151228-UABEA-20210703.7z) に含まれる PixelMplus12-Regular.ttf フォントファイル に差し替えた fixedsys-resources.assets-1531.dat の FavBinEdit ウォッチデータファイル fixedsys-resources.assets-1531.dat_PixelMplus12-Regular.ttf.FavBinEdit-W を同梱しておきます。
おまけ:10進数の浮動小数点から Float 型 16進数バイナリデータを探す方法
2021年12月に コメント で Unity アセットファイルのバイナリデータから、浮動小数点がある Float 型の 16進数バイナリデータを探す方法についての質問がありました。
最終的に しらいとブログさんのところにある Float , Double 型をバイナリに変換して精度を確認記事 で変換して、リトルエンディアンに直したもので検索するという回答で一応解決することができました。
ただ、この個人ブログの変換記事だけに頼って目的のデータを探すというのは、万が一使えなくなった時のことを考えると困ってしまうことになるので、この機会に他にも方法がないか調べることにしました。
いろいろ調べたところ別のやり方で Float 型 16進数バイナリデータを探す方法が見つかりましたので紹介します。うまく使い分けることで目的のデータを見つけやすくなるのではないかと思います。
Unity アセットファイルのフォーマットから目的のバイナリデータのアドレスを検索
UABEA や UABE(Unity Assets Bundle Extractor) で調べた Unity アセットファイルのデータフォーマットからデータの開始アドレスとデータサイズを使って、目的のデータのアドレスを特定してしまうものです。
UABEA で The Fall_Data フォルダにある resources.assets ファイルを開き、フォントデータ fixedsys(Path ID 1531)のデータフォーマット画面 で、特定対象の float m_Ascent = 13.008
の直前にある vector m_FontData - Array Array (size 27216)
のバイナリデータを使います。
vector m_FontData - Array Array (size 27216)
の開始アドレスは 0x50
、データサイズは 27,216 なのでこれを 16進数に変換すると 0x6A50
となります。
0x50(開始アドレス) + 0x6A50(データサイズ)
= 0x6AA0
となって目的の float m_Ascent = 13.008
のアドレス開始位置を特定 できます。Float 型は 4バイトなのでアドレス 0x6AA0
~ 0x6AA3
までが float m_Ascent = 13.008
がある 16進数バイナリデータ ということになります。
今回の場合はこのようにはっきりとわかりやすいダイナミックフォントの ttf ファイルのバイナリデータとファイルサイズがあったので目的のデータを見つけることはできましたが、ただの 00
データだった場合などデータの並びによってはこの方法は使えない可能性があります。
バイナリエディタ HxD を使ったバイナリデータを検索
バイナリエディタ HxD を使って Float 型 16進数バイナリデータを探す方法です。
HxD で The Fall_Data フォルダにある resources.assets ファイルから UABEA でエクスポートした fixedsys-resources.assets-1531.dat ファイルを開きます。
HxD の検索画面(Ctrl+F)で浮動小数点タブを開き、浮動小数点型にある「Single(float32)、4バイト」が選択されている状態で、検索する文字列に 13.008
と入力してすべて検索ボタンをクリックします。
検索結果はアドレス 0x6AA0
にて C5 20 50 41
の 16進数データがヒットしました。
このようにバイナリエディタなどで浮動小数点で検索できる機能があれば、浮動小数点から 16進数データを見つけることができます。
ちなみに HxD にはデータインスペクター(メニュー 表示 → データインスペクター(Ctrl+Alt+D))を表示することができます。このウィンドウでは選択した 16進数データを様々なデータ型に変換します。
C5 20 50 41
を選択した状態では Single(float32) に 13.0080003738403
が表示されていることが確認できます。
今回は HxD を使って目的のデータを検索して見つけることができましたが、ほかにも 同様なツールや解析ツール でも同じ方法で調べられることができるかもしれません。
Epic 版 The Fall ボーダーレスウィンドウモード起動方法
The Fall の画面モードにはフルスクリーンモードとウィンドウモードの 2種類しかないようです。PCGamingWiki によればコマンドライン引数を指定することでボーダーレスウィンドウモードとして起動できるようにと説明があります。
Epic 版 The Fall では Epic Games Launcher の設定を開き、ゲームの管理にある THE FALL を開いて追加コマンドライン引数に -screen-fullscreen 0 -popupwindow
を入力することでボーダーレスウィンドウモードで起動することができます。
Re: Re: To awgsさん
× ここでは見やすいように 2バイト単位でスペースを入れてますが、スペースなし(C5205041)でも検索可能です。
〇 ここでは見やすいように 1バイト単位でスペースを入れてますが、スペースなし(C5205041)でも検索可能です。