【Unity】VFXグラフのブロックサブグラフを使う

投稿者: | 2021-05-21

複数のオペレーターとブロックをブロックサブグラフにまとめてみました。

VFXグラフを作る

まず、Initializeコンテキストでライフタイムをランダムに決め、その値によってパーティクルの色を変えるようなグラフを作りました。

ランダム値は、「Set Lifetime Random」ブロックで、設定した最小値と最大値の間から決まります。最大値をプロパティとして公開しています。プロパティを公開するには、Blackboardで、Exposedのチェックを入れます。

他にもインテンシティの値を設定して、パーティクルを発光させられるようにしています。

ライフタイムの最大値は、ランダムに決まった実際の値を割るためにも使いました。実際の値は「Get Attribut: lifetime」オペレーターで取得できます。Locationは「Current」にします。

これで、実際の値が最大値と同じ時に1になります。この値をVector3のXに使っって、値が小さいときは青、1のときは白になるようにしました。

さらに、この色にインテンシティをかけて、色を1より大きくすることで発光させています。インテンシティの値は2を累乗するときに使います。値が4のときは、色の値に16をかけます。そして、「Set Color」ブロックに接続しています。

これで、寿命によってパーティクルの色を変えられました。

ブロックサブグラフを作る

これらのオペレーターやブロックを複数選択します。まずはオペレーターを左クリックとドラッグで矩形選択しました。

追加選択するには、Ctrlキーを押しながら左クリックします。

サブグラフに含めるものをすべて選択したら、右クリックして「Convert to Subgraph Block」を選択すると、ダイアログが出るので保存します。

すると、全体が一つのブロックにまとめられます。

ブロックサブグラフを使う

ブロックサブグラフを他のVFXグラフで使うには、コンテキストを右クリックして、「Create Node」を選択します。普通のブロックを追加するときのように、名前を検索して作成できます。

ブロックサブグラフには、公開したプロパティが表示されていて、入力欄に直接値を入れたり、スロットにオペレーターを接続して変更できます。

ブロックサブグラフを編集する

ブロックサブグラフを編集するには、サブグラフブロックを右クリックして、「Enter Subgraph」をクリックします。

ブロックサブグラフはアセットとして保存されているので、Projectウィンドウでアセットをダブルクリックする方法もあります。

これで、ブロックサブグラフがVFXウィンドウに表示されます。

サブグラフのブロックは「Block Subgraph」というコンテキストに含まれています。

このコンテキストには、「Suitable Contexts」という設定があります。ここで、このブロックサブグラフが使えるコンテキストのタイプを選択できます。例えば、「Init」を選ぶと、Initializeコンテキストでのみ使えるようになります。

コメントを残す

メールアドレスが公開されることはありません。