PC ゲーム Syberia 3 で日本語を表示する方法

2021年04月23日
0

PC ゲーム Syberia 3 で日本語を表示する手順を確立することができましたので、そのやり方を説明します。

PC ゲーム Syberia 3 で日本語を表示する方法

PC ゲーム Syberia 3 テキスト・フォント解析基本情報

PC ゲーム Syberia 3 で日本語フォントの追加とテキストファイルの翻訳方法は、2021年1月に ブリッツさんのブログ記事 ですでに解析済みで日本語フォントの作成およびテキスト翻訳の成功例があります。

ただ、テキストファイル(.xml 形式)は問題ありませんが、ビットマップ(画像)フォントを日本語フォントに置き換えるために FontMBMaker を使用した際に、Syberia 3 には対応しておらずそのまま使えないため 一部データの修正が必要なこと、修正後作成できたフォントデータから必要なデータの抽出と加工および調整作業 が必要で、かなりの手間を要する内容となっています。

今回この記事では ブリッツさんのブログ記事内容 を参考に、Unity ゲームエンジン からフォントを作成して Syberia 3 で使用できる日本語フォントのサンプルファイルを公開するとともに、どのような手順で日本語フォントを作成したのか、解析内容の公開とその手順を説明します。

Unity ゲームエンジン のインストールおよびフォント作成、Unity 用解析ツールの使用、バイナリエディタの使用など、各種導入から日本語フォント完成までの道のりは長いものとなっていますが、フォントの選択肢が広がること、限定的ですがビットマップ(画像)フォントについておおよその仕様を把握することができます。(成果物ファイルも公開します)

今回は Syberia 3 のみの内容となっていますが、同じ古い Unity ゲームエンジンのバージョンで同様なビットマップ(画像)フォントを利用しているゲームがあれば、同じような解析方法とビットマップフォント作成手順で日本語フォント差し替えに応用できるかもしれません。

PC ゲーム Syberia 3 日本語フォントサンプルファイル公開

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Steam 版 Syberia 3 日本語フォント表示可能
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、GOG 版 Syberia 3 日本語フォント表示可能

今回、日本語フォントの導入と日本語表示テストするためにインストールした Steam 版 および GOG 版 Syberia 3 です。今回のテストではどちらの配信プラットフォームでも日本語表示を確認しています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Steam ライブラリで Syberia 3 プロパティ画面を開き、ローカルファイルタブで 「ローカルファイルを閲覧...」 をクリックしてインストールフォルダを開く

Steam 版 Syberia 3 でインストール先フォルダを開きたい場合、Steam ライブラリからプロパティ画面を開き、ローカルファイルにある 「参照...」 ボタンをクリックすることでインストール先フォルダにすぐにアクセスできます。

または、Steam ライブラリでタイトルを右クリック → 管理 → ローカルファイルを閲覧、をクリックすることでインストール先フォルダを開くこともできます。

次の項目 から Unity ゲームエンジン で作成した日本語フォントサンプルファイルを Syberia 3 に導入する方法を説明します。

また、今回の日本語フォントを導入するために行った解析方法については こちら で、Unity ゲームエンジン を使った日本語フォント作成方法は こちら、翻訳対象のテキストファイルについては こちら で説明します。

Syberia 3 日本語フォントサンプルファイルインストール方法

私が作成した Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7z を公開します。

この日本語フォントサンプルファイルは ブリッツさんのブログ記事内容 を参考にして作成したもので、繁体中文(Traditional Chinese)を日本語に置き換えて日本語を表示するようにします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7z ダウンロードして展開・解凍、Unity_Assets_Files フォルダをコピー

Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7z をダウンロードして展開・解凍します。

Unity_Assets_Files フォルダがあるのでこれをコピーします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、ゲームインストール先 Syberia3_Data フォルダに、コピーした Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7z の Unity_Assets_Files フォルダを配置

ゲームインストール先 Syberia3_Data フォルダに、コピーした Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7zUnity_Assets_Files フォルダを配置します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、ゲームインストール先 Syberia3_Data フォルダに UnityEX.exe を配置して実行

UnityEX をダウンロードして、同じようにゲームインストール先 Syberia3_Data フォルダに UnityEX.exe を配置して実行します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、ゲームインストール先 Syberia3_Data フォルダに UnityEX.exe を配置して実行、UnityEX 画面内にある Open archive から Syberia3_Data フォルダにある resources.assets ファイルを開き、Import files ボタンをクリックして Unity_Assets_Files フォルダのファイルをインポート

UnityEX 画面内にある Open archive から Syberia3_Data フォルダにある resources.assets ファイルを開きます。(ドラッグアンドドロップでも可)

resources.assets ファイルを開いたら UnityEX 画面上部にある Import files ボタンをクリックすると Unity_Assets_Files フォルダにあるファイルをインポートします。

これで日本語フォントの入れ替えが完了して、日本語に翻訳されたテキストがあれば日本語で表示できるようになります。

この日本語サンプルファイルでは繁体字テキストファイルから英語テキストファイルに入れ替えているので、翻訳していないところは英語テキストで表示されます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、UnityEX で Unity_Assets_Files フォルダのファイルをインポートした後、ゲームを起動して OPTIONS → GAME にある TEXT LANGUAGE を ENGLISH から 日本語(繁體中文から書き換え)に変更
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、、UnityEX で Unity_Assets_Files フォルダのファイルをインポートした後、ゲームを起動して OPTIONS → GAME にある TEXT LANGUAGE を ENGLISH から 日本語(繁體中文から書き換え)に変更

