群集パーティクル放出を設定する

 
 
 

群集シミュレーションでは、それぞれのパーティクルにアクター プロキシのインスタンスが接続された状態で、パーティクルが放出されます。一般的な ICE パーティクル放出と同様に、目的どおりにパーティクルを設定するために使用できる多数のパラメータがあります。

群集シミュレーション ポイント クラウドの[放出](Emit) ICE ツリーで既定で作成されている適切な[放出](Emit)コンパウンドで、群集シミュレーションのパーティクル放出を設定できます。

現在の群集の[放出](Emit)コンパウンドのプロパティ エディタを開くには、ICE ツールバーから[CrowdFX] [シミュレーション](Simulation) [編集](Edit) [エミッタのインスペクト](Inspect Emitter)コマンドを選択します。

これらの[放出](Emit)コンパウンドは、標準 ICE パーティクルの放出に使用することもできますが、一部のパラメータは群集シミュレーション専用に設計されています。

パーティクル数を設定する

パーティクル数は、作成する放出のタイプ(歩行者またはスタジアム)に応じて別々に設定されます。

放出時に歩行者アクターの「個人空間」を定義する

以下に、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドにおける、アクターが放出直後に相互に衝突しないようにするパラメータを示します。パーティクルが放出された後、各アクターの周りにバッファを追加して移動時の衝突を防止できます。「アクターの周りにバッファを作成する」を参照してください。

放出時のパーティクル(アクター)のサイズとスケールを設定する

通常のパーティクル インスタンスと同様に、適切な[放出](Emit)コンパウンドでパーティクルの[サイズ](Size)[スケール](Scale)(各軸に沿ったサイズ)を設定すると、インスタンス化されたオブジェクト(アクター)はそのサイズとスケールを継承します。1 の値は、アクターの複製元であるオリジナル モデルと同じサイズとスケールになります。

下のイメージでは、単純な[ランダマイズ](Randomize)ノードが[放出](Emit)コンパウンドの[サイズ](Size)ポートに接続され、各パーティクルとそのアクターのサイズを多様にしています。

また、スケール コンストレイント コンパウンド(またはポーズ コンストレイント)を使用して、アクターのリグ プロキシ内の特定のデフォーマのスケーリングを拘束することもできます。「向きまたはスケールを拘束する」を参照してください。

放出時のアクターの向きを設定する

パーティクルは放出されるときに、エミッタ オブジェクトの CrowdFX_Emitter_Forward 属性によって定義された方向に向けられ、その Y 軸はアップ ベクターとして定義されます。

方向性エミッタを使用すると、アクターは自動的にエミッタの矢印の方向に向けられます(「方向性エミッタを使用する」を参照)。ただし、[衝突回避の初期化](Initialize Collision Avoidance)コンパウンドの[アクターの方向](Actor Direction) オプションを使用して、アクターに対して別の前方ベクトルを設定できます。

アクターの Y 軸を中心とする回転だけが有効です。

パーティクルをエミッタ上で配分する方法

両方の[放出](Emit)コンパウンドには、放出されるパーティクルの数と放出時のパーティクルの配置方法に影響するさまざまなパラメータがあります。

どちらの[放出](Emit)コンパウンドでも、[シード](Seed)値を設定して、エミッタ上でのパーティクルの配分を変更できます。

歩行者シミュレーションの場合

  • [外部境界の削除](Delete Outside Boundary)を選択して、エミッタの境界外部にあるすべてのパーティクルを削除します。これにより、放出されるパーティクルの数が変更されることに注意してください。

  • [ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドで[境界コンストレイント](Boundary Constraint)を選択して、エミッタ オブジェクトの境界内部にあるすべてのパーティクルを保持します。

スタジアム シミュレーションの場合

  • [水平ポリゴンから放出](Emit From Horizontal Polygons)コンパウンドで[エミッタからのオフセット](Offset from Emitter)>[XYZ]値を設定して、どの軸上でもエミッタ オブジェクトから離れるようにパーティクルを移動します。
  • [エミッタからのオフセット](Offset from Emitter)>[X/Z 変位](X/Z Variance)値を設定して、X および Z でのパーティクルの位置を多様にします。

ウェイト マップを使用して放出エリアを定義する

エミッタ オブジェクト上でウェイト マップまたは他の属性を使用して、放出のエリアを定義できます。

  1. エミッタ オブジェクトに適切な解像度レベルが与えられていることを確認してください。

    方向性エミッタ オブジェクトを使用している場合は、[グリッドの作成](Create Grid)オプションを選択し、[エミッタ データの設定](Set Emitter Data)コンパウンドの[U/V サブディビジョン](U/V Subdiv)値を、ウェイト マップの解像度に十分になるまで増やします。

  2. 1 つまたは複数のエミッタ オブジェクトのウェイト マップを作成します。「ウェイト マップ」を参照してください。
  3. 群集シミュレーション ポイント クラウドの[放出](Emit) ICE ツリーを開きます。
  4. [ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドから[エミッタ グループの取得](Get Emitter Group)ノードを接続解除し、エミッタの別の[Get Data]を取得します。これは、ウェイト マップへのリファレンスが、個々のエミッタ オブジェクトへのリファレンスにしかならない可能性があるからです。

    複数のエミッタを使用している場合、各エミッタ独自の[Get Data]ノードがそれぞれの[放出](Emit)ノードに接続している必要があります。

  5. 各[ジオメトリから均等に放出]コンパウンドで、[フィルタ](Filter)>[リファレンス](Reference)テキスト ボックスに、適切なウェイトマップに対するエミッタ オブジェクトの[ウェイト](Weights)属性を指定します。

    構文は、cls.WeightMapCls.Weight_Map.Weights のようになります。

  6. [レート コントロール](Rate Control)[フィルタされたエリアに比例](Proportional to Filtered Area)に設定します。

    パーティクルは、ウェイト マップ値が 0 でない箇所でのみ放出されます。

    [反転](Invert)オプションをクリックすると、値が 1 でない箇所でパーティクルが放出されます。

エミッタ上のポイントからアクターを放出する

通常の ICE パーティクルと同様に、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドを使用してポイントごとに 1 つのパーティクルを放出できます。軍隊の行進やパレード隊形などの群集シミュレーションで、これを行うことができます。

  1. エミッタ オブジェクトに適切な解像度レベルが与えられていることを確認してください。

    方向性エミッタ オブジェクトを使用している場合、[グリッドの作成](Create Grid)オプションを選択し、[エミッタ データの設定](Set Emitter Data)コンパウンドの[U/V サブディビジョン](U/V Subdiv)値が適切なレベルに設定されていることを確認してください。

  2. 群集シミュレーション ポイント クラウドの[放出](Emit) ICE ツリーを開きます。
  3. 編集する[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドを開き、[Generate Sample Set]ノードを開きます。
  4. このノードで、[放出タイプ](Emission Type)[ポイント](Point)に変更し、[レート タイプ](Rate Type)[すべてのポイント](All Points)に変更します。

これは、各エミッタ ジオメトリを、それぞれの[放出](Emit)コンパウンドに接続しない限り、[エミッタ](Emitters)グループ内のすべてのエミッタに影響します(上記の ICE ツリーのイメージを参照)。