Unity の TextMeshPro で Google Fonts のフォント利用しつつ、日本語を表示する方法をまとめました。
Google Fonts とは
Google が提供してくれているフォントサービスです。基本的に無料で利用でき、日本語にも対応しているフォントがたくさんあります。もちろん非対応のフォントのほうが多いですが・・・。好きな書体があればすぐに使えるのがメリットだと思います。下の画像のようなフォントがたくさんあるので、まずは上のリンクからさっと見てみるとモチベーションが上がると思います。
手順
- まずは普通にブラウザで Google Fonts から日本語が使えるフォントをダウンロードします。(例えば NotoSansJP を開き、
Download Family
を押します。zip ファイルの中に otf が入っているはずなので、後でそれを使用します。) - ここからはUnityです。TextMeshPro をインストールします。Window -> PackageManager を開き、検索ボックスに TextMeshPro をいれて探すのが楽かもしれません。
- インストールするとウィンドウが開くので、
Import TMP Essentials
を押して閉じます。
- Window -> TextMeshPro -> Font Asset Creator を起動します。
- 以下の値を設定して Generate Font Atlas を押します。登録する文字(※1)は Custom Characters を選択すると入力できる Custom Charcter List に貼り付けます。
- 出力までに時間がかかるので待ちます。(手軽にやるなら Packing Method を Fast にするとここの待ち時間が短くなります。)
- Save を押して Font Asset を保存します。
- 上で保存したファイルを TextMesh Pro の Font Asset に設定します。
※1
- 漢字など第二水準までは UnityのText Mesh Proでほぼ全ての日本語を表示させる の記事がまとめてくれています。
- 第二水準まで全部入れようとすると、Atlas Resolution が 8192x8192 でないと入らないかもしれません。一度試しにやってみたところ 131MB というアホみたいなファイルサイズになりました。ちょっと無謀だと思うので、何かを削ることを考えないといけないかと思います。
- 上記リストの
哩
までが第一水準と信じて、それ以降を削除しつつ、Atlas Resolution を 4096 x 2048 にしたところ 18MB ぐらいまで減りました。この辺が妥協点なのではと思い、上記設定値はそうしてあります。