Unreal Engine 5 マテリアルを勉強

# 初めに

今回はマテリアルについての記事になります。
Unityでもマテリアルを少し触った経験はあるのですが、Unityよりも難しいと感じたため基本的なところも含めて投稿していこうと思います！


# 目次
* マテリアルの作成方法
    * フォルダ作成
    * マテリアルを作成
    
* マテリアルをいじってみよう



# マテリアルの作成方法

まずフォルダを作成していきます。

こちらは別に作成する必要もないのですが、大規模な開発を行う場合などにフォルダを作成せずに丸裸でおいているとほかのアセットなどとごちゃごちゃになって非常に見栄えも悪いですし何より時間が無駄です（こんなこと言ってますがゲーム制作をちゃんと学ぶ前まで全部一緒にしていました...）。

では作成していきたいのですが、基本的にフォルダにしてもマテリアルにしてもちゃんとした名前を付けましょう。おそらくすべてで共通した名前があるわけではないのですが、ある程度固定されていると思います。

では今回はマテリアルのフォルダということでAll/Contentの中に_Matというフォルダを作成していきます。ここの "Mat" はMaterialという意味です。

![スクリーンショット (37).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/dd99a40a-ea1b-8e5e-81cf-bc70fd226853.png)


新しく作成したフォルダの中で、右クリックをし【Material】をクリックします



![スクリーンショット (38).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/3194728a-0592-3fd6-1d9e-1b04656961be.png)


その時に名前を付けるのですが、M_(名前)にします。ここでのMは先ほどと同じ理由なのですが、なぜここでは "Mat"じゃなくて "M" なのかというところなんですが、おそらくさきほどのフォルダ内にはMapsやMegasacansといったほかにMがつくフォルダがあるためだと思います。


![スクリーンショット (40).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/18f974e4-f1b0-58fb-0e42-80c785229f4b.png)

# マテリアルをいじってみよう

試しにどのレベルでもいいのでSphereを設置してマテリアルを適用してみましょう

適用させる方法はいくつかあり、
1. マテリアルを選択しドラッグアンドドロップでアクターに適用
1. Sphereを選択しDetailsの【Materials】の【Element】にドラッグアンドドロップ
1. Sphereとマテリアルを選択し、【Material】の【Element】の右にある矢印のアイコンをクリック

どれでもお好きなものを選べばいいと思います。マテリアルの量やレベル上のアセットが増えてくるにつれてやりやすい方法を試してみてください！

![スクリーンショット (41).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/167260a6-c4db-af7f-3955-c2f7954f61f6.png)


ただ今の状態だと何も色がついていないのでマテリアルに変更を加えていきます！

まず、Content Browserウインドウより先ほど作成したマテリアルをダブルクリックします。
そうするとマテリアルグラフという画面に変わると思います。ここでノードと呼ばれるものを使って色を変更していきます。

![スクリーンショット (42).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/c61d798a-e30c-c0e8-6faa-45e7f910e9b4.png)


ちなみに左上の球が移っている画面右下のアイコンを変更すると平面や円柱にすることができますが、今回は触りません。今後何か使う機会があれば追加していきます！

まずこのグラフ上でよく使うノードを紹介します。
ちなみにノードの出し方ですが右クリックを押すと検索することができるのでそこで出したいノードを検索するという感じです。

* Constantノード
これは絶対といってもいいほど使います。
ConstantとConstant(2,3,4)Vectorと分かれています。今のところは値が1～4つ扱えるんだなと思ってもらえれば大丈夫だと思います。
またショートカットキーが用意されており1(2, 3, 4) + 左クリックで出すことができます

* Multiply
これもよく使います。そのままの意味で値を二つ渡すとそれらをかけた値が出力されます。
こちらもショートカットキーが用意されており、M + 左クリックで出すことができます。



![スクリーンショット (43).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/6614572d-7982-8037-bb5e-8ef1daca373f.png)


では今画面の右に表示されてあるものについて説明していきます。

* Base Color
これはそのままですね。色を制御します。よくConstant3Vectorを使います。

![スクリーンショット (44).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/cbebbbd2-6f72-f27d-4134-7aec3d922b9b.png)

ここでいったんノードのつなげ方と値の変更に関して説明します。

まずノードの右にあるつなげたいピン（画像の赤で囲っているもの）を選択し、接続先にピンをドラッグします。解除したい場合はAltキーを押しながら線をクリック、別のところに移動させたい場合はCtrlキーを押しながら線をクリックします。ちなみにピンは一番上のもの以外も接続することができます。

![スクリーンショット (46).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/e155c164-7dec-a05b-82cd-29582f3211cd.png)


次に値ですがそのまま四角の中をクリックして変更しても可能ですし、ノードをクリックするとConstantノードであれば左にConstantと出てくるのでそこで値を変更します。色がついている部分をダブルクリックしても変更できます。ちなみにここでRGBとはそれぞれRed,Green, Blueを意味しています。


* Metalic

金属感の調整で1に近いほど金属っぽくなります。ここでは1つの値だけを使用するConstanノードをよく使います。

![スクリーンショット (47).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/ac2342a8-f07f-597d-47b6-89b0091d129c.png)
![スクリーンショット (48).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/d6a20c80-92aa-76cf-020a-de205b933af4.png)


* Specular

どれくらい光などを反射させるかを調整します。値が0だとのっぺりした感じになります。

![スクリーンショット (49).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/6312457a-20aa-af5a-b256-0f8ffa094325.png)
![スクリーンショット (50).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471631/7a649b15-7c75-cf12-54a9-ab333f3ddd34.png)