Skip to content

第13回 VFX Graph 実践 ​

GPU の力を最大限に引き出せる VFX Graph を用いて、大量のパーティクルを扱う表現に挑戦しましょう。
Particle Systemとは異なるアプローチですが、より多くのパーティクルを効率的に扱うことができます。

今回は大量の光粒子が帯を描き、広がりながら消えるエフェクトを作ります。
シンプルながら様々なエフェクトの基本となる表現です。

第12回で学んだVFX Graphの4つのContextを使い、発生数と粒子の動きを調整しましょう。

完成見本 ​

動画を開く

見本では、楕円に沿って動くエミッターから大量のパーティクルを発生させています。
生まれたパーティクルは後述のタービュランス(乱流)とリニアドラッグによって火の粉のように舞い、拡散します。
時間経過に応じたパーティクルの色とサイズの変化にも注目してください。

配布プロジェクト ​

授業用のEffectPracticeプロジェクトをUnity 6.6(6000.6.0f1)で開いてください。URP・Visual Effect Graphは17.6.0です。
第13回のUnity Packageを、共通の取り込み手順に沿ってImportします。
使用するScene、Graph、Volume Profileは次のフォルダーにあります。

text
Assets/UNSLOW/EffectPractice/Lessons/SecondTerm/13_VFXGraphFlow/
  README.md
  Scenes/
    SparkleFlow.unity
  Effects/
    SparkleFlow.vfx
  Settings/
    SparkleFlowVolume.asset

SparkleFlow.unity には、カメラとエフェクトが配置済みです。
Volume ProfileでBloomなどの画面効果も加味されています。

この回のゴール ​

  • Spawn Rateとパーティクルの寿命から必要なパーティクル数を見積もり、設定できる。
  • Turbulence・Force・Linear Dragを一つずつ操作し、目的の表現を作成できる。
  • エフェクトのパラメーターを調整し、意図した表現を作成できる。

粒子の動きを作る二つの設定 ​

パーティクルエフェクトは、大きく「初期化」と「更新」の二つの設定で構成されます。

Initializeでは、パーティクルの位置・寿命・初速などの初期状態を設定します。
炸裂するインパクトを求めるか、緩やかで継続的な広がりを求めるかなどで初期設定が変わります。

Updateでは、生存中のパーティクルに毎フレーム適用する処理を設定します。
等速度運動を基点とし、そこに乱れや外力、減速などを加えることで、多様な表現を作り出すことができます。

今回は、ある程度長い寿命を持つ継続的なパーティクル表現をベースに、様々なパラメーターがパーティクルの動きやビジュアルに与える影響を比較していきましょう。

制作の手順 ​

完成条件 ​

練習用Sceneで光の帯を再生し、各パラメーターを変更しながら機序の理解を勧めます。
最終的に、自身の意図した表現を自力で作成できるようになることを目標とします。