Update
メニューパス : Context > Update Particle
Update コンテキスト は、Initialize パーティクルまたはパーティクルストリップを、指定のシステムに対して処理します。
Visual Effect Graph はシーン内のエフェクトのカリングステート、および Visual Effect Graph アセットで指定された Culling Flags に応じ、各フレームでこのコンテキストを実行します。各更新コンテキストは含まれるブロックを実行し、特定の条件でその他の暗示的動作を処理することができます。暗示的動作については、詳細セクション を参照してください。
Context 設定
設定 | Type | 説明 |
---|---|---|
Space | Enum | (Inspector) システムのシミュレーション空間です。オプションは以下の通りです。 • Local: システムはローカル空間でシミュレーションします。 • World: システムはワールド空間でシミュレーションします。 |
Update Position | Bool | (Inspector) 速度に基づいてパーティクル位置を更新するかどうかを特定します。 |
Update Rotation | Bool | (Inspector) パーティクル回転に暗示的角速度を適用するかどうかを特定します。 |
Age Particles | Bool | (Inspector) パーティクルを自動的にエージングさせるかどうかを特定します。 |
Reap Particles | Bool | (Inspector) パーティクルを自動的に刈り取るかどうかを特定します。有効にすると、パーティクルの年齢が生存期間を超過している場合に、コンテキストによってシミュレーションから除去されます。 |
Flow
ポート | 説明 |
---|---|
入力 | Initialize コンテキストからの接続。 |
出力 | Update (Single) または Output (Single/Multiple) コンテキストへの接続。 |
詳細
暗示的動作
システム内にある属性に応じ、コンテキストは追加の動作を暗示的に実行します。
Velocity Integration: 速度属性がシステムにある場合、コンテキストは
position += velocity * deltaTime
の式を使って、Euler 速度統合を実行します。パーティクルは、その速度に応じて移動します。コンテキストは速度統合前に、位置属性を oldPosition 属性にバックアップします。Angular Velocity Integration: AngularVelocity 属性がシステムにある場合、コンテキストは
angle.xyz += angularVelocity.xyz * deltaTime
の式を使って、Euler 速度統合を実行します。パーティクルは、その角速度に応じて回転します。Aging: Age 属性がシステムにある場合、コンテキストは
age += deltaTime
の式に従って、パーティクルの自動エージングを実行します。Reaping: bot 年齢および生存期間属性がシステムにある場合、パーティクルの生存期間が年齢を超過すると、コンテキストは
alive = (age <= lifetime)
の式を使って、パーティクルを消滅させます (alive 属性を false に設定します)。
暗示的動作はすべて、デフォルトで有効化され、コンテキストのインスペクター内で無効にすることができます。
暗示的動作はすべて、更新コンテキストのブロックすべてが実行されてから発動します。
更新タイミング
Visual Effect Graph は、Visual Effect Graph アセットで設定された 更新モード に応じて、すべてのフレームでこのコンテキストを実行します。
Delta Time モードでは、フレームのデルタタイムを使い、各フレームで一度更新を実行します。このモードでは、デルタタイムは変数であり、フレームレートに変化が生じると、シミュレーションに多大な影響を与えます。
Fixed Delta Time モードでは、固定デルタタイム値を使うか、またはフレームを更新する必要がなければ、ゼロデルタタイムを使います。このモードでは、シミュレーションがある固定されたレートで発生し、シミュレーションの品質に与える影響は少なくなります。ただしこのモードでは、deltaTime がゼロになる場合があり、結果的に oldPosition が zero-deltaTime 更新に従い、フレーム内のある位置と等しくなる場合があります。