【Unity】TextMesh ProでOutlineなどの設定を複数保持する方法

【Unity】TextMesh ProでOutlineなどの設定を複数保持する方法

TextMesh Proを使っているときに、インスペクターウィンドウの下部でOutline、Faceなどの設定を行うことができます。

が、同じフォントでもちょっと見た目を変えたいなーと思ってうっかりOutlineを変更したら、全てのテキストに影響が出ちゃった! なんてこともあります。

「まさかフォントアセットを複数作る必要が……?」

と不安になったあなた。ご安心ください。同じフォントアセットに対して、Outlineなどの設定を複数保持することができるんです。その機能とは、Material Preset(マテリアル プリセット)。

使いたい場面ごとにこのMaterial Presetを用意しておくことで、設定を使いまわせるし、切り替えられるしでとても便利なんです。というわけでこの記事ではMaterial Presetについて解説します。

 

 

環境

macOS 10.15 Catalina

Unity2018.4.23f1

 

Material Presetとは

TextMeshProのMaterial Presetとは、テキストに対する装飾の設定を保持するためのアセットファイルです。文字の輪郭を装飾するOutline、文字の表面を装飾するFaceなどの設定を保持しておくことができます。

このファイルは、TextMesh ProのFont Asset(フォントアセット)を作成した時に一緒に1つ作成されます。通常は表示されていないのですが、Font Assetの右側にある右向きの三角マーク [▶︎] をクリックして表示内容を広げることでそこに含まれていることが分かります。

Material Presetがいる
Material Presetがいる

 

Material Presetの設定はプロジェクトウィンドウからアセットファイルを選択することでインスペクターウィンドウで調整することができますし、『Text Mesh Pro UGUI』コンポーネントの下部で調整することもできます。

Material Presetの設定
Material Presetの設定

 

例えば装飾がない場合とある場合の比較は以下のとおり。下の文字はOutline、Glowを使っています。Unityの中で表現を使い分けられる点がとても便利です。

上は装飾なし、下は装飾あり
上は装飾なし、下は装飾あり

 

ただ、単純に『Text Mesh Pro UGUI』コンポーネントから設定を変更してしまうと、同じMaterial Presetを使っている『Text Mesh Pro UGUI』コンポーネント全てで設定が反映されてしまいます。そのため、新しくカスタマイズできるようにMaterial Presetを作成しましょう。

 

Material Presetの作成方法

Material Presetを作成する場合は、まずフォントアセットに含まれているMaterial Presetを選択します。

Material Presetを選択する
Material Presetを選択する

 

インスペクターウィンドウでは左上に表示されているアイコンを右クリック(あるいは二本指タップ)してコンテキストメニューを開き、[Create Material Preset] を選択します。

Material Presetを作成
Material Presetを作成

 

作成されたMaterial Presetは好きな名前をつけます……と言いたいところですが、『Font Asset』で指定しているフォントアセットの名前を含めるようにします。ここで設定した名前は『Text Mesh Pro UGUI』コンポーネントの『Material Preset』のプルダウンで選択する際に表示されますが、フォントアセットの名前が含まれていない場合は一覧に表示されないので注意が必要です。

コンポーネントごとに選べる
コンポーネントごとに選べる

 

例えばボタン用のテキストのためにMaterial Presetを用意する、メッセージ本文で表示するテキストのためにMaterial Presetを用意するなど、場面ごとにMaterial Presetを用意しておくことで、ゲーム全体で一貫性を持った表現が可能になります。

 

Material Presetの作例

Material Presetの値を変更していくつか例を紹介します。見た目の例については、「Photoshop レイヤースタイル」などでググるとサンプルがたくさん見つかると思いますので、そうしたサンプルを見ながらいい感じのプリセットを作ってみてください。

 

シンプルなアウトライン

フォントの形を活かしてシンプルに縁取り。

シンプルに仕上げました
シンプルに仕上げました

 

『Outline』の『Thickness』を [0.6] に設定しています。

 

使用フォント: Arvo (Designed by Anton Koovit)

