[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、ノードの設定
Graph InspectorのGraph SettingsのSurface TypeをTransparentにする
(Graph Inspectorが表示されていない場合はウィンドウの右上のGraph Inspectorをクリックする)Graph InspectorのGraph SettingsのCast Shadowsのチェックを外す
Fresnel Effect Out --> Add AとB両方
Add Out --> One Minus In
One Minus Out --> Blend Base
Color Out --> Blend Blend Opacity = 1
このColorは光の玉の色 Alpha値は使用しないBlend Out --> Add B
Color Out --> Add A
このColorはさらに外側の色 上記のColorと同じにしても問題ないAdd Out --> Fragment Base Color
Lit Shaderの場合はEmissionに繋いでBase Colorを黒にするFresnel Effect Out --> One Minus In
One Minus Out --> Smoothstep In
Smoothstep Out --> Fragment Alpha
ウィンドウ左上のSaveAssetを押す
5、Materialを設定
ProjectウィンドウにあるShaderGraphを選択して
右クリックからCreate >> Materialを選択Hierarchyウィンドウで右クリックから3D Object >> Sphereを選択
SphereのInspectorウィンドウのMesh Rendererに作成したマテリアルを設定する
6、結果を確認
勉強中ですので説明が間違っている可能性があります自分でも調べて確認してみてください
この記事が気に入ったらサポートをしてみませんか?