ゲームを起動して OPTIONS → GAME にある TEXT LANGUAGE を ENGLISH から 日本語(Traditional Chinese から書き換え)に変更します。今回使用した日本語フォントは ペン字版 Y.OzFont(TTC パック) です。

以下、システムとシーンの一部を日本語に翻訳(シーンは機械翻訳)したスクリーンショットを公開します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 日本語フォントサンプルファイル公開、Syberia 3 日本語フォントサンプルファイルインストール方法、日本語フォント・テキストスクリーンショット

PC ゲーム Syberia 3 中国語(繁体字)フォント解析

ブリッツさんのブログ記事 にてある程度 Syberia 3 の中国語(繁体字)フォントの解析が済んでいますが、ここではより正確に詳細に解析する方法を紹介します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック

UABE(Unity Assets Bundle Extractor 2.2 stable d) を使って Syberia3_Data フォルダにある resources.assets ファイルを開きます。

Path ID 11128 にある MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリックします。

ちなみに Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM は繁体字(Traditional Chinese)フォント情報、Path ID 11129 の MonoBehaviour MSSONG_SCHINSE_CUSTOM は簡体字(Simplified Chinese)フォント情報と思われます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択

UABE で MonoBehaviour を開いた場合、画像のように Asset View 画面が表示されるので 「はい」 を選択します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択

Asset View 画面 で 「はい」 を選択した後、Open the Assembly file 画面が何度か表示されるので 「キャンセル」 を選択し続けます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容

MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容が表示されました。

今回は正常に表示できていますが、UABE が対応していない(基本的に Unity 2019 バージョン以降の)ゲームデータだと、同じ操作をしても Asset Data 内容が正確に表示できない(表示される項目が極端に少ない)ことがあります。

もし、先ほどの Asset View 画面 で 「いいえ」 を選択してしまった場合は、Asset Data の内容が正しく表示されません。

その場合は、もう一度 resources.assets ファイルを開きなおして同じ操作をするか、メニューにある Tools → Get script information から Asset View 画面 を開いて 「はい」 を選択してやり直します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容、FaceInfo(m_fontInfo)と TMP_Glyph(m_glyphInfoList)の内容

MonoBehaviour MSSONG_CHINSE_CUSTOM の FaceInfo(m_fontInfo)TMP_Glyph(m_glyphInfoList) 一部の情報内容です。

MonoBehaviour MSSONG_CHINSE_CUSTOM にある FaceInfo(m_fontInfo) の一部と TMP_Glyph(m_glyphInfoList) 全部を この後作成する日本語フォント情報 に書き換えることで、中国語(繁体字)フォントから日本語フォントに入れ替えることができます。

この Asset Data の内容をもとにバイナリエディタで書き換え対象となるデータ位置を特定します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UnityEX で Syberia3_Data フォルダにある resources.assets ファイルを開き、# 11128 の resources_00017.-2 を右クリックから Export with convert or Raw をクリック、Syberia3_Data\Unity_Assets_Files\resources フォルダに resources_00017.-2 ファイルをエクスポート

UnityEX を使って書き換え対象の中国語(繁体字)フォント情報ファイルをエクスポートします。

UnityEX で Syberia3_Data フォルダにある resources.assets ファイルを開きます。

# 列 11128 にある resources_00017.-2 を右クリックから Export with convert or Raw をクリックします。Syberia3_Data\Unity_Assets_Files\resources フォルダに resources_00017.-2 ファイルがエクスポートされます。

この resources_00017.-2 ファイルは UABE で開いた Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM と同じです。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UnityEX で Syberia3_Data フォルダにある resources.assets ファイルを開き、# 11128 の resources_00017.-2 を右クリックから Export with convert or Raw をクリック、Syberia3_Data\Unity_Assets_Files\resources フォルダに resources_00017.-2 ファイルをエクスポート、FavBinEdit で resources_00017.-2 ファイルを開き、UABE の Asset Data 内容から FaceInfo(m_fontInfo)と TMP_Glyph(m_glyphInfoList) のウォッチデータを作成

エクスポートした resources_00017.-2 ファイルを バイナリエディタ FavBinEdit で開き、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容 をもとにウォッチデータを作成します。

ウォッチデータを作成する方法やコツについては 過去記事 を参考にしてください。

こちらですでに作成済みウォッチデータを用意しておいたので、バイナリエディタ FavBinEditresources_00017.-2 ファイルを開き、ウォッチデータファイル resources_00017.-2.FavBinEdit-W を読み込めば上の画像のように書き換え対象のアドレスを特定できるようにしています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容、TMP_Glyph(m_glyphInfoList)先頭データの内容

ちなみに TMP_Glyph(m_glyphInfoList) にある 0番の TMP_Glyph data のみ各項目特定のためウォッチデータを作成しています。

ウォッチデータの内容から TMP_Glyph data 1つ(1文字)につき 32バイト(8項目×4バイト)のデータを用意していることになります。(int や float 型宣言後に数字が記載されていない場合は基本的に 4バイト)

