Subgraphで作業効率を向上!

Subgraphの基本

VFX Graph には複雑なグラフを管理するための仕組みとして Subgraph と呼ばれるグラフの一部分をひとつのノードにまとめる機能があります。
Subgraph はカスタムのノードを自作する機能と言った方が分かりやすいかもしれません。実際に簡単な Subgraph を作ってみましょう。

グラフのこの部分はランダムなベクトルを生成する処理です。これを Subgraph 化しましょう。

この部分を範囲選択し、右クリックメニューからConvert to Subgraph Operator を実行します。名前は Random Vector とします。
これでひとつのノードにまとめられました。

右クリックメニューからEnter Subgraph を実行すると、作成した Subgraph の中身が見られます。
この中で Subgraph を再編集して挙動を変えたり 機能を追加したりできます。

では、Subgraph によって生成されるベクトルの大きさをプロパティから変えられるようにしてみましょう。
プロパティの作り方は通常の VFX Graph と同じです。

Max という名前のプロパティを作りMax スロットに繋いでいきます。
このようにプロパティを Subgraph に追加するとSubgraph ノードの入力スロットとして出現し、値を変更できるようになります。

もうひとつプロパティを追加してみましょう。

Min プロパティを作成してグラフに繋ぎ込んでいきます。
これで、Min, Max ふたつの入力スロットを持つカスタムノードができました。

同様の手順で 出力用のプロパティを追加することもできます。

プロパティを追加してからこれをoutput 側にドラッグしてドロップします。
適当に名前を付けてグラフに繋ぎ込んでいくと、output 側に追加されたプロパティは、Subgraph ノードの出力スロットとして出現します。
これで複数の入力と出力を持つカスタムノードが自作できました。

自作したカスタムノードはCreate Node メニューの中に登録され、普通のノードと同じ感覚で使いまわしていくことができます。この使いまわすことができるというのはとても大きなメリットです。
たとえば同じ内容の処理が繰り返しグラフに登場する場合、Subgraph を使うことにより見た目がすっきりするというだけでなく、編集の手間も大幅に軽減され作業が効率化されます。

Subgraph Block

さきほど作った Subgraph Operator の他に、Subgraph Block という機能もあります。コンテキストの中で使うブロックを自作する機能です。
手順はほぼ同じです。Subgraph にまとめたいブロックを複数選択し、右クリックメニューから Convert to Subgraph Block を実行します。

名前を付けて保存してSubgraph Block ができました。
Subgraph Block の場合も 、プロパティを作成することで入力スロットを追加できます。
例えばパーティクルの定型的な初期化処理などをまとめるのに便利な機能です。

Subgraph の機能は複雑なグラフの整理を行うのに便利な機能です。
よく使う定型的な処理をSubgraph にまとめてライブラリ化していくことによって、作業効率がグンとアップするはずです。
ぜひ使いこなしてください