トリガーの選択

 
 
 

[State]コンパウンドのトリガーは、指定された値に達したときに特定のエフェクトを発生させるものです。たとえば、風船ガムをふくらませすぎるとパンと割れるように、パーティクルが一定のサイズに達する(トリガー)と消滅する(エフェクト)場合などです。

この例では、トリガーはパーティクルの寿命(2秒)です。寿命に達すると、シェイプが円錐に代わります。

このコンパウンドの値に達すると、別のコンパウンドで定義されているエフェクトが実行されます。このエフェクトコンパウンドは、同じ[State]コンパウンドに接続することも、トリガーの値に達したときに移行する別の[State]コンパウンドに接続することもできます。

パーティクルエフェクトは、パーティクルの経過時間、パーティクルn個/フレームごと、パーティクルの位置(XYZ方向)、パーティクルのスピード、パーティクルと障害物の衝突など、多くのさまざまな基準によってトリガーできます。

トリガーとして使用されるコンパウンドの大部分は、[Particles]タブの[Conditionals]グループにあります。ただし、[State]コンパウンドの[Trigger]ポートに接続されている限り、ユーザが作成した他の任意のノードやコンパウンドも使用できます(ブール値である必要があります)。

トリガーを設定するには

  1. パーティクル エミッションを作成します — 詳細については、「基本的なパーティクル放出の作成」を参照してください。

  2. 利用する状態をセットアップします。「状態の設定」を参照してください。

  3. いずれかの[トリガー](Trigger)コマンドを選択します([ICE]ツールバーで[パーティクル](Particles) [エミッション後](After Emission) [ステートマシン](State Machine)メニューから)(選択可能なコマンドについては、「トリガーのタイプ」を参照)。

    まず、次の状態に切り替わることができるように、プライマリ状態にトリガーを定義する必要があります。

    • [Simulation Root]ノードに[State(状態)]コンパウンドが接続済みである場合は、このテストコンパウンドを追加する状態を選択するようにプロンプトが表示されます。[初期状態](Initial State)を選択し、[Trigger]コンパウンドを[Simulation Root]ノードの[Primary State]の[Trigger]ポートに接続します。

    • [Simulation Root]ノードにState(状態)コンパウンドが接続されていない場合は、適切なテストコンパウンドが直接[Primary State]の[Trigger]ポートに接続されます。これが、放出コンパウンドでパーティクル([State 0(状態 0)])に定義されてる唯一の状態であるためです。

      [Primary State]にはトリガーを 1 つしか設定できないため、別のトリガーコマンドを選択した場合、そのコンパウンドが現在接続されているコンパウンドに置き換わります。

  4. プライマリ状態トリガーを定義したら、次の各状態にも必要に応じてトリガーを設定できます。いずれかの[トリガー](Trigger)コマンドを([パーティクル](Particles) [エミッション後](After Emission) [ステートマシン](State Machine)メニューから)選択し、このテストコンパウンドをどの状態に追加するのかを選択します。これによって、コンパウンドが適切な[Trigger]ポートに接続されます。

  5. トリガーコンパウンドのプロパティエディタで、トリガーとして使用する値を設定します。

    たとえば、トリガーコンパウンドとして[Test Particle Reached Age Limit]を使用している場合は、[Set Particle Age Limit]コンパウンドを放出コンパウンドに接続する必要があります。続けて、[Set Particle Age Limit]プロパティエディタで、寿命(トリガーの値)を指定します。パーティクルの寿命として3を定義すると、パーティクルが経過時間 3に達したときに定義したエフェクトコンパウンドが実行されます。

  6. トリガーの値に達したときに状態を変更する場合は、[Change State on Trigger]リストからパーティクルが移行する状態のIDを選択します。詳細については、「パーティクルの状態 ID の設定」を参照してください。

    この新しい状態で、新しい動作/エフェクトを定義できます。パーティクルは、その[State]コンパウンドの[Change State on Trigger]オプションを使用して別の状態に変えられるまで、この新しい状態にとどまります。

  7. トリガーの値に達したときに発生させるエフェクトをセットアップします。「トリガーされるエフェクトを定義する」を参照してください。

