夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unity でShaderGraphを使う ShaderGraphで作成したShaderをUnityのマテリアルで変数として扱えるようにする。

前回ShaderGraphを導入してみましたが、今回ShaderGraphをもう少し使用しながら理解していきます。

〇プロパティの作成

前回ShaderGpaphを使用して初めてのShaderを作成しました。

しかし前回作成したShaderの色などをUnity側のマテリアルから変更しようとしてもできません。

f:id:Holomoto-Sumire:20200525093218j:plain

ShaderLabでいうとProperties{}の中身が記述されず、色などがすべてSubShader{}内で定数として処理されていることになります。

ここではUnityのマテリアルから変更できるようにします。

ShaderGraphウィンドウでマテリアルで変数として扱いたいプロパティからD&Dでノードを引きます。

f:id:Holomoto-Sumire:20200525093052j:plain

[Input]→[Basic]→[Vector1]を選択し新しいノードを作成します。

f:id:Holomoto-Sumire:20200525094007j:plain

作成したVector1のノードで右クリックから[Convert To Property]を選びます。 

f:id:Holomoto-Sumire:20200525094321j:plain

f:id:Holomoto-Sumire:20200525094444j:plain

これでUnityのマテリアル側で値を変更することができるようになりました。

f:id:Holomoto-Sumire:20200525094604j:plain

次にVector1のままでは何の変数なのかわからないので名前を変えます。

ShaderGraphに戻り[Convert To Property]を行うことで表示されるダイアログをクリックします。

f:id:Holomoto-Sumire:20200525095028j:plain

これで名前の変更が行えるようになりました。

f:id:Holomoto-Sumire:20200525095135j:plain

ここでは[NoiseScale]という名前を付けました。

[SaveAsset]を押しShaderGraphを保存してUnityへ戻ります。

f:id:Holomoto-Sumire:20200525095531j:plain

これでShaderGraphで作成したShaderの変数をUnityのマテリアル側から変更できるようになりました。