【Unity】TextMeshProのMaterial Presetを増やす方法
久しぶりの更新は、TextMeshProのMaterial Presetを増やす方法について。
TextMeshProは文字を表現するのに便利な表現
https://www.assetstore.unity3d.com/jp/#!/content/84126
TextMeshProは、フォントを表現する際に便利な機能です。
(uGUIと比較して)高度なレイアウトシステム、(uGUIと比較して)多機能な表現、(uGUIと比較して)良いパフォーマンス、(uGUIと比較して)手間が多いのが特徴です。
最も特徴的なのはズームしてもフォントが綺麗…という所です。
uGUIはゲーム画面(シーンビューの解像度ではない)の画面解像度からフォントの解像度を生成します。そのままなら余り問題は無いのですが、フォントをスケールすると、フォントがボケて見えてしまうかもしれません。TextMeshProはこの辺りを工夫して描画しているため、ズームしても滲みません(但し、事前準備が必要)。
この機能から、自由にカメラの移動が可能なVRや、文字演出等の表現に向いてます。
また単純にアウトラインがuGUIより綺麗です。
Material Presetでエフェクトのあるマテリアルを選択
TextMesh Proでフォントにアウトラインやノーマル、サーフェースを設定する場合、マテリアルの設定を変更します。パラメータをシェーダーに流し込み、表現自体はシェーダー(GPU側)で行う事で、CPU側の負荷を下げています。
お陰で、文字の表面をスクロールしても、CPU負荷は0です。
このマテリアルの差し替えは、Material Presetを使用します。
ただし、FontAssetを生成した直後は設定可能なマテリアルは一種類しか無い為、複数のエフェクトを設定する事が出来ません。
複数のテキストを用意した際、Material Presetの値は共有されているため、一つのテキストのエフェクトを変更したつもりでも他のテキストもエフェクトがかかってしまいます。
ここでFontAssetを増やすのはナンセンスなので、マテリアルを増やしてMaterialPresetで複数のエフェクトを持てるように設定します。
Material PresetはCreate Preset Materialで増やす
肝心のマテリアルを増やす方法ですが、Create Preset Materialのメニューを使用します。
FontAssetのマテリアルを選択中、Inspectorでマテリアルのコンテキストメニューを表示でCreate Preset Materialが選択出来ます。この方法で増やしたマテリアルはTextMeshProのMaterial Preset一覧に表示されます。
また、この方法で生成したマテリアルはDeplicate(複製)で量産しても、Material Preset一覧に表示されます。
これで色々なエフェクトが使い放題
関連
雑記
そして7日後、SNSは再開された で思うことがあったので、月初めに思い切ってスマホからTwitterを消した所、Twitter依存がかなり減った。
ただ、同時にブログ更新意欲がガッツリ減った。どうやら自分のブログ更新モチベーションはTwitterの反応とかその辺りから来てるっぽい。むむむ