Chapter 27

マテリアル入門!超初心者向けチュートリアル[UE5]

daichi_gamedev
daichi_gamedev
2022.08.09に更新

今回は初心者向けにマテリアルの使い方、作り方などを解説していこうと思います!

①Material(マテリアル)とは?

マテリアルとは3Dモデルの外観を決定するものです。例えば、地面の草とか、木とか、キャラの見た目とかそういったものです。

UnrealEngineではマテリアルは3Dモデル毎に必ず一個は設定されています。3Dモデルの詳細にはマテリアルという項目があり、マテリアルを設定していない場合はデフォルトのマテリアルが設定されている状態になります。

マテリアルではマテリアルエディタを開くと必ずベースマテリアルというものがあります。

ブループリントのようにノードを作って、ベースマテリアルに繋げてマテリアル(外観)を決定します。つまり様々なの数値や、画像、ノードからマテリアルの見た目は決まる訳です。

ではマテリアルを作成していきたいと思います。

②単色マテリアルを作成する

まずは単色マテリアルを作成してみましょう。今回は例としてBlankプロジェクトを使用します。


マテリアルノードの一番上の項目BaseColorからConstant3Vectorを選択します。

ダブルクリックして色を調整します。

そしたらApplyを押して適用します。

次にドラッグ&ドロップで適用します。

基本的な流れはこんな感じです。

③Texture(テクスチャ)を使用してみる

今度はテクスチャを使用してマテリアルを作成したいと思います。テクスチャとは画像です。キャラの外観地面の柄とかキャラクターの見た目とかの部分の画像の事です。スターターコンテンツをダウンロードしてもらって、新たにマテリアルを作成しましょう。名前をWoodに。

マテリアルエディタを開いたらコンテンツブラウザからドラッグでスターターコンテンツのWood_Pine_Dを追加します。UE5からマテリアルエディタにもコンテンツブラウザが追加されました。

つなげてApllyします。

モデルに適用すると同じように木の見た目になりました。

④NormalMap(ノーマルマップ)を使用してみる

ノーマルマップとは表面を凸凹に見せるための画像の事です。一度試してみましょう。Wood_Pine_Nを追加してNormalという項目に繋げて適用します。

良く見ると表面に木の凹凸がされましたがちょっとこれだとわかりにくいので..

先ほどの単色マテリアルにT_Detail_Rocky_Nという岩のNormalMapを適用してみましょう。

すると先ほどのツルピカだった球体に凸凹が表現されました。これは実際に凸凹である訳ではなく凸凹のように見せているだけです。これがNormalMapといって地面などのマテリアルには基本的にTextureとセットで使用され、よりリアルに表現してくれます。

⑤基本的な調整項目五つを紹介

では次にベースマテリアルなど基本的な調整項目について紹介していきます。

たくさん項目のありますが基本使用するのはBaseColor,Metallic,Specular,Roughness,Normal,EmissiveColorです。基本的にはこの四つの項目を調整していくのでまずはこれらを覚えていきましょう。

①BaseColor

BaseColorは先ほど設定したように色とかテクスチャとかを基本の外観を決定します。

②Metallic(メタル感)

デフォルトは0で、0から1までの数値で変更ができます。ここには基本的に「Constant」ノードを使用します。

Valueから値を変更します。ここは1以上にしても意味ありません。数値を最高の1に設定すると球体にメタル感が増します。

③Specular(鏡面反射)

光の反射を調整できます。これも0からの1までの数値を変更します。例えば0にした場合マテリアルは反射しなくなり、1にすると反射して周りの環境をマテリアルに映し出します。デフォルトは0.5でConstantで変更します。0にすると光の反射がなくなります↓

Specularは非金属の表面でしか機能しません。つまりMetalicが1の場合は全く影響されません。なのでMetalicを0にして調整すると変化わかりやすい。これも0から1まで。

④Roughness(ツルツルかざらざらかの表面の粗さ)

constantで0から1の数値。0がツルツルで、1が粗い。ツルツルだとボーリングの球みたいになる。

⑤Normal(表面の凸凹)

Normalは法線マップともいって表面の凸凹具合をTextureで決定する事ができます。

その他の項目

最初は上記した紹介した五つの項目を覚えておきましょう。その他の項目は軽く解説していきます。
・EmissiveColor(光る)
Multiplyからconstant3vectorとconstantで発光させる事ができます。光の強さはconstantで調整します。

・AnisotropyとTangentは簡単に言うと反射の方法を変更できる項目です。詳しくは[UE4]Anisotropy(異方性反射)の使い方とそのTangentについてをご覧ください。
・WorldPositionoffsetはメッシュの頂点を操作できます。
・AmbientOcculusionは自身のメッシュに影をつける事ができます。
・PixelDepthOffsetはポリゴンではなく、テクスチャだけで凹凸を出させます。

⑥実用例

では実際にどのようにマテリアルを調整するのか簡単にやっていきましょう。先ほど作成した木のマテリアルはこんな感じになっていますが↓木が反射しすぎていて不自然です。調整していきます。

Metalic,Specular,RoughnessからそれぞれConstantを伸ばし、0,0,1にします。texture coordinateを追加してテクスチャとノーマルマップを繋げます。texture coordinateはテクスチャのタイリングの大きさを変更するものです。

texture coordinateの詳細からUtilingとVtilingを0.3に設定します。

Before上After下です。ちょっとわかりにくいですが自然な木の表面に近づきました。


もう少しこだわるとテクスチャのつなぎ目が不自然なので直したいのですが、ちょっと複雑なノードになってしまうのでまた別で解説します。

マテリアル調整で基本的に使用するノード

・Constant3Vector

RGBの三つの数値で色を出すノード

・Constant

一つの数値のノード

・Texture Sample

画像のノード

・Texture Coordinate

テクスチャのタイリングサイズを変更するノード

・Multiply

二つを混ぜるノード。この場合↓テクスチャと色(グレー)を混ぜている。

・Linear Interpolate

Aの値とBの値を混ぜるノードです。Alphaで0から1まで変更できて0に近いほどAが強く適用され1に近いほどBのが強く適用されます。つまりAlphaは混ぜる割合を調整する項目です。

マテリアルのプレビュー画面

マテリアルのプレビュー画面では適用したいメッシュに変更する事ができます。アセットからドラッグ&ドロップして一番右端のボタンをクリックします。


値を変更した後にApllyを押す必要がなくリアルタイムで変更されるので非常に見やすいです↓

プレビュー画面でLキーを押しながらドラッグで光の当て方を調整できます。


著者コメント✍🏻
マテリアルのノードは正直複雑です。どのノードを使えばよいのかどのノードを組みあわせたら良いのか初心者には難しいですが、基本的に使うノードは限られてきます。色であればConstant3Vector,数値であればConstantなど使うという事をまず覚えておけば必要最低限の調整には充分です!