以降、残りの 1~2451番の TMP_Glyph data は数が多いため、ここでは一つのウォッチデータ(最後尾にある水色ウォッチデータ remain TMP_Glyph data)にまとめています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UnityEX で Syberia3_Data フォルダにある resources.assets ファイルを開き、# 11128 の resources_00017.-2 を右クリックから Export with convert or Raw をクリック、Syberia3_Data\Unity_Assets_Files\resources フォルダに resources_00017.-2 ファイルをエクスポート、FavBinEdit で resources_00017.-2 ファイルを開き、UABE の Asset Data 内容から FaceInfo(m_fontInfo)と TMP_Glyph(m_glyphInfoList) のウォッチデータを作成
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 中国語(繁体字)フォント解析、UABE(Unity Assets Bundle Extractor 2.2 stable d)で Syberia3_Data フォルダにある resources.assets ファイルを開き、Path ID 11128 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容、TMP_Glyph(m_glyphInfoList)データ終端の内容

TMP_Glyph(m_glyphInfoList)TMP_Glyph data データ終端アドレスは、0 データが連続して続くところがあるので、それを目安にすることで見つけられます。

TMP_Glyph(m_glyphInfoList)TMP_Glyph data データ終端にある float xAdvance = 53.000000 は 16進数で 0x42540000 で、リトルエンディアンで 00 00 54 42 となり、画像のウォッチデータ終端にある 4バイトのバイナリデータ と一致します。

PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法

ここでは synctam さんの記事内容 を参考に Unity ゲームエンジンのインストールTextMesh Pro を使って日本語フォントを作成 します。

TextMesh Pro で作成した日本語フォント解析データ抽出および加工 をして、そのデータを 中国語(繁体字)フォント情報ファイルに反映 します。

一部を除きこのセクションでの成果物はすべて Syberia 3 解析データと日本語フォントデータ(Unity 2018.4.34f1 - TextMesh Pro 1.2.2) Unity2018_4_34f1-TextMesh-Pro-1_2_2-YOzRSP-PoE2JoFont_mp2pr-Font-Data.7z ファイルにまとめて公開しておきます。

同じ手順で日本語フォントを作成した時のチェック用や、データ内容を確認したい場合、データを再利用したい時などにお使いください。

ゲームエンジン Unity 2018.4.34f1(LTS)インストール

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、UnityEX でアセットファイル(.assets)を開くことで Unity エンジンの正確なバージョンが判明、Syberia 3 の場合 Version 5.4.3p3

UnityEX を使ってアセット(.assets)ファイルを読み込むことで、そのゲームで使われている Unity ゲームエンジン のバージョンがわかるようになっています。

Syberia 3 では Unity ゲームエンジン Version 5.4.3p3 であることがわかりました。

Unity ゲームエンジン をインストールするにあたり同じバージョンでそろえたほうが良いかと思いましたが、今回作成するフォントは TextMesh Pro が必要で、Unity 2018 から TextMesh Pro が標準実装 されています。

それより前の Unity バージョンでは別途 TextMesh Pro のインストールが必要なため、今回は Unity 2018 をインストールして最初から実装されている TextMesh Pro で日本語フォントを作成することにします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、インストールボタンをクリックして正式版 Unity 2018.4.34f1(LTS)を選択して次へをクリック

Unity ゲームエンジン をインストールする方法は Unity Hub を使ってインストールする方法と、Unity Hub を介さない アーカイブサイト から直接インストーラーファイルをダウンロードしてインストールする方法があるようです。

今回は Unity アカウント作成済みでログインした状態で Unity Hub を使いインストールすることにします。

詳細な手順については Unity 公式サイト より確認してください。

Unity Hub を起動したら画面右上にある 「インストール」 ボタンをクリックします。

Unity バージョンを加える画面が表示されるので、正式版にある Unity 2018.4.34f1(LTS) を選択して次へをクリックします。(Unity 2018 の最終バージョンのようです。バージョン履歴は アーカイブサイト から確認できます)

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、Unity バージョンを加える画面はデフォルト設定のまま 「実行」 をクリック

画面が切り替わるので、実行ボタンをクリックするとインストールが始まります。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、Unity 2018.4.34f1(LTS)完了

Unity 2018.4.34f1(LTS)のインストールが完了しました。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、プロジェクト画面から新規作成をクリック

Unity 2018.4.34f1(LTS)インストール後、プロジェクトに移動して 「新規作成」 ボタンをクリックします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、プロジェクト画面から新規作成をクリックしてインストールした 2018.4.34.f1 をクリック

プロジェクトの 「新規作成」 ボタンをクリックすると、インストールした Unity バージョン 「2018.4.34f1」 が表示されるので、これをクリックします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、ゲームエンジン Unity 2018.4.34f1(LTS)インストール、プロジェクト画面から新規作成をクリックしてインストールした 2018.4.34.f1 をクリック、テンプレート画面で 3D を選択した状態で作成ボタンをクリック

テンプレート画面で 「3D」 を選択して、プロジェクト名と保存先を指定したら 「作成」 ボタンをクリックすると、いろいろと処理が流れた後に Unity 開発環境画面が表示されます。

TextMesh Pro 1.2.2 日本語フォント作成

ここでは synctam さんの記事内容 にそって日本語フォントを作成していきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → Package Manager をクリック、TextMesh Pro Version 1.4.1

Unity 2018.4.34.f1 メインメニューから Window → Package Manager をクリックして TextMesh Pro を開きます。Unity 2018.4.34.f1 では TextMesh Pro バージョン 1.4.1 がデフォルト設定となっています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → Package Manager をクリック、TextMesh Pro Version 1.2.2 に変更して Update to ボタンをクリック

Package Manager 画面から TextMesh Pro のバージョンを変更することができます。

今回はバージョン 1.2.2 に変更してバージョン表記横にある Update to ボタンをクリックします。

