夜風のMixedReality

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

Unith VFXGraphをHoloLensで動かす

本日はUnity×HoloLensの実験枠です。

先日HoloLensでURP(Universal RenderingPipline)のプロジェクトを作成しました。

redhologerbera.hatenablog.com

URPとはスクリプタブルレンダリングパイプラインの一つで、従来のビルドインレンダリングパイプラインに比べリッチなレンダリングを行うことができます。

Unityでは2019.3以降で使用ができ、ビルドインレンダリングパイプラインと併用はできないもののいくつかの新機能を使用することができます。

その一つがVFXGraphです。

redhologerbera.hatenablog.com

VFXGraphはノードベースで様々なブロックを組み合わせることで簡単にビジュアルエフェクトが使用できます。

簡単と言っても、使用されるブロックはスクリプトに準じているため、基礎的なプログラミングの知識は必要です。

今回はVFXGraphがHoloLens 2で動くか気になったので実際ビルドしてみました。

〇エフェクトの作成

前回はテンプレートを使用してVFXGpahの導入を行いました。 今回はVFXGpahを簡単に触っていきます。

①新規でVFXGraphを作成し開きます。

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

デフォルトで[Spawn][Initialize][Update][Output]という4つのブロックで構成されています。

[Spawn]と[Initialize]はeffectの粒子の生成にかかわる設定を行います。

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

[Update]はC#と同様毎フレームごとの処理を行います。

[Output]は最終的に出力される粒子の状態を指定します。

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

②[Initialize Pertical]の[Capacity]の値を[100]にします。

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

これは粒子の容量を指定しています。

③[Output Pertical Quad]の[Main Texture]を[Default Pertical]に切り替えます。

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

これでシーン上できちんとパーティクルエフェクトが表示されます。

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

④[Update Pertical]の上で右クリックし[Turbulence]を加えます。

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

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

これは粒子の流れにノイズを与えることができます。

⑤[Conform to Sphere]を加えます。

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

これで球状に乱流が発生します。

⑥[Conform to Sphere]の[Attraction Speed]の値を[20]にします。

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

次にeffectの色を指定します。

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

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

⑧[Background]の[+]アイコンからColorを加えます。

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

⑨作成したColorをドラッグ&ドロップします。

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

⑩[Initialize Particle]に加えた[Set Color]へとノードをつなぎます。

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

VFXGpaphはこのようにノードをつないで一つのオブジェクトを作成します。

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

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

これで球状のエフェクトが作成できます。

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

⑫[Initialize Particle]に[Set lifetime over Randam]を加えます。

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

これは発生した粒子に指定した時間内でのランダムな生存時間を与えるものです。

これを実機で見てみます。

〇実機

youtu.be

そもそも動かない可能性もありましたがHoloLens2実機でVFXGraphを見ることができました。