Event
Events は Visual Effect Graph の プロセス ワークフロー に対する、入力を定義します。Spawn および Initialize Contexts は Event を入力として使います。Event を通して Visual Effect Graph は、以下を行うことができます。
- パーティクルのスポーンを開始および停止します。
- C# スクリプトから送信される Event Attribute ペイロード を読みます。
Event 作成
通常、Event は Event 名を表す単なる文字列に過ぎません。Visual Effect Graph で Event を受信するには、Event Context を作成してから、Event Name プロパティで受信したい Event 名を入力します。Event Context には入力フロースロットがなく、出力フロースロットを Spawn または Initialize Context に接続することのみ可能です。
Event Context の作成方法
- Visual Effect Graph ウィンドウ で、空スペースを右クリックします。
- メニューから、Create Node をクリックします。
- Node Creation メニューで、Contexts > Event (Context) をクリックします。
- Event Name 入力フィールドで、Event 名を入力します。
デフォルト Event
Visual Effect Graph には、2 つのデフォルト Event があります。
- OnPlay: パーティクルをスポーン (生成) します。Event を Spawn Context の Start 入力フロースロットに割り当てない場合は、Visual Effect Graph は、この Event を入力フロースロットに暗示的に接続します。
- OnStop: パーティクルのスポーンを無効にします。Event を Spawn Context の Stop 入力フロースロットに割り当てない場合は、Visual Effect Graph は、この Event を入力フロースロットに暗示的に接続します。
Event Context を Spawn Context の Start または Stop 入力フロースロットに接続すると、暗示的に結びつけられた OnPlay と OnStop Event が、それぞれ削除されます。
カスタムイベント
デフォルト Event を使いたくない場合は、Event Context を使って、独自のカスタム Event を作成できます。
これを実行するにはまず、Event Context を作成 してから、カスタム Event 名を Event Name プロパティに入力します。
Event Attribute ペイロード
Event Attribute ペイロードは、Event に設定できる属性です。これらの属性を Visual Effect Graph で設定するには、 Spawn Context で Set [Attribute] ブロックを使えますが、C# スクリプトから送信する Event に設定することも可能です。後者のやり方に関する情報は、コンポーネント API を参照してください。
Event Attribute Payload は暗示的に Event からのグラフを移動し、Spawn Context を通過し、最終的に Initialize Context へ移動する属性です。ペイロードを Initialize Context で取得する場合は、Get Source Attribute Operator または Inherit [Attribute] ブロックを使います。
デフォルトの Visual Effect Event
デフォルト Visual Effect Event は、Visual Effect インスタンスが Reset (リセット) を行う際に、Visual Effect Graph が暗示的に送る Event 名を定義します。これはエフェクトが初めて開始するとき、またはエフェクトが再開するときに発生します。
デフォルト Visual Effect Event は、各 Visual Effect Graph アセット に個別に定義できます。またこの値を、Visual Effect Graph アセットのすべてのインスタンスにオーバーライドすることもできます。インスタンスにデフォルト Visual Effect Event をオーバーライドするには、Visual Effect Inspector の Initial Event Name を参照してください。
GPU Event
GPU Event は Visual Effect Graph の 実験的機能 です。これを使うと、他のパーティクルに基づいてパーティクルをスポーンできます。このオプションを有効にするには、Visual Effect Preferences で Experimental Operators/Blocks チェックボックスを有効にします。
GPU Event は、例えばパーティクルが消失するときなど、他のシステムから送信されたデータに依存する Event Context です。以下の Update (更新) ブロックが GPU Event Data を送信できます。
- Trigger Event On Die: パーティクルが消失するときに、別のシステムで N Particles をスポーンします。
- Trigger Event Rate: システムからのパーティクルに基づき、毎秒 (または移動した距離ごとに) N Particles をスポーンします。
- Trigger Event Always: 各フレームで N Particles をスポーンします。
これらのブロックは、GPUEvent Context に接続します。この Context はブロックは処理しませんが、代わりに子システムの Context を初期化します。
親パーティクルからデータを収集するために、子システムは Initialize Context 内の ソース Attribute を参照しなければなりません。これを実行するために、子システムは Get Source Attribute Operator または Inherit Attribute ブロックを使うことができます。
この例では、子システムは作成するパーティクルのソース位置を継承します。さらに親パーティクルのスピードの約 50% を継承します。