TextMesh Pro の各バージョンの主な違いについては こちらの記事 を参考にしてください。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → Package Manager をクリック、TextMesh Pro Version 1.2.2 にバージョン変更

TextMesh Pro Version 1.2.2 にバージョン変更できました。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Import TMP Essential Resources をクリック、Import Unity Package 画面で Import ボタンをクリック

Unity 2018.4.34.f1 メインメニューから Window → TextMeshPro → Import TMP Essential Resources をクリックします。

Import Unity Package 画面で Import ボタンをクリックします。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Assets → Import New Asset... をクリック、文字一覧リスト PoE2JoFont_mp2pr.txt ファイルをインポート
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Assets → Import New Asset... をクリック、フォントファイル YOzRSP.ttf ファイル(ペン字版 Y.OzFont TTC パック Ver.14.04 7z 版)をインポート

Unity 2018.4.34.f1 のメインメニューから Assets → Import New Asset... をクリックして、日本語フォントファイルと文字一覧テキストファイルを Unity にインポートします。画面下の Project タブにある Assets フォルダへ直接ドラッグアンドドロップでもインポートできます。

今回インポートしたのは ペン字版 Y.OzFont(TTC パック)の YOzRSP.ttf フォントファイルPoE2JoFont_mp2pr.txt です。

上の画像では一部 YOzRSP90(YOzRSP90.ttf ファイルをインポートした時のもの) と表示されていますが、これはいろいろテストしていた時に保存した時のスクリーンショットのもので、実際使用したフォントは YOzRSP(YOzRSP.ttf)です。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリック、Font Source - YOzRSP、Font Size - Custom Size - 53、Atlas Resolution - 4096 8192、Character Set - Characters from File、Character File - PoE2JoFont_mp2pr に設定して Generate Font Atlas ボタンをクリック

これで日本語フォントを作成する準備が整いましたので、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリックします。

Font Settings で以下の設定をしたら Generate Font Atlas ボタンをクリックしてフォント生成を開始します。

  • Font Source - YOzRSP → インポートした YOzRSP.ttf ファイルを指定
  • Font Size - Custom Size 53 → 今回は Syberia 3 中国語(繁体字)フォントサイズ にあわせて同じ数値に設定
  • Atlas Resolution - 4096(Width)、8192(Height) → フォントサイズと文字数ファイルに応じて調整
  • Character Set - Characters from File → 登録したい文字をファイルから選択
  • Character File - PoE2JoFont_mp2pr → インポートした PoE2JoFont_mp2pr.txt 文字一覧ファイルを指定
  • それ以外はデフォルト値

上の設定内容は一例です。ここで設定した値を中国語(繁体字)フォント情報ファイルに反映させる形になります。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリック、Font Source - YOzRSP、Font Size - Custom Size - 53、Atlas Resolution - 4096 8192、Character Set - Characters from File、Character File - PoE2JoFont_mp2pr に設定して Generate Font Atlas ボタンをクリック、約 5分ほどでフォント生成完了、Save TextMeshPro Font Asset をクリックして保存、ファイル名は Syberia 3 中国語(繁体字)フォント名にあわせて 「MSSONG_CHINESE_CUSTOM」

Generate Font Atlas ボタンクリック後、フォント生成が完了すると上のような画像が表示されます。私の PC 環境(CPU は AMD Ryzen 7 3700X、メモリ 64GB)では約 5分ほどの処理時間がかかりました。

フォント生成の結果は画面左中央に表示されます。今回は 7,110 文字生成できました。生成できる文字数はフォントファイルに収録している文字と指定した文字内容に依存します。

フォントの生成時間は Font Settings 内容に影響します。文字数が多ければ多いほど比例して時間がかかるようになりますが、Font Size を Auto Sizing にするとさらに時間がかかるようになります。

問題なければ Save TextMeshPro Font Asset ボタンをクリックして保存します。ファイル名は Syberia 3 中国語(繁体字)フォント名にあわせて 「MSSONG_CHINESE_CUSTOM」 にして保存します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリック、Font Source - YOzRSP、Font Size - Custom Size - 53、Atlas Resolution - 4096 8192、Character Set - Characters from File、Character File - PoE2JoFont_mp2pr に設定して Generate Font Atlas ボタンをクリック、約 5分ほどでフォント生成完了、Save TextMeshPro Font Asset をクリックして保存、ファイル名は Syberia 3 中国語(繁体字)フォント名にあわせて 「MSSONG_CHINESE_CUSTOM」、Unity プロジェクトフォルダの Assets フォルダに保存した MSSONG_CHINESE_CUSTOM.asset ファイル

Unity プロジェクトフォルダの Assets フォルダに保存した MSSONG_CHINESE_CUSTOM.asset ファイルです。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリック、Font Source - YOzRSP、Font Size - Custom Size - 53、Atlas Resolution - 4096 8192、Character Set - Characters from File、Character File - PoE2JoFont_mp2pr に設定して Generate Font Atlas ボタンをクリック、約 5分ほどでフォント生成完了、作成できなかったフォントはログ Glyph Report.txt ファイルに出力

ちなみに Font Asset Creator でフォントを生成した際に、フォントファイルにはない文字がテキストファイルに含まれている場合では、Glyph Report.txt ファイルに生成できなかった文字としてログ出力されます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator をクリック、Font Source - YOzRSP、Font Size - Custom Size - 53、Atlas Resolution - 4096 8192、Character Set - Characters from File、Character File - PoE2JoFont_mp2pr に設定して Generate Font Atlas ボタンをクリック、約 5分ほどでフォント生成完了、作成できなかったフォントは Unity プロジェクトフォルダの Assets フォルダに Glyph Report.txt ファイルとしてログを出力

