TextMeshProのフォント設定おぼえがき
TextMeshProで(特にドット風フォントを)なるべく綺麗に表示したいとき用
UnityでせっかくTextMeshProを使っているのに何故かやたらと文字が滲んでいる気がする私向け
用意するもの
使いたいフォント (※規約をよく読み、再配布可能なものを用意すること!)
TextMeshPro(基本的にはPackageManagerから導入する)
手順
1.フォントからTextMeshPro用のFontAssetを作ります
2.生成したFontAssetのAtlasから、RenderModeを設定します
3.生成したFontAssetのMaterialの設定を調整します
フォントからTextMeshPro用のFontAssetを作ります
赤枠の項目に気を付けましょう
その他は文字量などやデータのサイズなどのバランスを取りつつお好みで
Packing Method
テスト用ならFastでもいいですが、最終的にはOptimumにしましょう
Render Mode
ほぼSDF16一択です(SDF32でも可っぽい)
(大体この生成の設定で9割9分くらいは決まってきます)
生成したFontAssetのAtlasから、RenderModeを設定します
(※AtlasとMaterialはここ↑)
デフォルトでBilinearですが、角丸に仕上がるっぽいのでPointを選択
(好み次第なとこもあるかも)
生成したFontAssetのMaterialの設定を調整します
くっきりさせるのにいじるのは概ね赤枠内です
Softness
ひたすらくっきりさせたいならとりあえず0でいいです
1に近づくにつれガウスぼかしみたいのが掛かります
Dilate
綺麗に表示させたいならとりあえず0でいいです
白黒二値で考えたときの境界をどこにするかみたいな…?
-1で文字が消えて(細くなりすぎて)、1で文字がとても太くなります
Gradient Scale
初期値は6
どうにもならないときの最終手段で、ここを大きくすると境界がくっきりします
ただし大きくしすぎると、
Boldなど文字を拡張する系の効果が掛けられなくなったり(↓)
文字サイズが小さすぎると文字の一部が欠けたりします(↓)
だいぶ諸刃の剣ですね
(そしていまだにどういうパラメータなのかがよくわからない…)
Sharpness
ひたすらくっきりさせたいならとりあえず1でいいです
0に近づくほどぼんやりしていきます
おしまい!
結局は目で見ながら一番ちょうどいいパラメーターを探るしかないんですかね~
Discussion