CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【初心者向け】Unreal Engine 5 マテリアルの作り方・設定方法【UE5】
こんにちは!
今回は、 ゲームエンジン「 Unreal Engine 5 (UE5)」初心者向けに、アセットの材質・質感を表現する「マテリアル」の作成・設定方法を紹介します。
本記事では、ゲーム開発用ソフトウェア「Unreal Engine 5(UE5)」について、ビューポート操作やアセット追加方法等の基礎知識があることを前提としています。
UE5のソフトウェアの説明・基本操作方法については、こちらの記事をご覧ください。
マテリアルの基本
まずは、3DCGを扱う上で押さえておきたい「マテリアル」の概念について、簡単に内容を解説します。
マテリアルとは?
マテリアルとは、作成したオブジェクトの見た目を表現するための、色・テクスチャ・反射・ラフネスなどのパラメータ群のことです。
UE5に限らず3DCGソフトでは、光源(ライト)から出た光が、オブジェクトの表面(サーフェス)、あるいは内部(ボリューム)と相互作用し、最終的にどのように映像出力として出力(レンダリング)されるかをレンダリングエンジンによって計算します。
サーフェスに設定したマテリアルによって、こちらのように同じ形状であっても、出力されるレンダリング結果が変わってきます。
マテリアルの要素
マテリアルには、たとえば以下のような要素(パラメータ)があります。
- ベースカラー…サーフェスの色
- スペキュラ…サーフェスの光沢
- ラフネス…サーフェスの表面粗さ
- メタリック…サーフェスの金属光沢
- ボリュームの密度
マテリアルのパラメータを変更することで、こちらのように見た目の色・つや・反射具合などが変わります。
これらのマテリアルを編集して、自分が表現したい色や質感を表現することが、3DCG作品を制作する上で重要になってきます。
マテリアルの概念について理解するために、3DCGソフト「Blender」で実際にマテリアルを作成していじってみるのもオススメです。
Blender上でのマテリアルの設定方法については、こちらの記事で解説していますので、あわせて参考にしてみてください。
マテリアルの追加・編集方法
ここからは、UE5上で実際にマテリアルを追加・適用する方法を紹介していきます!
また、マテリアルの編集画面「マテリアルエディター」を使ってマテリアルを編集する方法についても説明します。
新しいマテリアルを作成する
新しくマテリアルを作成する方法を紹介します。
ビューポート画面左下の「コンテンツドロワー」を開き右クリックし、「マテリアル」→「マテリアル」を選択します。
新しく追加されたマテリアルをダブルクリックすると、マテリアルの編集画面「マテリアルエディター」が開きます。
メインマテリアルノードについて
マテリアルエディターを開くと、こちらのような「Material Graph」という画面が表示されます。
このMaterial Graphの画面上では、「ノード」と呼ばれる、プログラムを四角形で図示したものをつなぎあわせてマテリアルを実装することができます。
デフォルトでは、「メインマテリアルノード」という、マテリアルを表現するための最終出力を決めるためのノードだけが表示されています。
このメインマテリアルノード上にある「ベースカラー」「メタリック」などのパラメータを編集することで、マテリアルエディタ左上のプレビューに表示される出力結果が変わります。
また、メインマテリアルノードの各パラメータへは、別のノードの出力結果を入力することもできます。
後で紹介しますが、元になるマテリアルから「マテリアルインスタンス」を作成する場合は、値(ScholarParam)やベクトル(VectorParam)などのパラメータノードをメインマテリアルノードに接続する必要があります。
ちなみに、プレビュー画面右下のアイコンを選択することで、プレビュー画面に表示する形状を変更することができます。
また、プレビュー画面もレベルビューポートと同様に視点移動できます。
ノードの追加方法
マテリアルエディタ上で右クリックすると、追加するノードの選択メニューが表示されます。
ノードを選択・追加し、メインマテリアルノードに接続すると、マテリアルプレビューに反映されます。
選択メニュー最上段にある検索バーから、追加したいノードを検索して追加することもできます。
また、ノードの入力から左方向にドラッグすることでも、入力するノードを選択・追加することができます。
ノードの接続を切りたいときは、「Alt」キーを押しながらメインマテリアルノードへの入力をクリックすると接続が切れます。
ノードのプレビューを表示する
ノードがメインマテリアルノードに接続されているとき、接続したノードのプレビューを表示することができます。
たとえば、こちらのように「Fresnel」ノードを右クリックすると、Fresnelを白黒で可視化したプレビューが左上のプレビュー画面に表示されます。
プレビュー中は、プレビュー画面に「Previewing」という字幕が表示され、プレビュー表示されているノードが青色で強調表示されます。
プレビューを終了したいときは、同じノードを再度右クリックし「ノードのプレビューを停止」で、マテリアルのプレビューに戻ります。
マテリアルのコンパイルと適用
マテリアルをビューポートに反映するには、「コンパイル」(ソースコードをコンピュータで実行できる形式に変換すること)を行う必要があります。
コンパイルする際は、マテリアルエディターの「適用」または「このアセットを保存」をクリックします。
コンパイルしたマテリアルをオブジェクトにドラッグアンドドロップすることで、オブジェクトにマテリアルを適用し、ビューポートの結果に反映することができます。
反映されない場合は、以下を確認してみてください。
- マテリアルのコンパイルが完了しているか
- ビューポートの表示方法が「ライティングあり」になっているか
たとえば、ビューポート表示が「ライティングのみ」だと、マテリアルが反映されません。
色の変更・調整
メインマテリアルノードの色を変更・調整するには、メインマテリアルノードの「ベースカラー」を直接編集、または「VectorParameter」ノードを追加して色を設定します。
色を表す四角形をクリックすると、色を編集するカラーピッカーの画面が表示されて、色を任意に設定することができます。
また、「Fab」からダウンロードしたマテリアルなどでテクスチャ画像をベースカラーに入力している場合、以下のようなノードを使用することで色の調整ができます。
- Hue Shift: 色相を変換する
- Desaturation: 彩度を下げる
- Multiply: 輝度・チントを調整する
- Power: コントラストを調整する
Hue Shiftを使うことで、こちらのように0と1の数値を設定し色相を変換することができます。
Desaturationの値を0より大きい値にすると彩度が下がっていき、1でグレースケールになります。
Multiplyのパラメータに”Scholar Param(係数)”を接続すると、輝度を調整できます。
0は真っ黒、1だと元の輝度、1より大きい値に設定するとさらに明るくなります。
Multiplyのパラメータに”Vector Param(ベクトル)”を接続すると、ミックスする色によってチント(色合い)を調整できます。
Powerのパラメータを0にすると白黒となり、値を大きく設定するとコントラストが大きくなります。
これらのノードをすべて繋げることで、以下のようなテクスチャの色合いを調整するマテリアルノードを構築できます。
透明にする
マテリアルを透明にするには、あらかじめメインマテリアルノードのプロパティの「ブレンドモード」を「Obaque(不透明)」から「Translucent(透明)」に変更する必要があります。
メインマテリアルノードの「オパシティ」の値を1より小さい値に設定すると、透明になります。
テクスチャのトランスフォーム(スケール・回転など)
テクスチャのスケールを調整する場合は、「TexCoord」(テクスチャ座標)ノードの”UTiling””VTiling”の数値を調整します。
数値を1より大きくするとテクスチャが縮小され、1より小さくすると拡大されます。
テクスチャの向きを変えたい場合は、こちらのように「TexCoord」とテクスチャノードの間に、「CustomRotator」ノードを追加することで向きを変更することができます。
基本的なマテリアルの作成方法
金属やガラスなど、基本的なマテリアルの作成方法を紹介します。
金属
金属のマテリアルを作成するには、以下の3つを設定します。
- ベースカラー:白(鉄)、黄(金)など
- メタリック:1またはそれに近い値
- ラフネス:研磨した金属を表現したい場合は0に近い値にする
以下のように「Vector Param」「Scholar Param」ノードで、各パラメータの色と値を設定するのがおすすめです。
放射
ライトや星など光る素材を表現する場合は、VectorParameterノードを「エミッシブカラー」に接続します。
こちらのように、ベースカラーの色が放射の色にも適用され、発光するマテリアルを表現できます。
さらに強く光らせたい場合は、「Multiply」ノードを追加して大きい値を乗算することで、放射を強くすることができます。
ガラス
ガラスを表現するには、メインマテリアルノードのプロパティで「ブレンドモード」を「Translucent(透過)」に設定する必要があります。
メインマテリアルノードの以下のパラメータを設定します。
- ラフネス…0
- メタリック…1
- オパシティ(不透明度)…0.5
- 屈折(Index of Refraction・屈折率)…1.33を入力します。
値は好みで調整してみてください。
ボリューム
オブジェクトの表面ではなく、内部(ボリューム)にマテリアルを設定することもできます。
ボリュームを表示するには、事前にアウトライナーの「Lighting」→「ExponentialHeightFog」の中の「ボリュメトリックフォグ」→「Volumetric Fog」を有効にする必要があります。
ボリュームを有効にするには、マテリアルプロパティの以下設定が必要です。
- 「マテリアル」→「Material Domain」:「Volume」
- 「マテリアル」→「Blend Mode」:「Additive」
メインマテリアルノードの「エクスティンクション」を調整することで、ボリュームマテリアルの密度を設定できます(プレビューには表示されません)。
マテリアルインスタンス
最後に、「マテリアルインスタンス」の機能について設定します。
マテリアルインスタンスとは?
マテリアルインスタンスとは、「元になるマテリアルをパラメータによって調節できるようにした」マテリアルです。
通常、マテリアルの編集の際はノードの編集が必要で、レベルビューに適用するには再コンパイルが必要です。
ですが、マテリアルインスタンスではパラメータの数値を変更するだけで編集でき、また再コンパイルすることなくレベルビューに適用することができます。
そのため、色や質感などを変えたマテリアルを大量に作成したり、ゲームプレイ中のイベントに反応してパラメータを変更する、などの使い方ができます。
マテリアルインスタンスの作成方法
コンテンツドロワー上で、マテリアルを右クリックし「マテリアルインスタンスを作成」することができます。
マテリアルインスタンスを編集できる状態にするには、元になるマテリアルにおいて、メインマテリアルノードに直接値を打ち込むのではなく、スカラー・ベクトルのパラメータノードをメインマテリアルノードに接続した状態にしておく必要があります。
マテリアルインスタンスの使用例
マテリアルインスタンスを使用することで、こちらのようにパラメータ化されたベースカラーやラフネスなどを変更することができます。
マテリアルインスタンスの応用例として、こちらのような、光の色やタイミングをマテリアルインスタンスごとに変えた点滅アニメーションを作ることができます。
元となるマテリアルのノードはこちらです。
「Time」ノードを「Sine」ノードに接続し、さらにメインマテリアルノードの「エミッシブカラー」に接続することで、点滅を表現することができます。
また、「Scholar Param」ノードを「Time」に足し合わせることで、マテリアルインスタンス化した際に、光らせるタイミングを調節することができます。
あとは↑のマテリアルを元にマテリアルインスタンスを3つ作成し、光の色やタイミングを個別に設定することで、先ほどお見せしたアニメーションを作成できます。
まとめ
今回は、UE5初心者向けに、マテリアルの概念、および作成・設定方法を解説してみました。
リアルな質感を表現するためにはマテリアルの理解が不可欠なので、UE5を使った映像作品を作りたい方は、ぜひこちらの記事を参考にしていただければと思います。