生成できなかったフォントのログは、Unity プロジェクトフォルダの Assets フォルダに Glyph Report.txt ファイルが出力されます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから Window → TextMeshPro → Font Asset Creator でフォント生成後の Project タブ Assets フォルダに表示された MSSONG_CHINESE_CUSTOM、MSSONG_CHINESE_CUSTOM 選択後画面右側に TextMesh Pro Font Asset 情報表示

Font Asset Creator でフォント生成後、Project タブにある Assets フォルダに格納されます。MSSONG_CHINESE_CUSTOM を選択すると、画面右側に TextMesh Pro Font Asset 情報が表示されます。

TextMesh Pro Font Asset 情報の各項目内容は UABE で MonoBehaviour を開いた時の Asset Data 項目内容 とほぼ一致します。(完全には一致しません)

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、Unity 2018.4.34.f1 のメインメニューから GameObject → 3D Object → TextMeshPro - Text をクリック、FONT SETTINGS の Font Asset に生成した MSSONG_CHINESE_CUSTOM に設定

Unity 2018.4.34.f1 のメインメニューから GameObject → 3D Object → TextMeshPro - Text をクリックします。

FONT SETTINGS の Font Asset に生成した MSSONG_CHINESE_CUSTOM を設定します。

詳しいことはわかりませんが、これをやらないとこのあと行うビルドしたファイルから、生成した目的の日本語フォント情報ファイルとビットマップフォントファイルを抽出することができません。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、配置した 3D Object に生成した日本語フォント設定後、Unity 2018.4.34.f1 のメインメニューから Build Settings... をクリックして Build ボタンをクリック、保存先を聞かれるので適当なフォルダを用意してその場所を選択するとビルド開始

Unity 2018.4.34.f1 のメインメインメニューから Build Settings... をクリックして Build ボタンをクリックします。

保存先を聞かれるので適当なフォルダを用意して、そのフォルダを選択するとビルドを開始します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 日本語フォント作成、配置した 3D Object に生成した日本語フォント設定後、Unity 2018.4.34.f1 のメインメニューから Build Settings... をクリックして Build ボタンをクリック、保存先を聞かれるので適当なフォルダを用意してその場所を選択するとビルド開始、用意したフォルダ内にビルドされたアセットファイル、TextMesh Pro で生成した日本語フォントは sharedassets0_assets(フォント情報) と sharedassets0.assets.resS(フォント画像ファイル)に含まれる

ビルド完了後、選択したフォルダ内にビルドされた実行ファイルやアセットファイルなどが生成されます。

TextMesh Pro で生成した日本語フォントは sharedassets0_assets(フォント情報) と sharedassets0.assets.resS(フォント画像ファイル)に含まれてますので、これを 解析 して データ抽出および加工 を行い、中国語(繁体字)フォント情報ファイルに反映 させます。

TextMesh Pro 1.2.2 作成日本語フォント解析

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UABE(Unity Assets Bundle Extractor 2.2 stable d)で開き、Path ID 8 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック

TextMesh Pro で作成した日本語フォントを含む、ビルドした Unity プロジェクトのアセットファイル sharedassets0_assets を解析するため UABE で開きます。

Path ID 8 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリックします。途中でメッセージが表示されますが対処法については こちら の内容の通りに進めます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UABE(Unity Assets Bundle Extractor 2.2 stable d)で開き、Path ID 8 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容

TextMesh Pro 1.2.2 で作成した日本語フォント MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容です。

中国語(繁体字)フォント MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容 と比べると若干異なる構成となっています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UABE(Unity Assets Bundle Extractor 2.2 stable d)で開き、Path ID 8 の MonoBehaviour MSSONG_CHINSE_CUSTOM を選択して View Data をクリック、Asset View 画面メッセージで 「はい」 を選択、Open the Assembly file 画面で 「キャンセル」 を選択、MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容、TMP_Glyph data の各項目の最後にある float scale = 1.000000、PC ゲーム Syberia 3 では不要なデータ

日本語フォント MonoBehaviour MSSONG_CHINSE_CUSTOM の FaceInfo(m_fontInfo)TMP_Glyph(m_glyphInfoList) 一部の情報内容です。この情報をもとに日本語フォントのウォッチデータを作成します。

ブリッツさんのブログ ですでに言及されてますが、TMP_Glyph data の各項目の最後にある float scale = 1.000000Syberia 3 では不要なデータとなっています。

ちなみにこの float scale = 1.000000TextMesh Pro でフォント作成後の TextMesh Pro Font Asset 情報の Glyph Table にある SF:1 が該当する項目と値だと思われます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント情報)アセットファイルを UnityEX で開く
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UnityEX で開く、MSSONG_CHINESE_CUSTOM Atlas.tex(フォント画像ファイル)と sharedassets0_00001.114(フォント情報ファイル)をエクスポート

TextMesh Pro で作成した日本語フォントを含む、ビルドした Unity プロジェクトのアセットファイル sharedassets0_assetsUnityEX で開きます。

