見出し画像

[Unity Shader Graph]今さら人には聞けないNormal mapの貼り方(初心者)

unity version 2021.3.24f1
blender3.3

RPはURPを使用しています。
Built-inRPの場合はPackage ManagerからShaderGraphのインストールが必要です。

参考元

1、blenderでNormal mapをベイクする

Render EngineをCyclesにする

Bake TypeをNormalにする
Selected to Activeにチェックを入れる

立体のついたオブジェクトを選択し
ベイク先のオブジェクトを選択する
※ベイク先をアクティブの状態にする(アクティブは明るい色でハイライトされる)

Shadingタブを選択しImage Textureノードを作成する
作成したノードを選択する
※ノードは繋がっている必要はないです
※テクスチャはなんでも良いが上書きされるので新規テクスチャを割り当てるのが良いです

ベイクボタンを押す

Texture Paintタブを選択し
ベイクしたNormal mapを保存する

2、UnityにTextureをインポートする

  1. ProjectウィンドウにTextureをドラッグ&ドロップする

  2. インポートしたテクスチャを選択し
    InspectorウィンドウでTexture TypeをNormal mapにする
    ※意外と忘れがちなのでうまく貼れてない時は確認してみる

3、ShaderGraphを作成する

Projectウィンドウで右クリックから
Create >> Shader Graph >> URP >> Lit Shader Graphを作成する

できたShader Graphをダブルクリックでウィンドウが開く

作成するノード

  • Texture 2D Asset:テクスチャを出力する

  • Sample Texture 2D:UV情報をもとにテクスチャを貼るノード

  • Normal Strength:Normal mapの強さを調整するノード(値-1~1)
    (このノードはなくても問題ありません)

4、ノードを繋げる

  1. Texture 2D AssetをSample Texture 2Dに繋げる

  2. Sample Texture 2DのTypeをNormalにする
    ※これも忘れがちなのでうまく貼れてない時は確認する

  3. Sample Texture 2DをNormal Strengthに繋げる

  4. Normal StrengthをFragmentのNormalに繋げる

5、オブジェクトを作成する

  1. ProjectウィンドウのShader Graphを右クリックし
    Create >> Materialを作成する

  2. Hierarchyウィンドウで右クリックから
    3D Object >> Quadを作成する

  3. 作成したオブジェクトを選択しInspectorウィンドウのMesh RendererのMaterialsに作成したMaterialをドラッグ&ドロップする

説明が間違っている可能性がありますので自分でも調べて確認してみてください

補足

グレースケールをNormal mapとして貼ることもできる

この記事が気に入ったらサポートをしてみませんか?