見出し画像

日本語フォントをUnityで作る


1. Unity のインストール

まずはともあれ、Unityをインストールします
Unity Hub をダウンロードし、インストールします

契約書を読み、 [同意する]
インストール先を選び、[インストール]
しばらく待ち… [完了]

Unity Hub を起動し Unity をインストールします
Sign in を求められます。Unity ID が必要なので作ります
アカウントを作成は、ここでは省略します

ログインすると最初に最新版の Unity Editor のインストールを求められます
ですが、最新版は必要ないので [Skip Installation] します

LastEpoch のUnityバージョンは 2019.4.40f1 です
同じバージョンをインストールします
アーカイブからダウンロードします

Unity Hub で自動で開いてくれます

特に必要なオプションはありませんが、
日本語の Language Pack は入れておきます。☑をいれて [Continue]
ライセンスを読み同意したら [Install]

インストールが終わるまで待ちます。結構長いです
途中 Visual Studio Community 2019 のインストール画面でます
[ゲーム] ▶ [Unity によるゲーム開発] にチェックし [インストール]

既に Visual Studio がインストールされている人は画面が違うかも

さいごに、Unity のライセンス認証していない人はしておきます
[Manage licenses] をクリック
[Add] ▶ [Get a free personal license]
ついでに Appearance から日本語にしておきます

歯車のアイコンをクリックで環境設定が開く

これで準備は終わりです。次からはプロジェクトを作っていきます

2. プロジェクトを作成する

さっそくプロジェクトを作成します
プロジェクトタブを開き画面右上の [新しいプロジェクト] をクリック

テンプレートから"3D"を選択、画面右下の [プロジェクトを作成] をクリック

ファイアウォール 画面が出たらアクセスを許可してください

開発画面が開きます
まずはTextMeshProリソースを導入します

メニューから [Window] ▶ [TextMeshPro] ▶ [import TMP Essential Resources]

TMPを扱う上で必須です

ポップアップウィンドウがでるので、画面右下の [Import] をクリック

次に使いたいフォントを用意します
今回はGoogleの "Noto Sans JP" の "Light" を使ってみます
配布する予定がある方はそのフォントのライセンスに注意してください

Assetsフォルダにフォントファイルをドラッグ&ドロップで入れられます

ファイル名は半角英数にしてください

ではフォントを生成していきます
メニューから [Window] ▶ [TextMeshPro] ▶ [Font Asset Creater] を選択

次のようなポップアップ画面が出ます
ここからが大事です

Source Font File に 先程のフォントファイル "NotoSansJP-Light"
Sampling Point Size "Custom Size" 今回は "38" できるだけ大きく
Padding 今回は "6" 小さくしすぎると文字が被る
Packing Method は "Fast"
Atlas Resolution 今回は”4096 x 4096" 大きくしすぎるとメモリ消費が増える
Character Set "Custom Characters"
Custum Character Set 後述
Render Mode は SDFAA
Get Kerning Pairs に "チェック"

最適な値はフォントや文字コードによりまちまちです

Custum Character Set を用意します
日本語文字コードをまとめてくれている人がいます。以下からコピペ

https://gist.githubusercontent.com/kgsi/ed2f1c5696a2211c1fd1e1e198c96ee4/raw/118bb818cffe159eb4e906f82980465cd0b0021e/japanese_full.txt

設定を終えたら、 [Generate Font Atlas] をクリック

ギリギリ入りました

いくつかエラーがでてます。使わない文字なら無視します
[Save] しましょう "NotoSansJP-Light SDF.asset" という名前で保存しました

ゲーム内にテキストを表示するシーンを作成します
[Hierarchy] インターフェース内で右クリック
[3D Object] ▶ [Text - TextMeshPro] を選択

3Dのオブジェクトのテキストができました

このオブジェクトの inspector パネルから Font Asset を先程作った
"NotoSansJP-Light SDF.asset" に変更します

ビルドして保存します
メニューから [File] ▶ [Build And Run] 保存した場所を忘れないように
ゲームが動いたのを確認したら Alt +F4 でゲームを閉じ Unity も閉じます

3. フォントアセットを抽出する

プロジェクトを保存したディレクトリにある sharedassets0.assets から
目的のファイルを抽出します
"NotoSansJP-Light SDF Atlas" Texture2D
"NotoSansJP-Light SDF" MonoBehaviour が目的のファイルです

デフォルトでは C:\Users\"ユーザー名"\"プロジェクト名"\プロジェクト名_Data" にあります

まず "NotoSansJP-Light SDF" MonoBehaviour からエクスポートします
UABEAvalonia を使用します。優秀なツールです

メニューから [File] ▶ [Open] "sharedassets0.assets" を開きます
"NotoSansJP-Light SDF" を選択し [Export Dump]
わかりやすい場所に txt ファイルを保存します

次に "NotoSansJP-Light SDF Atlas" Texture2D からエクスポートします
"NotoSansJP-Light SDF Atlas" を選択し [Plugins] をクリック
[Export texture] を選び [OK] をクリック
わかりやすい場所に保存しておきます

おめでとう!これで日本語フォントアセットが整いました

LastEpochでこのフォントアセットを使うには、抽出したtxtファイルをゲームに合わせて修正する必要があるので注意してください
今回は "Noto Sans JP" の "Light" を使いましたが、文字が細すぎたので、"Regular" 以上にしたほうが良さそうです


この記事が気に入ったらサポートをしてみませんか?