docs.unity3d.com
    目次を表示する/隠す

    Spawn

    メニューパス : Context > Spawn

    スポーンコンテキストは、システムがインスタンスをいくつ Initialize コンテキストに流すかを制御します。このコンテキストはビルトインブロック一式を使って、スポーンレートを制御します。また VFXSpawnerCallbacks を実装し、カスタム動作を作成することもできます。

    このコンテキストは、スポーンループ内でパーティクルをスポーンします。処理するループ数、各ループの期間、および各ループの前後に遅延を入れるかどうかは、指定することができます。

    Context 設定

    設定 Type 説明
    Loop Duration Enum (Inspector) コンテキストがパーティクルを生成する期間を特定します。オプションは以下の通りです。
    • Infinite: パーティクルを継続的に生成します。
    • Constant: 指定した特定の期間、パーティクルを生成します。その後、Delay Mode が After Loop または Before And After Loop に設定されていれば、コンテキストはパーティクルのスポーンを一時停止します。この一時停止後の動作は、Loop Count および Delay Mode によって異なります。
    • Random: 最小と最大値間のランダムな期間、パーティクルを生成します。その後、Delay Mode が After Loop または Before And After Loop に設定されていれば、コンテキストは パーティクルのスポーンを一時停止します。この一時停止後の動作は、Loop Count および Delay Mode によって異なります。
    Loop Count Enum (Inspector) コンテキストがループする回数を特定します。各ループの間に、コンテキストがパーティクルスポーンをトリガーします。オプションは以下の通りです。
    • Infinite: 無限にループします。
    • Constant: 特定の回数だけループします。
    • Random: 最小と最大値の間の、ランダムな回数だけループします。
    Delay Mode Enum (Inspector) ループのどこでコンテキストが遅延を処理するかを特定します。オプションは以下の通りです。
    • None: 遅延を処理しません。
    • Before Loop: スポーンループの前に遅延を処理します。
    • After Loop: スポーンループの後で遅延を処理します。
    • Before And After Loop: スポーンループの前後に遅延を処理します。
    Delay Before Random Bool (Inspector) スポーンループ前の遅延が、最小値と最大値の間のランダムな値か、それとも一定値かを切り替えます。
    この設定は、Delay Mode を Before Loop または Before And After Loop に設定したときのみ表示されます。
    Delay After Random Bool (Inspector) スポーンループ後の遅延が、最小値と最大値の間のランダムな値か、それとも一定値かを切り替えます。
    この設定は、Delay Mode を After Loop または Before And After Loop に設定したときのみ表示されます。

    Context プロパティ

    設定 Type 説明
    Loop Duration float/Vector2 スポーンループの期間です。
    このプロパティは、Loop Duration を Constant または Random に設定したときのみ表示されます。
    Loop Count int/Vector2 初期ステートに戻る前に、コンテキストがいくつのループを処理するかを定義します。
    このプロパティは、Loop Count を Constant または Random に設定したときのみ表示されます。
    Delay Before float/Vector2 スポーンループ前の遅延期間です。
    このプロパティは、Delay Before Random を有効にしたときのみ表示されます。
    Delay After float/Vector2 スポーンループ後の遅延期間です。
    このプロパティは、Delay After Random を有効にしたときのみ表示されます。

    Flow

    ポート 説明
    Start Event、GPU イベント、または別のスポーンコンテキストからの接続です。
    Stop Event、GPU イベント、または別のスポーンコンテキストからの接続です。
    SpawnEvent Initialize コンテキスト または別の Spawn コンテキストへの接続です。

    補足 

    システムライフサイクル

    ループおよび遅延システムについては、下の図を参照してくださ

    ループフェーズのライフサイクルは、スポーンコンテキストが内部処理する 状態 に分けられます。ライフサイクルは以下の通りです。

    ステップ 状態
    1. 初期状態 スポーンコンテキストの初期状態は VFXSpawnerLoopState.Finished です。このステージでは、コンテキストは Start フロー入力がトリガーするのを待機しています。VisualEffect.Play を呼び出すと起こります。
    2. OnPlay Start フロー入力がトリガーする際に [カスタムスポーナーコールバック] があると、コンテキストは VFXSpawnerCallbacks.OnPlay をトリガーします。スポーンコンテキストはグラフを評価し、ループ数 を設定します。その後、次のステップに進みます。
    3. 遅延期間のリセット スポーンコンテキストがグラフを評価し、以下を初期化します。
    • delayBeforeLoop 時間。
    • loopDuration 時間。
    • delayAfterLoop 時間。
    その後、totalTime をゼロに設定して次のステップへ進みます。
    4. ループ前の待機 loopState から DelayingBeforeLoop に移行します。
    この段階では、totalTime が delayBeforeLoop を下回る間は、コンテキストは待機します。
    totalTime が delayBeforeLoop を超過すると、コンテキストは totalTime をゼロに設定して次のステップへ進みます。
    5. Looping loopState から Looping へ移行し、コンテキストは playing を true に設定します。
    この段階では、totalTime が loopDuration を下回る間、スポーンコンテキストが内部のスポーンブロックを評価し、パーティクルを生成します。
    totalTime が loopDuration を超過すると、コンテキストは totalTime をゼロに設定して次のステップへ進みます。
    6. ループ後の待機 loopState から DelayingAfterLoop に移行します。
    この段階では、totalTime が delayAfterLoop を下回る間は、コンテキストは待機します。
    totalTime が delayBeforeLoop を超過すると、コンテキストは totalTime をゼロに設定して次のステップへ進みます。
    7. 最終ステートの検証 最後に、コンテキストは loopIndex をインクリメントします。新しい loopIndex が loopCount よりも少ない場合、ライフサイクルはステップ 3 に戻ります。そうでなければ、初期のステップ 1 へ戻り、新たな Start フロー入力トリガーを待ちます。

    Spawn コンテキストのリンク

    スポーンコンテキストは、入力イベントを用いてオンとオフに切り替えるのが、標準的な方法です。スポーンコンテキストの Start 入力フロースロットに入力がない場合は、Visual Effect Graph は暗示的に “OnPlay” イベントに接続します。さらに、スポーンコンテキストの Stop 入力フロースロットに入力がない場合は、Visual Effect Graph は暗示的に “OnStop” イベントに接続します。

    スポーンコンテキストのオンとオフを切り替えるもう 1 つの方法は、別のスポーンコンテキストにリンクさせることです。これを実行するには、スポーンコンテキストの SpawnEvent 出力フロースロットを、別のスポーンコンテキストの Start 入力フロースロットにリンクします。その場合、イベント属性ステートは、最初のスポーンコンテキストから 2 つめのコンテキストに自動転送されます。その後、最初のスポーンコンテキストの Start および Stop 入力フロースロットに接続し、繋げたコンテキストのオンとオフを切り替えます。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)