MSSONG_CHINESE_CUSTOM Atlas.tex(フォント画像ファイル)と sharedassets0_00001.114(フォント情報ファイル)をエクスポートします。(成果物は Unity2018_4_34f1-TextMesh-Pro-1_2_2-YOzRSP-PoE2JoFont_mp2pr-Font-Data.7z の Unity_Assets_Files フォルダに含まれています)

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UnityEX で開く、MSSONG_CHINESE_CUSTOM Atlas.tex(フォント画像ファイル)と sharedassets0_00001.114(フォント情報ファイル)をエクスポート、FavBinEdit で sharedassets0_00001.114 ファイルを開き、UABE の Asset Data 内容から FaceInfo(m_fontInfo)と TMP_Glyph(m_glyphInfoList) のウォッチデータを作成
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォント解析、Unity 2018.4.34.f1 で作成した TextMesh Pro 日本語フォントがあるプロジェクトをビルド後、sharedassets0_assets(フォント座標情報)アセットファイルを UnityEX で開く、MSSONG_CHINESE_CUSTOM Atlas.tex(フォント画像ファイル)と sharedassets0_00001.114(フォント情報ファイル)をエクスポート、FavBinEdit で sharedassets0_00001.114 ファイルを開き、UABE の Asset Data 内容から FaceInfo(m_fontInfo)と TMP_Glyph(m_glyphInfoList) のウォッチデータを作成

エクスポートした sharedassets0_00001.114 ファイルを バイナリエディタ FavBinEdit で開き、日本語フォント MonoBehaviour MSSONG_CHINSE_CUSTOM の Asset Data 内容 をもとにウォッチデータを作成します。

ウォッチデータを作成する方法については 過去記事 を参考にしてください。

こちらですでに作成済みウォッチデータを用意しておいたので、バイナリエディタ FavBinEditsharedassets0_00001.114 ファイルを開き、ウォッチデータ sharedassets0_00001.114.FavBinEdit-W を読み込めば、上の画像のように日本語フォントに必要なデータのアドレスを特定できるようにしています。

次に TMP_Glyph data 部分をすべて抽出して float scale = 1.000000 のみ削除 します。

TextMesh Pro 1.2.2 作成日本語フォントデータ修正

日本語フォント MonoBehaviour MSSONG_CHINSE_CUSTOM(sharedassets0_00001.114 ファイル) の TMP_Glyph data 各項目にある float scale = 1.000000 を削除して、PC ゲーム Syberia 3 で使えるように修正します。

ここでは テキストエディタ 秀丸エディタ の置換機能を使います。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までデータを抽出してバイナリファイルを作成

sharedassets0_00001.114 ファイルから TMP_Glyph data の先頭から終端までのデータを抽出してバイナリファイルを作成します。

TMP_Glyph data の先頭データ から 終端データ まで抽出したファイルは成果物として sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data.bin ファイルで公開しておきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までデータサイズ計算方法、7,110文字(TMP_Glyph(m_glyphInfoList) の size)×36バイト(TMP_Glyph data 情報 1文字あたりの合計バイト数、9項目×4バイト)=255,960バイト

sharedassets0_00001.114 ファイルから TMP_Glyph data の先頭データ から 終端データ まで抽出したデータが正しいかどうか、サイズからチェックすることができます。

今回の場合だと、7,110文字(TMP_Glyph(m_glyphInfoList) の size)×36バイト(TMP_Glyph data 情報 1文字あたりの合計バイト数、9項目×4バイト) = 255,960バイトとなるので、sharedassets0_00001.114 ファイルから抽出した sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data.bin成果物)のデータサイズと一致します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストエディタに貼り付け

TMP_Glyph data バイナリデータを バイナリエディタ FavBinEdit でコピーしてテキストファイルに貼り付けて、先頭の空白を削除します。

成果物は sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data.bin.txt ファイルとして公開しておきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストファイルに貼り付け、秀丸エディタの置換機能で正規表現で検索を 「(.{108})」、置換を 「\1\n」 にして実行、区切り文字数 108 の求め方 - 36 バイト単位で区切りたいので (2文字(1バイト)+スペース 1文字)×36=108

MonoBehaviour MSSONG_CHINSE_CUSTOM(sharedassets0_00001.114 ファイル) の TMP_Glyph data 各項目にある float scale = 1.000000 部分に該当するテキストデータ(00 00 80 3F)終端に改行を入れます。

秀丸エディタ の置換機能で 「正規表現」 にチェックマークを入れ、検索に 「(.{108})」、置換に 「\1\n」 にして実行します。

これは指定文字数ごとに改行を入れる正規表現で ここここ を参考にして、秀丸エディタ の正規表現で使えるようにしたものです。置換機能で正規表現が使えるテキストエディタであれば、同様なことはおそらく可能でしょう。

区切り文字数 108 の求め方ですが、 36 バイト単位で区切りたいので (2文字(1バイト)+スペース 1文字)×36 = 108 としています。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストファイルに貼り付け、秀丸エディタの置換機能で正規表現で検索 「(.{108})」、置換 「\1\n」 の実行結果

秀丸エディタ の置換機能で正規表現を使い、テキストデータ TMP_Glyph data を 36バイト単位で改行することができました。

最終行が 7,110行となっているので、文字数 7,110文字と一致します。

置換結果を成果物 sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data-CR-scale.bin.txt ファイルとして公開しておきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストファイルに貼り付け、秀丸エディタの置換機能で正規表現で検索 「(.{108})」、置換 「\1\n」 の実行、置換機能で 「00 00 80 3F (改行)」 を改行のみに置換、置換対象を 00 00 80 3F だけにしないのは途中 00 00 80 3F(float scale = 1.000000 以外) のデータが含まれるため誤って置換されないようにするため

