♻️

【Blender】ゲームVFXメッシュ Blender内チェック用マテリアルの作り方3種

2023/08/21に公開

◯概要

【もここのBlender VFXメッシュ自由研究】
試しにBlenderでいくつかメッシュを作っていたのですが、Blender上でチェックするときに使うマテリアルはだいたい3種類くらいを使いまわしていたので、忘れないようにメモしておきます。

(前回同様、現場では基本Mayaを使っているのでわからないながら試しに色々個人的に作ってみた自由研究となります…m(__)m 間違いやもっといい方法などありましたら教えていただけると嬉しいです!)

ーーー
作るマテリアルは
1.チェッカーマテリアル(マット)
2.ワンポイントマテリアル(マット)
3.チェッカーマテリアル(鏡面反射)

2は上下左右非対称なテクスチャがぱっと見で、UVチェックの際にあるとわかりやすかったので。

3はノーマル(法線)確認用に作っておいたほうが良いです。
(※Blender上でノーマル調整をしないと、UnityやUE5でエフェクトに使った際に見た目がおかしくなりました。)

といっても、基本構造はほぼ同じなので割とシンプルです!
(頂点カラーなどは楽をするために、ジオメトリノードも併用する前提の構成です。その辺の内容はまた別の機会に)
では作っていきましょう!

◯環境

Blender 3.4.1(メッシュ制作)

◯1.チェッカーマテリアル(マット)

1-1.適当なメッシュを用意

まずマテリアルを確認できるように
・Shadingワークスペースで適当なメッシュを追加しておきます。
今回はPlaneを追加しました。

・新規コレクション「_MT_Temp」など作成してその中に、
名前は「Temp_MT_VFXMeshUVMap_Checker_Plane」などで入れておくと良いです。
(わかりやすいようになっていればOKです!理由は後述します。)

1-2.新規マテリアルを作成

続いて「New」ボタンをクリックして、新規マテリアルを作成しておきます。
名前は、「MT_VFXMeshUVMap_Checker」としておきました。
(が、わかりやすければ何でも良いかなとw)

1-3.マテリアルノードを改造する

「Multiply」「Image Texture」「Attribute x2こ」ノードを追加して、↓のように繋ぎます。
(Attributeノードには、「UVMap」「color」と入力しておいてください。
 必要に応じて、ジオメトリノードから「UVMap」「color」の名前でUVやカラー情報を送ります。)

やっていることはシンプルで「UVMap」に合わせてテクスチャを貼って、「color」の頂点カラーと乗算しているだけです。

1-4.チェッカーテクスチャを貼る

Image Textureに入れるチェッカーテクスチャはわかりやすければ正直何でも良いかなと思います(^ ^)
今回、チェッカー生成サイトで作成したテクスチャを使用してみました。

参考
https://mononoco.com/creative/tool/uv-checker-map-maker

このテクスチャを貼って結果こんな感じです。

1-5.ブレンドモードなどを変更する

↓のように、マテリアルプロパティの
「Settings > Blend Mode : Alpha Blend」(アルファフェードできるようになります)
「Settings > Show Backface : オフ」(球などで手前奥の表示がバグらなくなります)
に設定。

★(重要Tips)1-6.別のメッシュで使いまわしたいときは

いい感じb

この先は、このマテリアルの改造なので簡単です!

◯ワンポイントマテリアル(マット)

2-1.メッシュを新規追加

同じように「_MT_Temp」のコレクション内に「Temp_MT_VFXMeshUVMap_Icon_Plane」という名前で新規プレーンを作成しておきましょう。

2-2.マテリアルを複製

マテリアルから先程作成した「MT_VFXMeshUVMap_Checker」を選択します。

その後、右隣の□が2つ重なったコピーのアイコンをクリックしてみましょう。
連番が増えてマテリアルが複製されます!

「MT_VFXMeshUVMap_Icon」とリネームしておきましょう。(わかりやすければOK)

2-3.テクスチャを差し替え

シンプルにテクスチャを好きなものに差し替えただけです。

こんな感じ
わかりやすいように上下左右非対称のものを設定してみました。

これでOKなので次へ

◯3.チェッカーマテリアル(鏡面反射)

3-1.メッシュを新規追加

同じように「_MT_Temp」のコレクション内に「Temp_MT_VFXMeshUVMap_Checker_Mirror_Sphere」という名前で新規UV球を作成しておきましょう。
これは球のほうが良いです。(理由は後述)

3-2.マテリアルを複製

マテリアルから先程作成した「MT_VFXMeshUVMap_Checker」を選択します。
その後、右隣のコピーアイコンをクリックしてマテリアルを複製。

「MT_VFXMeshUVMap_Checker_Mirror」とリネームしておきましょう。(わかりやすければOK)

3-3.マテリアルを改造

マテリアル内に元からあった「Principled BSDF」ノードの「Metallic=1」「Roughness=0」に設定してください。

これで、鏡面反射するようになりました!ミラーボール感 ^ ^

ーーー
鏡面反射のマテリアル的にはこれで完成です!!


★(重要Tips)3-4.ノーマル調整方法

3-4-1.そもそもどんな問題があるか

ということで、Blenderでも同じようにノーマルの調整ができないか調べてみたところこちらの素晴らしい動画を見つけました。ありがたい(今回の鏡面反射マテリアルはこちらの動画を参考に作成していたものです)
https://youtu.be/isK9GykrDbY?t=340

ーー

3-4-2.球メッシュ複製

前置きはこの辺にして実際に調整していきます。
「Temp_MT_VFXMeshUVMap_Checker_Mirror_Sphere」のメッシュを複製(Shift + D)→右クリックでその場に複製。元の方は非表示にしておきました。

3-4-3.ノーマル調整

エディットモードですべてを選択(Aキー)して、
「Mesh > Normal > Set from Faces」をクリック。

これでオブジェクトモードに戻るとガタガタのミラーボール状態からつるつる状態になりました!

試しに、UE5のメッシュパーティクルのフレネルで確認してみましたがこちらでも大丈夫そうです!

(おまけ)3-4-4.ノーマルを元に戻したいときは

参考
https://note.com/suzuumi/n/ndfe3306be8cb#0972ea32-3440-41a7-8653-5133e9c1483d

エディットモードで全選択した状態で、「Mesh > Normal > Reset Vectors」でノーマルを元に戻せるようです。

◯まとめ

ひとまずBlenderメッシュ作成のときには、
この3つマテリアルを作っておけばわりと便利かな~と個人的に思いました。

1.チェッカーマテリアル(マット)
2.ワンポイントマテリアル(マット)
3.チェッカーマテリアル(鏡面反射)

マテリアル内の「Attribute」ノードの
・「UVMap」
・「color」
へのジオメトリノードを使ったときの値の送り方は、まとめ次第それぞれ別の記事で紹介できればと思います!

Discussion