TextMeshProで日本語フォントを使用する【Unity】

TextMeshProをそのまま使用した場合には日本語(全角)での入力時にFontに無い文字が文字化けします。日本語のフォントを使用する場合FontAssetが必要になります。

以下で使用するまでの方法を説明します。

日本語フォント導入手順

  1. 「フォントファイル(ttf,otf)」を「Projectビュー」にドロップします。
  2. 「Window」>「Text Mesh Pro」>「Font Asset Creator」を開きます。
  3. 設定を行います。
    1. 「Source Font File」で「フォントファイル」を選択します。
    2. 「Atlas Resolution」を(8192*8192等)大きめに取ります。
    3. 「Character Set」を「Custom Characters」に変更します。
    4. 「Custom Character List」に「日本語文字コード」を入力します。
  4. 「Generate Font Atlas」より生成します。
  5. 「Save」「Save as Asset」より保存します。

フォントをプロジェクトに導入する

Assetsフォルダーにフォントファイルを置き、プロジェクトに追加します。
フォント形式は TrueType (.ttf) と OpenType (.otf) をサポートしています。

フォントを紹介しているサイト

2020年用、日本語のフリーフォント418種類のまとめ -商用サイトだけでなく紙や同人誌などの利用も明記

日本語文字コード

Shinichi Kogiso様のgistで公開されているものを使用させて頂きました。

日本語文字コード範囲指定

日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字)
日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字) - japanese_full.txt

「Generate Font Atlas」

8192*8192で生成した場合。

生成後「Save」「Save as Asset」より保存します。

(※1)4096*4096で出力した場合収まらなかったため8192*8192で生成しました。

(※2)WebGLをスマートフォン上で動作させた場合に環境によって文字化けを起こすことがあります。

モバイル対応の応急処置

  • Sampling Point Size 36
  • Atlas Resolution 4096*4096 (安全?:2048*2048)
  • Custom Character List の文字を削りサイズ内に収まるようにする

(→ テクスチャアトラスの最大サイズがiOS, Androidバージョン等によって異なる為、古いスマートフォンに対応しようとするとテクスチャを小さくする必要が出てくるというジレンマがあります。)

FontAssetを使用する

MainSettings>FontAssetより導入した生成したフォントを選択して終了です。

TextMeshProで日本語フォントを使用したテスト。

FontAssetのデフォルトを設定する

導入したフォントをプロジェクト内で頻繁に使用する場合、
デフォルト設定を行う事でUI配置後の設定を省略できます。

その他

タグを使用してリッチテキスト表示

Textエリア内にタグを挿入する事によって文字サイズ、文字色、配置などを変更できます。

アイコンフォントの追加

テキスト内にアイコンを表示出来るようにする記事です。

スクリプティング

Text Mesh Proのテキストをスクリプトから変更する記事です。

トラブルシューティング

日本語入力自体が出来ない場合はUnityバージョンによる問題があるかもしれません。

使用させて頂いたフォント

今回「はんなり明朝」を使用させて頂きました。感謝です。

日本語フォント「はんなり明朝」

参考

フォントファイルのインポート

コメント

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