UNITY の Text Mesh Pro で日本語メインで使用するために
若干多言語も意識しつつ、こんな感じのフォント設定を作るためにアレコレしたまとめ。
日本語フォント
スマホゲームなどのUIでは、文字少なめ+フォントは太めが見やすい
ということで個人的には太めフォントが好き。
上記の見本では
日本語フォントは
Rounded Mgen+ (ラウンデッド ムゲンプラス) を使用しています。
商用利用可能で複雑な漢字も使えてぶっとい文字もある優秀フォント。
ほんのりかわいいのがユーザーに優しげで好まれる昨今にぴったり。(特に尖った世界観が無い場合)
Font Asset Creator で 生成する
・Base
・japanese
・Dynamic
の3つ生成する。下記参考にさせていただきました。
Base
以下の設定でGenerateして、Save as… で名前をつけて保存します。
Character Set は Extended ASCII。
追記:シンプルローマ字だけならASCIIでいい
Sampring Point Size
大きめ文字で使うこと多ければ Custom Size 50
追記:AsciiでAutoで512で出力すると47だったので47でもいいかも
アプリ容量やメモリ節約優先であれば Auto Sizing →AutoにするとShadowが付けにくい場合がある
Padding
7にしているけど5でもよさそう。装飾による。
追記:最終的に10にした
最初、上記参考サイトの2にしていたら
その後Text Mesh ProのUnderlayをいじっても影が付かずあれれ???となり、
よくよく見たら文字を綺麗に出すためにアウトラインを犠牲にしていると書いてありましたね。。
シャドウなどの文字周辺に装飾つけたければそれなりなPaddingが必要ということで
若干装飾を優先させたい場合Padding 5くらいでよさそう。がっつり影付けたい場合は7とか増やす。
ただしその分スペース使うので文字の解像度的な綺麗さ優先なら少なく。装飾付けられる余白かどちらを取るかのトレードオフ。
Atlas Resolution
上記のSampring Point Sizeにより
Point Size が Custom Size 50 → 1024 × 1024
Point Size が Auto Sizing → 512 × 512
追記:512でもよさそう
Point Size が Custom Size 指定の場合は、一旦Generateしてみて全部文字入る一番小さいサイズにする感じ
Packing Method
Fast と Optimum で Generateの時間が何分も(マシンと文字数によっては何十分も)変わる。
Optinumのほうが最適なサイズの計算をしてくれて、ファイルサイズも少し小さくなるらしい。
とりあえず試すのがFastで、最終的にOptimumで出すのが最適。
Render Mode
SDFAA
Japanese
二つ目、もう一度今度は以下の設定でGenerateして、Save as… で別名の名前をつけて保存します。
Character Set は Characters from File
日本語文字を並べたテキストファイルを作ってAssetに追加して、指定する。
文字リストは常用漢字一覧などで調べるとでてくる。
上記のブログにも例を載せてくださってます。
https://gist.github.com/kyubuns/b06b84106a6b6791f6f4b194c98e42fd
その他は基本Baseと同じですが・・
Atlas Resolution
Sampring Point Sizeにより
Point Size が Custom Size 50 (その後47にした → 4096 × 4096
Point Size が Auto Sizing → 2048 × 2048
といったところでしょうか。
Dynamic
三つ目、以下の設定でGenerateして、Save as… で別名の名前をつけて保存します。
Character Set は Unicode Range (Hex)
Character Sequence (HEX) には何も指定しない。
その他は基本Baseと同じですが・・
Atlas Resolution
Sampring Point Sizeにより
Point Size が Custom Size 50 (その後47にした→ 2048 × 2048
Point Size が Auto Sizing → 1024 × 1024
といったところでしょうか。
TMP (Text Mesh Pro) Font Asset の設定
ネーミングはなんでもいいですが、上記により3つ生成されました。
↓
最後に作ったDynamicを選択して、InspectorのAtlas Population ModeをStatic → Dynamic にします。
↓
最初に作ったBaseを選択して、Inspector の Fakkback Font Assets に
二つ目に作ったJapanese、三つ目に作ったDynamicの順番で設定します
表示する文字に、Baseの文字が無ければJapaneseを読み、そこにもなければDynamicを読んで生成ということで、いつもでかいファイルを読まなくてすむことになるようです。
日本語以外の自動多言語対応については同じく下記をご参考ください
見栄えメインの場合は下記も大変参考になります。
UNITY* TextMeshPro 特集 * 第 2 部 タイポグラフィによる美しいテキストレイアウト
https://kumastudio-pro.amebaownd.com/posts/5977213
コメント