概要
UnityのTextMeshProは、日本語を使うための準備が面倒臭くてあまり触らない方も多いと思います(自分もその一人です)
今回はタイトル文字など、使う場所を限定すれば有効に使えるのでは?というコンセプトで記事を書いてみました。
本文
TextMeshProのテキストを表示する
Hierarchyで右クリックをして表示されるメニューからText - TextMeshProを選びます。
ポップアップが表示されるのでImport TMP Essentialsを押してください。
そして、早速Textに文字を入力してみますが
Scene画面には文字化けして表示されます。英字はフォントがあるので表示されますが、TextMeshProで使える日本語フォントが登録されていないのが原因です。
TextMeshProで使うための日本語フォントを用意する
ということで日本語フォントファイルを用意します。今回は商用利用可能な「自家製 Rounded M+」を使わせていただきました。
http://jikasei.me/font/rounded-mplus/about.html
ZIP形式でダウンロードできますがファイルごとにフォントの見た目が違います。Fontsフォルダを作成して、その中に「rounded-mplus-2p-medium.ttf」をドラッグアンドドロップします。
次にフォントファイルをTextMeshProで使える形式へ変換します。
Window > TextMeshPro > Font Asset Creator
Source Font Fileに今回追加したFontファイルを指定します。
CustomCharacterListに使用する「文字」を指定します。日本語フォント全てを変換することもできますがファイルサイズが大きくなってしまうので、今回は使う文字だけを指定して変換するようにしました。
入力が終わったらGenerate Font Atlasを押すと変換処理が行われます。その後、Saveボタンを押します。
TextMeshPro用フォントが追加されました。
TextMeshProのFont AssetにTextMeshPro用フォントを指定すると
文字化けがなくなりました
補足
使いたい文字が増えるたびにこの手順をするのは大変だと思います。とはいえ、ふちどり文字など文字の見栄えを良くしたい時TextMeshProはすごく便利です。
ゲームタイトル、UIのタイトルなどピンポイントでだけ使うと良さそうです。
常用漢字の登録
PCゲーム等なら常用漢字全てを登録してバンバン使っていくのも良いですね。
常用漢字を登録する場合の手順は、先人の方々がたくさん記事を書いているのでそちらを参考にしてください。
設定は例えばこんな感じにして常用漢字を登録すると上手くいくと思います。
登録されている文字を確認したい時は
出力されたアセットファイル(〜.asset)を選択してInspectorからCharacterTableを開くと登録されている文字の一覧を見ることができます。
登録文字を追加したい時は
Custom Character Listに増やしたい文字を追加してSaveの時上書き保存すれば更新できます(大切なデータの場合はバックアップをとっておいてから操作するのが安全です)