ライセンス: SIL Open Font License (OFL) https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL

 

 

文字を光らせてみる

Glow(グロー)を使って文字を光らせてみます。背景が明るいとただの白になってしまうため、暗い背景の上に文字を配置しています。明るい背景の「み」の部分が光っているように見えないのに注目です。

縦書きっぽく
縦書きっぽく

 

 

『Text Mesh Pro UGUI』コンポーネントでは縦書きにする機能はありませんが、1行に1文字しか入らない幅(Width)に設定して縦書き風に表現しています。この方法だと句読点は正しく表示されないので注意。

Glowは色を加算する方向(白に近づける方向)で計算します。なので、背景が明るい場合は元々白に近く、Glowの部分が白のように見えてしまうのです。逆に背景が暗いと光っている感が出てきます。

設定は以下の通りです。

 

Face

Faceの設定
Faceの設定

 

項目 設定値
Softness 0.175
Dilate 0.333

 

Glow

Glowの設定
Glowの設定

 

項目 設定値
Color #FF00FB (アルファ: 228)
Outer 1

 

使用フォント: 幻ノにじみ明朝 (フォントな)

ライセンス: SIL Open Font License (OFL) https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL

 

ベベルを使って立体感を出す

ベベル(Bevel: 面取り)を使うと、平面的なテキストの面を削ったような表現となり、立体的に浮き出ているような表現になります。例えば以下の例は、上が通常の装飾なしのテキスト、下がベベルを使ったテキストです。Photoshopを使わなくてもUnityの中でこれくらいの装飾ができるというのは嬉しい限りです。

上は通常、下は装飾
上は通常、下は装飾

 

デザイナーさんにテキストを装飾した画像を作ってもらって、それをUnityにインポートして使っていた部分が、TextMesh Proを使って一部代替できるかもしれません。修正はUnityの中で済むので、画像ファイルの再インポートなどの手間が減ります。

もちろん全て代替するのは無理ですが、TextMesh Proの機能で表現できる軽微な装飾でよければデザイナーさんの手間も減らせるかと思います。

 

上のサンプルではFace、Outline、Underlay、Lightingの4パートを設定しています。Lightingの中にBevelの設定が含まれます。

設定は以下の通りです。

 

Face

Faceの設定
Faceの設定

 

項目 設定値
Dilate 0.25

 

Outline

Outlineの設定
Outlineの設定

 

項目 設定値
Color #003900 (アルファ: 255)
Dilate 0.166

 

Underlay

Underlayの設定
Underlayの設定

 

項目 設定値
Offset X 0.3
Offest Y -0.3
Delite 0.25
Softness 0.5

 

Lighting

Lightingの設定
Lightingの設定

 

Bevel

項目 設定値
Type Inner Bevel
Amount 0.761
Width 0.269
Roundness 0.142

 

Local Lighting

項目 設定値
Light Angle 3.43
Specular Color #FAE69B (アルファ: 255)
Specular Power 2.92
Reflectivity Power 10.71
Diffuse Shadow 0.902
Ambient Shadow 0.734

 

Environment Map

項目 設定値
Face Color #8FF3C1 (アルファ: 255)
Outline Color #007480 (アルファ: 255)

 

使用フォント: ロゴタイプゴシック (フォントな)

ライセンス: M+ License

 

サンプルを足掛かりに

このページでは3つの本当にシンプルなサンプルを紹介しました。

これらのサンプルを足掛かりに、色々と試してみてもらうと表現の引き出しも増えていくと思います。多分やり始めるといくらでもできちゃうくらい楽しい部分なので、Unityの中でテキストの装飾を試してみてください。

 

他にもサンプルを見る場合はこの記事もご参照くださいな。

 

まとめ

このページではTextMesh Proを使っているときに設定可能なOutline、Faceなどの設定を保持するアセットファイルであるMaterial Presetの作り方を紹介しました。

また、Material Presetにおける設定についても3つのサンプルを紹介したので、ぜひご自身でも試してみてください。

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!