夜風のMixedReality

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

VFXGraphを学ぶ HoloLensにビルドする続き オーブエフェクト 前編

本日は昨日に続きUnity スクリプタブルレンダリングパイプラインで使用可能なVFXGraphを学びます。

〇VFXGraphとは?

VFXGraphはUnityのSRP(スクリプタブルレンダリングパイプライン)を導入したプロジェクトで使用可能なノードをつなぐことで作成するエフェクト作成ツールです。

前回は基礎的なものを触り、HoloLens実機で動かして動くことを確認しました。

redhologerbera.hatenablog.com

前回は球状に展開する粒子を作成しました。今回はこちらのチュートリアルを参考にさらにかっこよいエフェクトを目指します。

www.youtube.com

〇エフェクトを作成する。

①VFXGraph上にあるノードをすべて削除します。

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

②右クリックから[Create Node]→[Simple Heads & Trails]を選択しテンプレートから新規で作成します。

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

この時点でかなりクォリティの高いエフェクトが作成されています。

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

③[Spawn]の[Rate]を50にします。

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

④[Initialize Particle]から粒子の容量である[Capacity]を[1000]に設定します。

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

⑤[Initialize Particle Split]の[Capacity]を[1000]にします。

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

⑥ウィンドウ上部タブから[Background]を選択しバックグラウンドパネルを表示させます。

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

⑦開いたパネルの[+]アイコンを選択しFloat型の変数を作成します。

[New Float]をダブルクリックすることで名前を変更できます。[TransSpawnRate]と名付けます。

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

これは外部から扱えるPublicな変数でしょうか、ほかにもColorなど様々な型の変数を作成できます。

⑧作成した[TransSpawnRate]をドラッグ&ドロップし、Spawnの[Rate]と接続します。

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

これでTransSpawnRate=Rateになるようです。

現在は定数ですが、別の処理を行ったノードなどを接続することで複雑な表現も行えるようです。

⑨[Set Velocity Random]と[Set Color Random from Gradient]を[Initialize Particle]を削除します。

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

⑩[Initialize Particle]に[Set Color]を加え[Background]に[Color]を加えます。

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

[SetColor]はその名の通り色情報を扱うノードのようです

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

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

ColorをSetColorにつなぎます。

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

⑪[Initialize Particle]に[Position(Sphere)]を加えます。

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

これによって初期の粒子の生成が球状のポイントから行われます。

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

⑫[Background]にFloat型の[Radius]という名の変数を作成し、[Position(Sphere)]の[Radius]とつなぎます。

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

Radiusは名前の通り生成する球座標の大きさを指定します。

⑬[Initialize Particle]に[Set Lifetime Random]を追加します。

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

[Set Lifetime Random]は粒子の生存時間を指定します。 二つの変数の中でランダムに決まります。

⑭[Background]に[Translifetime]という名のfloatの変数を作成します。

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

⑮[Multiply]を二つ作成し画像のように[Set Lifetime Random]のA,Bに接続します。

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

[Multiply]は掛け算です。つまりTranslifetime1=Set Lifetime RandomのA、Translifetime3=Set Lifetime RandomのBという処理になります。

ここまでで次のような紐のような粒子が球状に漂うエフェクトが完成しました。

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

前編はここまでです。

少しずつ学びながら進めていきたいです。