TextMeshPro - フォントファイルにない文字は別のフォントファイルから取得する方法!

f:id:snoopopo:20210423084355p:plain

この記事は

使いたいフォントファイルが例えば、ひらがな・カタカナのみ対応しているが、
漢字やアルファベットをテキストに含めたい場合は、別のフォントファイルから取得する方法を記載します。

Font Asset Creatorで対応している文字のフォントアセットを作成する

まずは、一部の文字しか対応していないフォントのフォントアセットを作成します。

画面上部のメニュー -> Window -> TextMeshPro -> Font Asset Creator 

でFont Asset Creatorを開き、以下のような感じで設定し、作成します。

f:id:snoopopo:20210423085237p:plain

「Source Font File」に、一部の文字しか対応していないフォントを設定。
「Character File」には、対応している文字が羅列されたファイルを設定します。

たとえば、ひらがな・カタカナのみ対応のファイルなら、以下のようなテキストファイルを用意して、指定します。

あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐうゑをんぁぃぅぇぉっゃゅょゎがぎぐげござじずぜぞだぢづでどばびぶべぼアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰウヱヲンァィゥェォッャュョヮガギグゲゴザジズゼゾダヂヅデドバビブベボ

Fallback Font Assets を設定する

使いたい文字がそのフォントアセットに含まれていない場合、別のフォントアセットから取得する設定です。

先程作成した一部の文字しか対応していないフォントアセットを選択し、
「Fallback Font Assets」に、ない場合に変わりに表示するフォントアセットを設定します。

f:id:snoopopo:20210423090024p:plain

これで完了!さっそく使ってみよう。

Fallback Font Assets を設定したのに置き換わらない場合

Font Asset Creator でフォントアセットを作成した際に設定した、「Character File」のテキストファイルには、
そのフォントで対応した文字のみをいれます。
ここで対応していない文字まで含めたテキストファイルを指定してしまうと、置き換わらないので注意!

※ひらがな・カタカナのみ対応しているフォントで、漢字やアルファベットを含めてしまうと、置き換わらないよ。

uGUI版 のテキスト TextMeshProUGUIだとレイアウト崩れる場合

以前は、uGUI版のテキスト=TextMeshProUGUIだと崩れる問題がありました。
これがおきる場合は、TextMeshPro自体をアップデートしてください。

▼Package Managerからすぐできるよ f:id:snoopopo:20210423090842p:plain

過去のTextMeshProの記事

www.snoopopo.com

www.snoopopo.com