TextMeshProに日本語フォントを追加する(Unity6)

開発Tips

デフォルトで入ってるフォントでは、少し物足りない、ゲームの雰囲気とは合わない、日本語が使えない

なので好きなフォントを追加してみます。

フォントを選ぶ

Google Fontsからフォントを選びます。

Browse Fonts - Google Fonts
Making the web more beautiful, fast, and open through great typography

私は「M PLUS Rounded 1c」を選びました。

「Get font」からフォントをダウンロードします。

ダウンロードしたフォントをUnityのアセットに入れます。Fontsフォルダなど作っておくとわかりやすいと思います。

Unity用のフォントアセットを作成

メニューより
Window > TextMeshPro > Font Asset Creator
を選択します。

  • Source Font・・・先ほどセットしたフォントを選択する。
  • Font Face・・・自動でSource Fontに含まれている値がセットされます。
  • Sampling Point Size・・・Auto Sizing
  • Padding・・・文字間の余白
  • Packing Method・・・フォントのテクスチャに文字を合わせる (フィットさせる) 方法。
    • Optimum・・・テクスチャのすべての文字が収まる可能な限り最大の自動フォントサイズを見つける。
    • Fast・・・文字パッキングの計算はより速くなるが、Optimum モードよりも小さなフォントサイズを使用する可能性がある。フォントアセットの作成をテストする場合に使用する。
  • Atlas Resolution・・・フォントテクスチャの幅と高さ (ピクセル単位)。ASCIIだけなら512x512が適切。今回は日本語含むので4096x4096にしておく。大きくすると字がきれいになるがフォントの容量も大きくなる。
  • Character Set・・・キャラクタセット、Custom Charactersを選択します。
    • Custom Character Listが表示されるので以下のサイトからデータを持ってきます。
日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字)
日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字) - japanese_full.txt

Rawをクリックする

でてきた文字をすべて選択し、コピーする

これをCustom Character Listに貼り付けます。

  • Render Mode・・・フォントアトラスをレンダリングするモード。SDFAAを選択。
  • Get Font Features・・・フォントの中に含まれる情報を取得するかどうか。カーニングなどの情報が含まれる。今回は外しておきます。

「Generate Font Atlas」をクリックする。

Packingに少々時間がかかります。

完了したらSaveを押して、作成したフォントアセットを保存します。

さっそくFont Assetを設定してみます。

日本語が表示されました。

最適化されたフォントを作成する

問題なさそうであれば、Packing Methodを「Optimum」にしてもう一度Generate Font Atlasをクリックし再作成したいところですが、すご~く時間がかかります。

Packing Methodを「Fast」で作成すると、小さなフォントサイズを使用する可能性がある。ということなので、やらなくても問題ないと思います。

必要があればその時にやることにして、私はあきらめました。

もし完了するところまでいけたら、保存しておきましょう。

コメント

タイトルとURLをコピーしました