TMP_Glyph data の float scale = 1.000000 を削除するため置換機能で 「00 00 80 3F (改行)」 を改行のみに置換します。(データ最後尾の 00 00 80 3F のみスペース+改行がないので事前に改行を入れておくか手動で削除)

36 バイト単位区切り後に正規表現で置換するなら、検索欄を 「(00 00 80 3F \n|00 00 80 3F$)」 にして置換欄を 「\n」 にすればまとめて置換できます。

置換対象を、改行を除外した 「00 00 80 3F 」 だけにしないのは、途中 float scale = 1.000000 以外の 00 00 80 3F バイナリデータが含まれており、誤って置換されないようにするためです。

置換結果を成果物 sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data-CR-scale-Del-scale.bin.txt ファイルとして公開しておきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストファイルに貼り付け、秀丸エディタの置換機能で正規表現で検索 「(.{108})」、置換 「\1\n」 の実行、置換機能で 「00 00 80 3F (改行)」 を改行のみに置換、置換結果をコピーしてバイナリエディタに貼り付け、データサイズ 227,520バイト

TMP_Glyph data テキストデータ から 00 00 80 3F(float scale = 1.000000 相当) を削除したテキストデータをコピーして バイナリエディタ FavBinEdit に貼り付けて保存します。

保存したバイナリデータを成果物 sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data-Del-scale.bin ファイルとして公開しておきます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、TextMesh Pro 1.2.2 作成日本語フォントデータ修正、sharedassets0_00001.114 ファイルの TMP_Glyph data の先頭から終端までのデータをバイナリエディタ(FavBinEdit)でコピーしてテキストファイルに貼り付け、秀丸エディタの置換機能で正規表現で検索 「(.{108})」、置換 「\1\n」 の実行、置換機能で 「00 00 80 3F (改行)」 を改行のみに置換、置換結果をコピーしてバイナリエディタに貼り付け、データサイズ 227,520バイトチェック方法、7,110文字(TMP_Glyph(m_glyphInfoList) の size)×32バイト(TMP_Glyph data 情報 1文字あたりの合計バイト数、8項目(float scale = 1.000000 削除のため 9 → 8 項目)×4バイト)=227,520バイトと一致

TMP_Glyph data から float scale = 1.00000000 00 80 3F)を削除したバイナリデータのサイズは 227,520バイト となりましたが、このサイズが正しいかどうか確認してみます。

この場合だと、7,110文字(TMP_Glyph(m_glyphInfoList) の size)×32バイト(TMP_Glyph data 情報 1文字あたりの合計バイト数、8項目(float scale = 1.000000 削除のため 9 → 8 項目)×4バイト) = 227,520バイトという計算結果となるので一致することが確認できます。

これで PC ゲーム Syberia 3 用日本語フォントの TMP_Glyph data が完成しました。このデータを使って 中国語(簡体字)フォントを日本語フォントに反映 します。

Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え

TextMesh Pro 日本語フォント用の ビットマップフォントファイルフォント情報ファイル を用意できたので、中国語(繁体字)フォントデータを日本語フォントデータに書き換えます。

UnityEX で Syberia3_Data フォルダにある resources.assets ファイルからエクスポートした resources_00017.-2(中国語(繁体字)フォント情報)バイナリエディタ FavBinEdit で開き、ウォッチデータ resources_00017.-2.FavBinEdit-W を読み込みます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、Syberia3_Data フォルダにある resources.assets ファイルから、UnityEX でエクスポートした resources_00017.-2 ファイルをバイナリエディタで開き、ウォッチデータを読み込んで中国語(繁体字)フォントから日本語フォントデータに書き換え、TMP_Glyph data をすべて削除

画像のように TMP_Glyph data に相当するウォッチデータの部分をすべて削除します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、Syberia3_Data フォルダにある resources.assets ファイルから、UnityEX でエクスポートした resources_00017.-2 ファイルをバイナリエディタで開き、ウォッチデータを読み込んで中国語(繁体字)フォントから日本語フォントデータに書き換え、削除した TMP_Glyph data があったアドレス(ウォッチデータ TMP_Glyph int size がある次のアドレス)に日本語フォントデータの TMP_Glyph data を追加

削除した TMP_Glyph data アドレス(ウォッチデータ TMP_Glyph int size がある次のアドレス)に、日本語フォントの float scale = 1.000000 を削除した TMP_Glyph data バイナリデータ(成果物 sharedassets0_00001.114-TMP_Glyph-m_glyphInfoList-TMP_Glyph-data-Del-scale.bin)をすべてコピーして追加します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、Syberia3_Data フォルダにある resources.assets ファイルから、UnityEX でエクスポートした resources_00017.-2 ファイルをバイナリエディタで開き、ウォッチデータを読み込んで中国語(繁体字)フォントから日本語フォントデータに書き換え、ウォッチデータ TMP_Glyph int size を日本語フォントデータの TMP_Glyph int size に書き換え、文字数 7,110 の場合 16進数で 0x1BC6 リトルエンディアンで C6 1B 00 00

ウォッチデータ TMP_Glyph int size 94 09 00 00(2452) を TextMesh Pro で作成 した日本語フォント文字数に書き換えます。

