夜風のMixedReality

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

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

本日は一昨日、昨日に引き続きUnityのVFXGpahを学んでいきます。

〇VFXGraphとは?

VFXGraphはUnityのスクリプタブルレンダリングパイプライン(SRP)で使用可能なノードベースのエフェクトクリエイトツールです。

スクリプタブルレンダリングパイプラインとはUnity 2019以降で正式に導入されたUnityの機能で従来のビルドインレンダリングパイプラインに比べC#スクリプト可能なレンダリングパイプラインを指します。

スクリプタブルレンダリングパイプラインは大きく2種類存在し、HDRPとURPに分けられます。

〇HDRPとは?

HDRPはHigh Definition Render Pipelineの略でUnityで従来以上に非常に高精細さレンダリングを行うことができます。

しかしながら高精細さを保つためにはデバイスのスペック依存が激しく、特にVRにおいてはPCVR以外のスタンドアローンバイスでの動作は厳しいようです。

筆者が試したところOclusu QuestではgraphicAPIの影響でビルド自体ができませんでした。

HoloLensでは今度試してみようと思います。

〇URPとは?

URPはUniversal Render Pipelineの略で以前はLWRP(Low Weight Rendering Pipeline)と呼ばれていました。 旧称の通りHDRPに比べあらゆるデバイスに対応すべく提供された、ビルドインレンダリングパイプラインの次世代のレンダリングパイプラインです。

HDRPに比べるとデフォルトでの高精細さは落ちるもののHoloLensを含む様々なデバイスで使用でき今回のテーマであるVFXGraphの機能も使用できます。

〇エフェクト作成

前回の続きから行います。

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

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

①[Spawn]、[Initialize Particle]、[UpdateParticle]、[Output Particle Quad]を新たに作成します。

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

②[Periodic Burst]を[Spawn]に追加します。

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

Burstは爆発や発火を意味する言葉です。どうやら爆発物などのエフェクトの際現に使用できるようです。

[Count]、[Delay]にはそれぞれ1を入力します。

③[Initialize Particle]に[Set Lifetime]を加えます。値には2を指定します。

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

Spawnと初期の状態が指定されたことによって二つ目のエフェクトが発生します。

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

このようにVFXGraphは一つのアセットで複数のParticleSystemを管理でき、相互にやり取りできるようです。

④[Output Particle Quad]に[Set Size]を加えます。

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

⑤[Multiply]と前回作成した変数[Size]を加え[Set Size]の[Size]とつなぎます。この際[Multiply]の値は[10]に設定します。

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

⑥[Output Particle Quad]に[Set Color]を加えます。

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

⑦前回作成した変数[Color]と[SetColor]をつなぎます。

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

これで二つ目のエフェクトにも一つ目のエフェクトと同一の色が指定されました。

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

⑧新しく[divide]のノードを作成し[Color]に挟みます。

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

値には4を指定します。 これによってColorを4で割られた値が渡されます。

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

⑨[Output Particle Quad]の[BlendType]を[Additive]に変更します。

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

この変更によってエフェクトが透明度を持った粒子へと変わります。

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

⑩[add Color over life]を[Output Particle Quad]に追加します。

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

⑪[Color]プロパティを開き画像赤丸のプロパティを削除します。

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

[alpha]を0に指定します。

⑪50%に当たる場所にカラーを追加します。

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

これによって二つ目のエフェクトが完成しました

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

次回中央部の第三のエフェクトを作成して完成させていきます。