日本語フォント設定 TextMeshPro【Unity6】

unity技術

TextMeshPro日本語フォントを扱えるようにする設定です。
TextMeshProは、登録したフォントを画像データとして扱うシステムになります。

簡易版

  • 日本語フォントファイルをインポート。
  • フォントアセット生成。
    FontAssetCretor設定
    Souece Font ・・・・・・・・・ 使用したいフォントファイルをドラッグします。
    Sampling Point Size ・・・・・ Auto Sizing
    Packing Method ・・・・・・・ Fast
    Atlas Resolution ・・・・・・・ 8192 8192
    Character Set ・・・・・・・・ Custom Characters
    Custom Character List ・・・ japanese_full.txt内のテキストをコピペ

日本語フォントファイル登録

Assetsフォルダ内の任意の場所に、使用したい日本語フォントファイルをドラッグして登録します。

TMPをインポート

日本語フォントを使用できるようにするためには「フォントアセット」を作成する必要があります。
しかしそもそも「TextMeshPro」がUnityに入ってない状態の場合、インポートするように指示が出ます。

Window」メニュー >「TextMeshPro」>「FontAssetCreator」を選択します。

TMP Importer」が出た場合、「TextMeshPro」が入ってない状態です。

Import TMP Essentials」ボタンを押して「TextMeshPro」をインポートします。

Assetsフォルダ内に「TextMeshPro」フォルダが生成されます。

TextMeshPro」をインポートした際にエラーが出ることがあります。

Window」メニュー >「TextMeshPro」>「Import TMP Essential Resources
開いた「Import Unity Package」ウィンドウ内でインポートできてなかった項目を選んで再インポートします。
何も選択できない場合は、そのまま「OK」で閉じます。

上記は、うまくインポートできなかったエラーだったのですが、その後は特にエラーはでなかったです(´・ω・`)ナゾ

フォントアセットを作成

フォントアセット」を作成するため、「FontAssetCretor」を開きます。

TextMeshPro」が入ってる状態で、再び「FontAssetCreator」を選択します。

Font Asset Creator」ウィンドウが開きます。

各自設定をしていきますが、その前に「japanese_full.txt」をダウンロードしておきます。
使用する日本語(ひらがな・カタカナ・漢字など)コードがテキストになっているファイルになります。
Custom Character List」に登録するために必須なのでダウンロードしておきましょう。

kgsi/japanese_full.txt

右側の「Download ZIP」ボタンでダウンロードできます。

Font Asset Creator」各設定は以下の通りに。

  • Souece Font ・・・・・・・・・ 使用したいフォントファイルをドラッグします。
  • Sampling Point Size ・・・・・ Auto Sizing
  • Packing Method ・・・・・・・ Fast
  • Atlas Resolution ・・・・・・・ 8192 8192
  • Character Set ・・・・・・・・ Custom Characters
  • Custom Character List ・・・ japanese_full.txt内のテキストをコピペ

設定出来たら「Generate Font Atlas」ボタンを押して生成します。

自分の環境だと「Unity6000.0.0f1」の場合、「Custom Character List」の挙動が重くて、操作(枠内をクリック)した回数だけプログレスバーが出て何かUnity側が考えていました。
その挙動が全部終わらないうちに「Generate Font Atlas」ボタンを押してしまうと、だいたい(6)~(7)あたりでUnityエディタごと落ちる現象が起きました。

フォントアセットの生成に成功すると画面に登録コードが表示されます。

「Save」ボタンを押して、Assets内に保存して完成です。

新規にフォントアセットファイルが作成されます。

使い方

フォントを使用するオブジェクトを作成します。

そのまま日本語を入力しても文字化けしてしまいます。

作成した日本語フォントアセットファイルを「Font Asset」項目にドラッグします。

これで日本語を扱えるようになります。

フォントを扱うもう一つの方法 Legacy 「Text」

フォントを表示する方法として「Text」があります。
フォントを画像に変換する「TextMeshPro」とは異なり、フォントファイルそのままを扱うシステムになります。

Text」は従来のUnityのテキストシステムです。
こちらの方がフォント(日本語も)を指定するだけなので楽チンなのですが、Unity推奨は「TextMeshPro」みたいです。
Legacy枠なので、いずれなくなるシステムのようです。
TextMeshPro」に慣れておきましょう。

コメント