文字数 7,110 の場合(TMP_Glyph int size = 7110) 16進数で 0x1BC6、リトルエンディアンで C6 1B 00 00 となります。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、Syberia3_Data フォルダにある resources.assets ファイルから、UnityEX でエクスポートした resources_00017.-2 ファイルをバイナリエディタで開き、ウォッチデータを読み込んで中国語(繁体字)フォントから日本語フォントデータに書き換え、FaceInfo の float Padding・float AtlasWidth・float AtlasHeight を日本語フォントデータに書き換え、float Padding 5.0 の場合 16進数で 0x40A00000 リトルエンディアンで 00 00 A0 40、float AtlasWidth 4096.0 の場合 16進数で 0x45800000 リトルエンディアンで 00 00 80 45、float AtlasHeight 8192.0 の場合 16進数で 0x46000000 リトルエンディアンで 00 00 00 46

ウォッチデータ float Padding 00 00 00 00(0)、float AtlasWidth 00 00 00 45(2048.0)、float AtlasHeight 00 00 80 45(4096.0) を TextMesh Pro で作成 した FaceInfo(m_fontInfo)内容 に書き換えます。

  • float Padding 5.0 - 16進数 0x40A00000 リトルエンディアンで 00 00 A0 40
  • float AtlasWidth 4096.0 - 16進数 0x45800000 リトルエンディアンで 00 00 80 45
  • float AtlasHeight 8192.0 - 16進数 0x46000000 リトルエンディアンで 00 00 00 46
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、Syberia3_Data フォルダにある resources.assets ファイルから、UnityEX でエクスポートした resources_00017.-2 ファイルをバイナリエディタで開き、ウォッチデータを読み込んで中国語(繁体字)フォントから日本語フォントデータに書き換え、FaceInfo の int CharacterCount を日本語フォントデータに書き換え、文字数 7,110 の場合 16進数で 0x1BC6 リトルエンディアンで C6 1B 00 00

ウォッチデータ int CharacterCount 94 09 00 00(2452) を TextMesh Pro で作成 した日本語フォント文字数に書き換えます。

文字数 7,110 の場合(FaceInfo int CharacterCount = 7110) 16進数で 0x1BC6、リトルエンディアンで C6 1B 00 00 となります。これはウォッチデータ TMP_Glyph int size 書き換え内容と同じものです。

以上で resources_00017.-2(中国語(繁体字)フォント情報) の日本語フォント情報書き換えは完了です。

ここまでの作業で 日本語フォントサンプルファイル Syberia 3 日本語フォントサンプル 2021年4月18日版 Syberia3-Sample-JPMod-20210418.7z に含まれる resources_00017.-2 ファイルと MSSONG_CHINESE_CUSTOM Atlas.tex ファイルと同じものが完成することになります。

以下、中国語(簡体字)フォントからペン字版 Y.OzFont フォントに書き換えた状態で、ゲーム内言語を簡体中文に変更したときのスクリーンショットを公開します。一部 □ が表示されていますが、おそらくフォントに含まれていない文字かと思われます。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット(繁体字)

比較用にデフォルトの中国語(簡体字)フォントのスクリーンショットを以下公開します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 用 TextMesh Pro 日本語フォント作成方法、Syberia 3 中国語(繁体字)フォントデータ → 日本語フォントデータ書き換え、中国語テキスト・フォントスクリーンショット(繁体字)

PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、ゲームインストール先 Syberia3_Data フォルダに UnityEX.exe を配置して実行、UnityEX 画面内にある Open archive から Syberia3_Data フォルダにある resources.assets ファイルを開き、en.xml と en_00001.xml ファイルをエクスポート、en.xml → ch_00001.xml に、en_00001.xml → ch.xml にリネーム(名前変更)して UnityEX から Import files をクリックしてインポート

PC ゲーム Syberia 3 を翻訳したい場合は各言語ごとにある 2種類ある xml ファイルを翻訳すればいいようです。

中国語(繁体字)フォントを利用して日本語フォントに変更しているため、そのままだと中国語(繁体字)テキストを翻訳することになりますが、英語版テキストをエクスポートしてファイル名を中国語(繁体字)に変更後インポートする形にすれば、英語 → 日本語翻訳で対応できます。

やり方は UnityEX で Syberia3_Data フォルダにある resources.assets ファイルを開き、en.xmlen_00001.xml ファイルをエクスポートしてファイル名を以下のように変更します。

  • en.xml → ch_00001.xml にリネーム(名前変更)
  • en_00001.xml → ch.xml にリネーム(名前変更)

上のリネーム内容は間違っておらず、このようにしないとゲームで正しく表示できません。英語と中国語(簡体字)の xml ファイルを比べてもらえればわかりますが、双方のファイル名と xml ファイル内容はちょうど入れ替わっている構成となっています。

ファイル名変更後 UnityEX でインポートして言語設定を中国語(簡体字)にすれば、英語(日本語フォントに書き換えてテキストも日本語に翻訳してあれば日本語)で表示されるようになります。

以下、中国語(簡体字)フォントからペン字版 Y.OzFont フォントに書き換え、中国語(簡体字)テキスト xml ファイルから英語テキスト xml ファイルに入れ替えて、ゲーム内言語を簡体中文に変更したときのスクリーンショットを公開します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・日本語フォント(ペン字版 Y.OzFont)スクリーンショット

比較用にゲーム内言語 - 英語(フォント・テキスト共にデフォルト)のスクリーンショットを以下公開します。

PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
PC ゲーム Syberia 3 で日本語を表示する方法、PC ゲーム Syberia 3 言語ファイル 中国語版 → 英語版差し替え方法、英語テキスト・フォントスクリーンショット
awgs
Posted by awgs