見出し画像

[Unity Shader Graph] 光の玉を作る(初心者)

Unity version 2021.3.0f1

1、Render Pipelineを選択

後で変更できるがRender Pipeline(以下RP)を変更すると作成済みのShaderが表示できなくなるのでプロジェクト作成時に決めて置くのが良い
RPにはいくつか種類がある
ここではURPを使用する

  • Built-in PackageManagerからShaderGraphをインストールする必要がある

  • HDRP 詳しくは以下を参考にしてみてください

  • URP 詳しくは以下を参考にしてみてください

2、Shader Graphを作成

Projectウィンドウで右クリックから
Create >> Shader Graph >> URP >> Unlit Shader Graph
Lit Shader Graphでも可
Graphがついていないものはシェーディング言語で記述する必要がある

3、ノードを作成

作成したShader Graphをダブルクリックするとウィンドウが開く
ウィンドウ上で右クリックからCreate Nodeを選択するとノードが選べる
(スペースキーがショートカット)
探すのは面倒なので基本は検索ボックスに入力して選ぶ
※Create Nodeをクリックしてもノードの選択項目が表示されない場合は一度ウィンドウ上で左クリックをしてESCキーを押してみる。半角英数入力になっているか確認する

使用するノード

  • Color 色

  • Add 加算

  • Blend 値をブレンド Opacity = ブレンド強度

  • One Minus 1 から入力 In を引く(値を反転するっぽい)

  • Smoothstep 範囲外の値を滑らかに切り捨て

  • Fresnel Effect 詳しくは以下を参考にしてみてください

Texture 2D Assetノードを使わずにSample Texture 2Dに直接テクスチャを設定することもできる
後でProperty化する時にノードを分けておくとやりやすい
同一のShaderGraphでテクスチャだけ差し替える場合にProperty化する

4、ノードの設定

  1. Graph InspectorのGraph SettingsのSurface TypeをTransparentにする
    (Graph Inspectorが表示されていない場合はウィンドウの右上のGraph Inspectorをクリックする)

  2. Graph InspectorのGraph SettingsのCast Shadowsのチェックを外す

  3. Fresnel Effect Out --> Add AとB両方

  4. Add Out --> One Minus In

  5. One Minus Out --> Blend Base

  6. Color Out --> Blend Blend Opacity = 1 
    このColorは光の玉の色 Alpha値は使用しない

  7. Blend Out --> Add B

  8. Color Out --> Add A
    このColorはさらに外側の色 上記のColorと同じにしても問題ない

  9. Add Out --> Fragment Base Color
    Lit Shaderの場合はEmissionに繋いでBase Colorを黒にする

  10. Fresnel Effect Out --> One Minus In

  11. One Minus Out --> Smoothstep In

  12. Smoothstep Out --> Fragment Alpha

  13. ウィンドウ左上のSaveAssetを押す

5、Materialを設定

  1. ProjectウィンドウにあるShaderGraphを選択して
    右クリックからCreate >> Materialを選択

  2. Hierarchyウィンドウで右クリックから3D Object >> Sphereを選択

  3. SphereのInspectorウィンドウのMesh Rendererに作成したマテリアルを設定する

6、結果を確認

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

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