テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】TextMeshProのMaterial Presetを増やす方法

f:id:tsubaki_t1:20170919223923g:plain

久しぶりの更新は、TextMeshProのMaterial Presetを増やす方法について。

TextMeshProは文字を表現するのに便利な表現

f:id:tsubaki_t1:20170919231014j:plain

https://www.assetstore.unity3d.com/jp/#!/content/84126

 

TextMeshProは、フォントを表現する際に便利な機能です。

(uGUIと比較して)高度なレイアウトシステム、(uGUIと比較して)多機能な表現、(uGUIと比較して)良いパフォーマンス、(uGUIと比較して)手間が多いのが特徴です。

www.slideshare.net

 

最も特徴的なのはズームしてもフォントが綺麗…という所です。

uGUIはゲーム画面(シーンビューの解像度ではない)の画面解像度からフォントの解像度を生成します。そのままなら余り問題は無いのですが、フォントをスケールすると、フォントがボケて見えてしまうかもしれません。TextMeshProはこの辺りを工夫して描画しているため、ズームしても滲みません(但し、事前準備が必要)。

この機能から、自由にカメラの移動が可能なVRや、文字演出等の表現に向いてます

f:id:tsubaki_t1:20170919232644g:plain

また単純にアウトラインがuGUIより綺麗です。

 

 

Material Presetでエフェクトのあるマテリアルを選択

TextMesh Proでフォントにアウトラインやノーマル、サーフェースを設定する場合、マテリアルの設定を変更します。パラメータをシェーダーに流し込み、表現自体はシェーダー(GPU側)で行う事で、CPU側の負荷を下げています。

お陰で、文字の表面をスクロールしても、CPU負荷は0です。

f:id:tsubaki_t1:20170919225138g:plain

 

このマテリアルの差し替えは、Material Presetを使用します

ただし、FontAssetを生成した直後は設定可能なマテリアルは一種類しか無い為、複数のエフェクトを設定する事が出来ません。

複数のテキストを用意した際、Material Presetの値は共有されているため、一つのテキストのエフェクトを変更したつもりでも他のテキストもエフェクトがかかってしまいます

f:id:tsubaki_t1:20170919225353j:plain

ここでFontAssetを増やすのはナンセンスなので、マテリアルを増やしてMaterialPresetで複数のエフェクトを持てるように設定します。

 

Material PresetはCreate Preset Materialで増やす

肝心のマテリアルを増やす方法ですが、Create Preset Materialのメニューを使用します。

FontAssetのマテリアルを選択中、Inspectorでマテリアルのコンテキストメニューを表示でCreate Preset Materialが選択出来ます。この方法で増やしたマテリアルはTextMeshProのMaterial Preset一覧に表示されます。

f:id:tsubaki_t1:20170919230409j:plain

f:id:tsubaki_t1:20170919230550j:plain

f:id:tsubaki_t1:20170919230628g:plain

また、この方法で生成したマテリアルはDeplicate(複製)で量産しても、Material Preset一覧に表示されます。

f:id:tsubaki_t1:20170919230811j:plain

これで色々なエフェクトが使い放題

関連

www.slideshare.net

qiita.com

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

雑記

そして7日後、SNSは再開された で思うことがあったので、月初めに思い切ってスマホからTwitterを消した所、Twitter依存がかなり減った。

ただ、同時にブログ更新意欲がガッツリ減った。どうやら自分のブログ更新モチベーションはTwitterの反応とかその辺りから来てるっぽい。むむむ