群集シミュレーションでは、それぞれのパーティクルにアクター プロキシのインスタンスが接続された状態で、パーティクルが放出されます。一般的な ICE パーティクル放出と同様に、目的どおりにパーティクルを設定するために使用できる多数のパラメータがあります。
群集シミュレーション ポイント クラウドの[放出](Emit) ICE ツリーで既定で作成されている適切な[放出](Emit)コンパウンドで、群集シミュレーションのパーティクル放出を設定できます。
現在の群集の[放出](Emit)コンパウンドのプロパティ エディタを開くには、ICE ツールバーから[CrowdFX] [シミュレーション](Simulation) [編集](Edit) [エミッタのインスペクト](Inspect Emitter)コマンドを選択します。
これらの[放出](Emit)コンパウンドは、標準 ICE パーティクルの放出に使用することもできますが、一部のパラメータは群集シミュレーション専用に設計されています。
パーティクル数は、作成する放出のタイプ(歩行者またはスタジアム)に応じて別々に設定されます。
歩行者シミュレーションの場合、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドで[アクター数](Number of Actors)を設定できます。これは、使用しているエミッタの数や異なるアクター モデルの数とは無関係に、群集シミュレーションで放出されるパーティクルの合計数になります。
スタジアム シミュレーションの場合、パーティクル数は、エミッタ オブジェクト上のポリゴン数によって決まります。ポリゴンごとに 1 つのパーティクルが放出されます。エミッタの解像度を変更して、パーティクルの数を変更できます。詳細については、「エミッタとしてサーフェイス オブジェクトを使用する」を参照してください。
既定の「観客」エミッタを使用している場合は、エミッタの ICE ツリーの[観客](Bleachers)コンパウンドでそれらを調整できます。
以下に、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドにおける、アクターが放出直後に相互に衝突しないようにするパラメータを示します。パーティクルが放出された後、各アクターの周りにバッファを追加して移動時の衝突を防止できます。「アクターの周りにバッファを作成する」を参照してください。
[検索範囲半径](Search Radius)は、放出時に、各パーティクルの周りにどれだけの空間単位を設定するかを指定します。
[反発係数](Repulsion Factor)は、サイズと距離に基づいて、放出時にパーティクルがどれだけ互いに反発し合うかを指定します。これは、[検索範囲半径](Search Radius)で定義した絶対単位の値よりも自然でランダムな度合いの空間をパーティクルの周りに作り出します。
[最大反復回数](Max Iterations)は、パーティクル クランプを作成するか(低い値を使用)、クランプを防止します(高い値を使用)。
壁オブジェクトがある場所と同じ位置または近い位置でアクターが放出されないようにするには(「障害物(壁)との衝突を回避する」を参照)、[壁プッシュ係数](Wall Push Factor)を設定します。
放出時のパーティクル(アクター)のサイズとスケールを設定する
通常のパーティクル インスタンスと同様に、適切な[放出](Emit)コンパウンドでパーティクルの[サイズ](Size)と[スケール](Scale)(各軸に沿ったサイズ)を設定すると、インスタンス化されたオブジェクト(アクター)はそのサイズとスケールを継承します。1 の値は、アクターの複製元であるオリジナル モデルと同じサイズとスケールになります。
下のイメージでは、単純な[ランダマイズ](Randomize)ノードが[放出](Emit)コンパウンドの[サイズ](Size)ポートに接続され、各パーティクルとそのアクターのサイズを多様にしています。
また、スケール コンストレイント コンパウンド(またはポーズ コンストレイント)を使用して、アクターのリグ プロキシ内の特定のデフォーマのスケーリングを拘束することもできます。「向きまたはスケールを拘束する」を参照してください。
パーティクルは放出されるときに、エミッタ オブジェクトの CrowdFX_Emitter_Forward 属性によって定義された方向に向けられ、その Y 軸はアップ ベクターとして定義されます。
方向性エミッタを使用すると、アクターは自動的にエミッタの矢印の方向に向けられます(「方向性エミッタを使用する」を参照)。ただし、[衝突回避の初期化](Initialize Collision Avoidance)コンパウンドの[アクターの方向](Actor Direction) オプションを使用して、アクターに対して別の前方ベクトルを設定できます。
歩行者シミュレーションの場合、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドで[向き Y](Orientation Y)値を変更できます。
スタジアム シミュレーションの場合、[スタジアム データの初期化](Initialize Stadium Data)コンパウンドで[向き](Orientation)モードを設定できます。この向きは、エミッタ オブジェクト(その CrowdFX_Emitter_Forward 属性)から得られることも、Y 軸を中心とした角度を指定できるカスタム値から得られることもあります。
また、基準となる向きからのランダム オフセットを、定義した角度範囲内で設定し、続いて[シード](Seed)値を設定してパーティクルの配分を変更できます。
両方の[放出](Emit)コンパウンドには、放出されるパーティクルの数と放出時のパーティクルの配置方法に影響するさまざまなパラメータがあります。
どちらの[放出](Emit)コンパウンドでも、[シード](Seed)値を設定して、エミッタ上でのパーティクルの配分を変更できます。
[外部境界の削除](Delete Outside Boundary)を選択して、エミッタの境界外部にあるすべてのパーティクルを削除します。これにより、放出されるパーティクルの数が変更されることに注意してください。
[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドで[境界コンストレイント](Boundary Constraint)を選択して、エミッタ オブジェクトの境界内部にあるすべてのパーティクルを保持します。
[エミッタからのオフセット](Offset from Emitter)>[X/Z 変位](X/Z Variance)値を設定して、X および Z でのパーティクルの位置を多様にします。
エミッタ オブジェクト上でウェイト マップまたは他の属性を使用して、放出のエリアを定義できます。
エミッタ オブジェクトに適切な解像度レベルが与えられていることを確認してください。
方向性エミッタ オブジェクトを使用している場合は、[グリッドの作成](Create Grid)オプションを選択し、[エミッタ データの設定](Set Emitter Data)コンパウンドの[U/V サブディビジョン](U/V Subdiv)値を、ウェイト マップの解像度に十分になるまで増やします。
[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドから[エミッタ グループの取得](Get Emitter Group)ノードを接続解除し、エミッタの別の[Get Data]を取得します。これは、ウェイト マップへのリファレンスが、個々のエミッタ オブジェクトへのリファレンスにしかならない可能性があるからです。
複数のエミッタを使用している場合、各エミッタ独自の[Get Data]ノードがそれぞれの[放出](Emit)ノードに接続している必要があります。
各[ジオメトリから均等に放出]コンパウンドで、[フィルタ](Filter)>[リファレンス](Reference)テキスト ボックスに、適切なウェイトマップに対するエミッタ オブジェクトの[ウェイト](Weights)属性を指定します。
[レート コントロール](Rate Control)を[フィルタされたエリアに比例](Proportional to Filtered Area)に設定します。
通常の ICE パーティクルと同様に、[ジオメトリから均等に放出](Emit Evenly from Geometry)コンパウンドを使用してポイントごとに 1 つのパーティクルを放出できます。軍隊の行進やパレード隊形などの群集シミュレーションで、これを行うことができます。
エミッタ オブジェクトに適切な解像度レベルが与えられていることを確認してください。
方向性エミッタ オブジェクトを使用している場合、[グリッドの作成](Create Grid)オプションを選択し、[エミッタ データの設定](Set Emitter Data)コンパウンドの[U/V サブディビジョン](U/V Subdiv)値が適切なレベルに設定されていることを確認してください。
このノードで、[放出タイプ](Emission Type)を[ポイント](Point)に変更し、[レート タイプ](Rate Type)を[すべてのポイント](All Points)に変更します。
これは、各エミッタ ジオメトリを、それぞれの[放出](Emit)コンパウンドに接続しない限り、[エミッタ](Emitters)グループ内のすべてのエミッタに影響します(上記の ICE ツリーのイメージを参照)。