VisualEffectGraphのコンテキストを見てみる

VisualEffectGraphのコンテキストはVFXを記述するときのメインです。スクリプトでいったらAwakeとかUpdateにあたる決まった時期に処理されるメソッド的なやつと思ってます。

少しづつ分かったことを書いていこうと思います。

自分で使ってみながら書いてるのと、ソースコードまでは読んだり読まなかったりなので正確な情報ではないかも。


Spawn

パーティクル生成に関するコンテキスト。数、生成されるタイミングのみ設定します。生成の場所とかはここでは指定しない。InitializeコンテキストのCapacityの数だけしか生成されないので注意。1000とか発生するようにしても、Capacityを1000とかにすると最初しか生成されない。

  • ConstantSpawnRate---1秒間にRateに設定した数のパーティクルを発生
  • SingleBurst---Countの個数、Delay秒後に1度だけ発生する。
  • Periodic Burst---Delay秒後に Countの個数発生する。Capacity(Initializeコンテキスト)の数になるまで発生する。最初の発生もDelay秒後になるよ!


Initialize

  • 1度に何個存在するか(Capacity)
  • 発生時の各パーティクルの位置
  • パーティクルの生存期間
  • パーティクルの移動速度

色々設定できます。ランダムに設定したいときはキーワード検索にrandomとか入れればそれらしいのが出てくる。

SetPosition,color,velocityとかはそのままの意味なんで特に書くことないですが、3Dメッシュの位置にパーティクルを発生させるような機能もあったりします。その辺は設定内容が複雑に感じてます。

下記画像はPointCacheとかいうのを使って、Initialize内でパーティクルの発生位置を3Dモデルの頂点から参照している? みたいな。

SetVelocityOverLifeのようなパーティクルの該当フレームで値が変わるようなブロックはここにセットしても適用されないようです。最初のフレームの値しか見られてないというか。Updateの方に設定するべき。

Line Output

線形のパーティクルを発生します。テクスチャを設定するところなんかもなくて、シンプルに線のみです。見た目を変えたい場合はLineOutput内にSetColorを付けるなりするみたいです。

線の太さとかは設定できない。

Target Offsetで線の長さを指定する。

原点0,0,0からTarget Offsetの位置までの線を引きます。パーティクル一粒一粒の線の長さになります。xに1を入れたらx軸に1の距離分伸びるパーティクルが発生します。