【Unity】TextMesh Proでアウトライン等の設定を変更した際にテキスト全てに反映されてしまう問題の解決法【Material Preset】

Unity

はじめに

Unityでのゲーム制作において、何かとTextMesh Proを使用する場面が多いかと思います。そして大抵(あそこのテキストはこの色にして……このテキストはこのサイズにして……)といった具合に、テキスト毎に色やサイズなどを変更して使用する場合が多いです。

しかし、「Outline」や「Face」、「Underlay」などの設定を変えてしまうと……

↑「Underlay」を設定した例。テキスト全てに適応されてしまっている。

上画像のようにテキスト全てに変更がかかってしまいます。本当は特定のテキストにのみアウトラインを付けたいと思っても、これでは困ります。
そこでこの問題を解決するカギとなるのが「Material Preset」です。

「Material Preset」とは、テキストの装飾の設定を保持しているアセットファイルのことです。TextMeshProコンポーネント内の、以下の画像に示す部分がMaterial Presetの設定項目にあたります。

↑「Material Preset」の設定画面

Material Presetの作成方法

新たにMaterial Presetを作成するには、先ほど画像で示したMaterial Preset設定画面右上にある三点リーダーみたいなマークをクリックします。クリックすると「Create Material Preset」という項目があるのでそれを選択します。

↑「Create Material Preset」を押して新たにMaterial Presetを作成

ちなみに記事ではデフォルトで使われている「LiberationSans SDF」のMaterial Presetを新規作成しました。

作成するとProject内のフォントアセットのある場所にMaterial Presetが作成されているはずです。今回の場合だと、[Assets]⇒[TextMesh Pro]⇒[Resorces]⇒[Fonts & Materials]にファイルが作成されているかと思います。

↑わかりにくいですが、「LiberationSans SDF.mat」が新規作成したもの

新規作成したMaterial Presetに、自分でわかるように名前を付けましょう。但しここで注意するポイントとして、作成したMaterial Presetの名前には指定されているFont Assetの名前を含めるようにしましょう。
今回の場合では、「LiberationSans SDF」というFont AssetのMaterial Presetを作成したので「LiberationSans SDF○○(※○○は任意の文字列を入力)」という感じで名前を付けましょう。
理由は後述します。

Point

Material Presetの名前にはFont Assetの名前を含める。

今回記事では「LiberationSans SDF – Sample_1」と名付けました。

Material Presetの作成が終わったので、実際に適用したいテキストにこのMaterial Presetを設定していきます。設定するにはまず「TextMesh Pro」コンポーネントにある「Material Preset」という項目のプルダウンを開きます。一覧の中に先ほど作成したMaterial Presetがあるはずなので、それを選択します。

Material Preset作成時にきちんと対象のFont Assetの名前を含んでいないとこの一覧に表示されません。これで設定は完了です。

実際に確認してみよう

では、作成したMaterial Presetの設定を変更して、実際にテキストに反映してみましょう。今回変化がわかりやすいようにするため、FaceのColorを水色にしUnderlayを以下のように変更しました。

実際にテキストに反映した結果がこちら。

↑記事で作成したMaterial Presetを「Sample_1」の文字列に適用した例

新たにMaterial Presetを設定したテキストにのみ変更がかかっているのが確認できると思います。

おわりに

TextMesh Proでアウトライン等の設定を変更した際にテキスト全てに反映されてしまう問題の解決法についてまとめてきました。Material Presetで少しテキストを装飾するだけでもだいぶクオリティが高く見えるので、頑張って使いこなしていきたいですね。

コメント

タイトルとURLをコピーしました