たこすのunity雑記帳

unity初心者がunity関連の備忘録として書いています。

【UI】TextMeshProは優秀だが・・・その1

風邪の対処法、教えてgoogle先生

家族みんなで風邪をひいてつらたんです。

ちっちゃい子供がいるので、誰かが風邪をひくとまず全員かかっちゃいます。

(子供が親の方を向いてくしゃみしたり咳を吹きかけたりするので・・・)

 

TextMeshProを使うには下ごしらえが必要

それはさておき、今回はTextMeshProの話です。

僕のエディタバージョン(2022.3.4f1)ではデフォルトのTextはレガシー(過去の遺物?は言いすぎでは)扱いで、

TextMeshProを使うことが推奨されています。

でもね、こいつはデフォルトのTextと違って下準備をしないとちゃんと使えないんです。

 

端的に言うと、以下の2点に気をつければだいたいOKです。

  • TextMeshProは手動でフォントを作成しないと日本語が使えない
  • デフォルトのTextとTextMeshProではスクリプトの書き方が違う

それぞれ参考になるサイトを見つけてきました。ぶっちゃけこの2つを見ていただければ問題ないです。

www.midnightunity.net

indie-game-creation-with-unity.hatenablog.com

 

リンクを踏むのが面倒な方は、僕の稚拙な解説で我慢してください。

 

TextMeshProで日本語フォントを使うには

まず、「フォント フリー」等で検索してフリーフォントをunityのプロジェクトにダウンロードしてください。

Google Fontとかおすすめです。

fonts.google.com

僕は「さわらびゴシック」というフォントをダウンロードしました。クセが少ない素晴らしいフォントですね。

個人的にはクセのあるフォントも好きですが、ゲーム中の小さい文字が読みにくいのは困りますからね・・・


この下にあるAaって書いてるやつがフォントデータです。デフォルトのTextならこれで使えますが、TextMeshProくんは頑固です。

 

unity上のタブからWindow→TextMeshPro→Font Asset Creatorをクリックします。

 

Font Settingsから以下の通りに設定します。

Source Font File:さっき入れた日本語フォントをドラッグ&ドロップ

Atlas Resolution:両方とも「4096」に変更(「8192」でも可、ただし作成時間が伸びる)

Character Set:「Custom Characters」を選択

Custom Character List:親切な方が提供してくれているテキストリスト(下記リンクよりダウンロード)をコピペ。ありがたや~

https://gist.github.com/kgsi/ed2f1c5696a2211c1fd1e1e198c96ee4

 

準備が終わったら「Generate Font Atlas」を押します。PCくんがいろいろウインドウを出しながら頑張ってくれます。

僕のPCではAtlas Resolution設定「4096」で5~8分、「8192」でその倍くらいかかったと思います。

 

完了したら下の方に出る「Save」を押して保存すると、こんな感じのFって書いてあるファイルが出来上がります。これで準備完了です!

 

TextMeshProのデフォルト設定では「LiberationSans SDF」というフォントが入っています。ここを先ほど作成したフォントに変更します。

デフォルトのフォントは日本語に対応してないんでしょう。ニホンゴムツカシカラ、ショウガナイネ

 

変更してみると・・・ちゃんと日本語が出ますね!お疲れ様でした。

割と難しい漢字も対応してて草

 

思ったより記事が長くなっちゃったので、2つ目「スクリプトの書き方の違い」は別の機会にします。どうぞよしなに!実際は書くの疲れたからです、はい。