本日はShaderGraph勉強枠です。
SubGraphの機能に関して勉強しました。
〇SubGraphとは?
ShaderGraphでShaderを開発する際にノードが複雑になり可読性が低下する場合があります。

また、よく使用するノードの集まり(処理)がある場合まとめておきたいという場合があります。 このようなよく使用するノードの集まりなどを格納する仕組みとして[SubGraph]があります。
[SubGraph]を使用することで可読性を上げるほかオリジナルのノードを作成することができます。
〇CustomFanctionとSubGraph
オリジナルのノードを作成する仕組みとして[CustomFanction]ノードがあります。
[CustomFanction]ノードもまたオリジナルの処理をノードとして登録する機能です。

[CustomFanction]ノードはHLSLのファイルもしくはノード内でコードを入力することで機能する機能に対し、[SubGraph]は[CustomFanction]ノードを含め複数のノードをひとまとめにできる機能になります。
実際に使用していきます。
〇SubGraphの作成
今回は次のような時間に対して変数を掛け合わせ、アニメーション速度を調整するノード群を使用してみます。

①Projectウィンドウで右クリック→[Create]→[Shader]→[SubGraph]を選択しSubGraphを作成します。

今回は[TimeSpeed]という名前で作成しました。

②[TimeSpeed]をダブルクリックで開きます。
UIなどはShaderGraphと同様になっています。

③SubGraphとして登録したい処理をノードでつなぎ、[Output]へつなぎます。

インプットとして入力したい変数はShaderGraph同様[Backboard]で変数として登録します。

④[SavaAssets]で作成したSubGraphを保存します。

以上でSubGraphの作成登録が完了しました。
〇SubGraphの使用
次にSubGraphとして作成した[TimeSpeed]を使用します。
①ShaderGraphを開きます。
②[CreateNode]から[TimeSpeed]を検索にかけると作成したノードが出てきます。

これを[Time]ノードと[Multiply]ノードで掛け合わせていた処理と[TimeSpeed]ノードをつなぎます。

以上でSubGraphを使用することができました。
今回は2つのノードをひとまとめにしましたが複数のノードをひとまとめにすることで非常に可読性を上げることができそうです。