トリガーのタイプ

トリガーは、さまざまな方法で設定できます。

  • ICEツールバー(以下を参照)の[Particles] [After Emission] [State Machine]メニューでトリガーコマンドを使用すると、Simulation Rootコンパウンドに組み込まれたステートマシンを使用してICEツリーのトリガコンパウンドを素早く接続することができます。これらのコマンドは、Preset Managerの[Conditionals(条件)]グループにあるコンパウンドを使用します。

  • Preset Managerの[Particles]タブの[Conditionals(条件)]グループにある、数多くのトリガーコンパウンドのいずれかを直接使用できます。

  • 出力が[Trigger]ポートに接続可能なブール値である場合は、条件として使用できるその他のノードまたはコンパウンドを使用できます。

[ICE]ツールバーのトリガーコマンドの使用

ICE ツールバーの[Particles] [After Emission] [State Machine]メニューでトリガーコマンドを使用すると、Simulation Root ノードに組み込まれたステートマシンを使用して ICE ツリーのトリガコンパウンドを素早く設定することができます。

トリガーコマンド

説明

パーティクル時系列トリガー(Particle Age Trigger)

このコマンドは[Test Particle Age(パーティクル時系列のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

時系列制限に到達したパーティクルトリガー(Particle Reached Age Limit Trigger)

このコマンドは[Test Particle Reached Age Limit(時系列制限に到達したパーティクルのテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

状態がパーティクルの寿命を認識できるように、パーティクルの寿命を設定する必要があります。この設定には、[Set Particle Age Limit(パーティクル時系列制限の設定)]コンパウンドを使用します。このコンパウンドを放出コンパウンドの[Execute on Emit]ポートに接続してから、トリガーとして使用する寿命を定義します。

パーティクルの速度トリガー(Particle Velocity Trigger)

このコマンドは[Test Particle Velocity(パーティクルの速度のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

パーティクルの位置トリガー(Particle Position Trigger)

このコマンドは[Test Particle Position(パーティクルの位置のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

N 番目のパーティクルごとのトリガー(Every Nth Particle Trigger)

このコマンドは[Every Nth Particle(N 番目のパーティクルごと)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

ランダムの確率トリガー(Random Probability Trigger)

このコマンドは[Test Random Probability(ランダムの確率のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

パーティクル ID トリガー(Particle ID Trigger)

このコマンドは[Test Particle ID(パーティクル ID のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

サーフェイスまでの距離トリガー(Distance to Surface Trigger)

このコマンドは[Test Distance to Surface(サーフェイスまでの距離のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

このコマンドを選択した後で、サーフェイスオブジェクトとして使用するジオメトリを選択する必要があります。続けて、このオブジェクトの[Get Data]ノードを[Test Distance to Surface]コンパウンドの[Surface]ポートに接続します。

ジオメトリの内側トリガー(Inside Geometry Trigger)

このコマンドは[Test Inside Geometry(ジオメトリの内側のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

このコマンドを選択した後で、ボリュームオブジェクトとして使用するジオメトリを選択する必要があります。続けて、このオブジェクトの[Get Data]ノードを[Test Inside Geometry]コンパウンドの[Surface]ポートに接続します。

カメラからの可視性トリガー(Visibility from Camera Trigger)

このコマンドは[Test Visibility From Camera(カメラからの可視性のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

また、デフォルトのカメラの[Get Data]ノードもICEツリーに追加し、[Test Visibility from Camera]コンパウンドの[Camera Name]ポートに接続します。

別のカメラを使用する場合は、カメラの[Get Data]ノードを開き、[Explorer]ボタンをクリックして、表示されるリストから別のカメラオブジェクトを選択します。[ピック]ボタンをクリックして、シーンにあるカメラオブジェクトを選択することもできます。

ウェイトマップ値トリガー(Weightmap Value Trigger)

このコマンドは[Test Weightmap Value(ウェイト マップ値のテスト)]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Trigger]ポートに接続します。

このコンパウンドのプロパティエディタで、適切なオブジェクトの適切なウェイトマップを選択する必要があります。