Skip to content
第12回 VFX Graph入門

1 / 4 最小Graphと4つのContext ​

このステップの目的

少数の粒子を表示し、発生・初期値・更新・描画の担当箇所を確認します。

比較するParticle System ​

新しいSceneをLesson12.unityとして保存し、Main CameraをPosition (0, 0, -10)、Rotation (0, 0, 0)にします。第02回のLoopParticlesを置き、Looping有効、Start Lifetime 2、Start Speed 0、Start Size 0.1、Rate over Time 10、Burstなしにします。手元にない場合は第02回の作成手順で同じ設定を用意します。

再生して発生数と寿命を確認した後、Particle Systemを無効にします。比較用の基準としてSceneへ残し、VFX Graphと交互に有効にして観察します。

Graphの作成 ​

  1. ProjectのVFXフォルダーでCreate > Visual Effects > Visual Effect Graphを選び、Simple LoopからVfxPracticeを作ります。
  2. GraphをSceneへドラッグし、生成されたGameObjectを原点、Rotation (0, 0, 0)、Scale (1, 1, 1)へ置きます。
  3. Graphを開き、Spawn、Initialize Particle、Update Particle、Output Particle QuadのFlowが上から順につながっていることを確認します。
Context処理時点Particle System側の対応
Spawn発生の指示EmissionのRateやBurst
Initialize Particle粒子が生まれる最初の1回MainのLifetime・Size・Speed、Shape
Update Particle生存中の毎フレームGravity、Force、Noiseなど
Output Particle Quad描画時Renderer、描画する色や形

Contextの中の一つの処理をBlock、値の計算を行うノードをOperatorと呼びます。位置・速度・色・寿命など、粒子ごとに保持する値はAttribute(属性)です。

初期状態の統一 ​

テンプレートの見た目をそのまま使わず、比較する値をそろえます。SpawnにはConstant Spawn Rateだけを残し、Rateを10へ設定します。Initializeの既存Blockを削除し、Context内の空き領域を右クリックして次を追加します。Set系BlockはComposition Set、Source Portを使います。

Block設定
Set PositionRandom Per Component、A (-0.5, -0.5, 0)、B (0.5, 0.5, 0)
Set LifetimeRandom Off、Lifetime 2秒
Set SizeRandom Off、Size 0.1
Set VelocityRandom Off、Velocity (0, 0, 0)

Set Positionの各成分を別々にランダム化することで、1×1の範囲へ配置します。Initializeを選び、システムのSimulation SpaceをLocal、Capacityを512、Bounds ModeをManualにします。BoundsのCenterは(0, 0, 0)、Sizeは(8, 12, 8)です。

Updateの既存Blockは削除し、ContextのInspectorでUpdate Position、Age Particles、Reap Particlesを有効にします。位置を速度で更新し、年齢を進め、寿命で終了する基本処理です。

OutputはQuadのまま使い、Blend ModeをAlphaにします。Orient: Face Camera Planeなどカメラへ向けるBlockは残し、テンプレートに色や大きさを時間変化させるBlockがあれば削除します。色は白、Alphaは1、テクスチャーはテンプレートのものを使います。

Graphを保存してPlayすると、原点付近に小さな粒子が現れます。2秒以上待ち、常に約20個が生存する設定であることを計算してください。重なりによって見た目の個数を数えにくい場合もあります。

チェックリスト
  • 粒子を表示でき、どのContextを編集すれば寿命が変わるか答えられる。
  • RateとLifetimeから、おおよその同時生存数を求められる。