kuront’s blog

主にUnityでのゲーム制作やってます。

UE4 マテリアルの使い方学習

 今日はUE4のマテリアルの使い方を学習する。

学習内容は、

・マテリアル関数

・マテリアルインスタンス

・マテリアルパラメータコレクション

・マテリアルレイヤー

 

 

 マテリアル関数はマテリアルエディタ上で使いまわしができる関数で、似たような処理をする各々のマテリアルに仕込んでマテリアル作成の効率化を上げることができる。

 

 マテリアルインスタンスは既存のマテリアルから公開されているパラメータのみ編集ができるコピーで、こちらもマテリアルの作成の効率化を図ることができる。(というかこちらのほうが重要度が高い)

 

 マテリアルパラメータコレクションは、マテリアルエディタ上で使い回しができるパラメータのリストで、複数のマテリアルのある共通の要素を一括で変更したりできる。

 例えば、ワールド内で風の強さを受ける葉や草のマテリアルの揺れ具合や、雨に濡れた岩や木の濡れ具合等を予めマテリアルの適切な箇所で、パラメータコレクションリストで用意したパラメータを配置することによって一括で変更ができる。

 

 マテリアルレイヤーは一つのマテリアルアセットに複数のマテリアル関数を、マージマップという、どの箇所にどのマテリアルを割り当てるかRGBで示された画像に基づいて反映させる機能。マージマップの制作は他のツールを使用して行うっぽい。

 

 マテリアルインスタンスはもともと使っているので特に問題ないが、マテリアル関数は全然使ってなかったので、うまく利用できるようにしたい。マテリアルパラメータコレクションに関しては、今投稿主が制作しているようなゲームで使えそうな場面がすぐに思い浮かばない。まぁ使うときになったらまた調べてみるか。とりあえず概要だけ知っておけば、製作中に良い利用方法を思い浮かぶかもしれないし。

 

 製作中のゲームで暗い場所でもアイテムだけはちゃんと見えるようにしたかったので、合わせて調べてみた。簡単なやり方としては、アイテムに使用されているマテリアルのシェーディングモデルをUnlitにし、マテリアルのエミッシブカラーに色情報を接続すれば実現できる。だが、もともとUnlitは炎やライトの発光を表現するためのものらしく、このシェーディングモデルに設定すると、MetallicやRoughnessの設定ができなくなる。金属部分のあるアイテムについては他の方法を考えなくてはならない。

 

 シェーディングモデルについては、設定によっていろいろな表現ができるみたいだが、モバイルプラットフォームで使用できるのはDefaultとUnlitの2種類のみなので、モバイル向けのゲームアプリを制作する場合は注意が必要だ。

 

 今までなんとなく使ってきたが、設定によってはCPU負荷が高くなるそうなので気をつけないといけなさそうだ。まぁ特殊なマテリアルを同じレベル上に入れすぎなければ問題ないかな。