「TextMeshProで日本語を使えるようにするときの注意事項」に関する更新情報(2021年11月10日時点)
6日前に後述の記事を公開しましたが、改善されたようなので載せます。
6日前、TMP Settingsに自作のフォントアトラスを適用した後に、TextMeshProを使用しているオブジェクトのTextMeshPro - Textの「Font Asset」に自作のフォントアトラスを設定しても、使えませんでした。
本日、TextMeshProを使用しているオブジェクトのTextMeshPro - Textの「Font Asset」に自作のフォントアトラスを設定したところ、使えるようになっていました。
下に画像を載せます。
本来あるべき設定で使えるようになり良かったと思いますが、まさか6日で改善されるとは思いませんでした。
Unityにおいて、TextMeshProで日本語を使えるようにするときの注意事項(2021年11月4日時点)
Unityにおいて、TextMeshProで日本語を使えるように設定しているときに、日本語が表記されないトラブルがあったので載せます。
フォントアトラスを作成してTMP Settingsで適用した後に、ヒエラルキーウィンドウのTextMeshProコンポーネントを持つオブジェクトを選択した後が問題でした。
インスペクターウィンドウのTextMeshPro - Textの「Font Asset」に日本語表記用に作成したフォントアトラスを設定すると、日本語が表記されなくなるようでした。
何故か「Font Asset」の設定は、デフォルトの「LiberationSans SDF」のままが正しいみたいでした。日本語表記用に作成したフォントアトラスに設定するのが正しい気がするのですが、何故でしょうね。
下にTextMeshProで日本語を使えるようにする手順を載せます。
TextMeshProで日本語を使えるようにする手順
1.フォントアトラスを作成する
①使用したいフォントファイルをプロジェクトウィンドウのAssetsフォルダにドラッグアンドドロップする。
Unityでは、「.ttf」か「.otf」のファイル形式を使用できる。
②何らかのエディタで、フォントアセットとして使用したい文字を入力した「.txt」ファイルを、エンコードをUnicode(UTF-8)で作成する。
作成したら、プロジェクトウィンドウのAssetsフォルダにドラッグアンドドロップする。
③トップメニューのWindowからTextMeshProをクリックして、「Font Asset Creator」を選択する。
④Font Asset Creatorの「Source Font File」に使用したいフォントファイルを設定する。
Sampling Point Sizeは「Auto Sizing」だと作成に時間がかかるので、「Custom Size」を選択する。(値は48くらいが適当)
また、「CharacterSet」をクリックして、「Characters from File」を選択すると、「CharacterFile」の項目が表示される。
「CharacterFile」に使用したいテキストファイルを設定する。
⑤Generate Font Atlasをクリックして、Saveをクリックする。
⑥ダイアログが表示されるので、Saveをクリックすると、フォントアトラスが作成される。
2.作成したフォントアトラスをTextMeshProに適用させる
①作成したフォントアトラスを、プロジェクトウィンドウの「Assets/TextMesh Pro/Resources/Fonts & Materials」に移動する。
②プロジェクトウィンドウの「Assets/TextMesh Pro/Resources」の「TMP Settings」をクリックする。
③TMP Settingsの「Default Font Asset」を作成したフォントアトラスに変更する。
④ヒエラルキーウィンドウからTextMeshProコンポーネントを持つオブジェクトを選択する。
インスペクターウィンドウのTextMeshPro - Textの「Font Asset」が「LiberationSans SDF」、「Material Preset」が「LiberationSans SDF Material」になっているか確認する。※
⑤TextMeshPro - Textのテキストに設定したフォントアトラスの日本語が使用できるようになっている。
※ 「Font Asset」に作成したフォントアトラスを設定すると何故か適用されなくなる。
TMP Settingsの「Default Font Asset」に作成したフォントアトラスが設定されていれば、「Font Asset」が「LiberationSans SDF」の設定で適用される。