ソーシャル グループを作成する

 
 
 

行動を共にさせるアクターのグループが複数ある場合、群集内にさまざまなソーシャル グループを作成できます。ソーシャル グループを作成すると、アクターは衝突回避について互いを「無視」するので、衝突回避のために減速や向き変えを行わず、互いに非常に接近するようになります。もちろん、別のソーシャル グループのアクターに対しては、通常の衝突回避動作がそのまま行われます。

たとえば、アクターがパスに従っている場合(「パスに従う」を参照)、自身の前にアクターを検出すると、減速し、パスの進行方向から向きを変え始めます。これらのアクターを同じソーシャル グループにすると、衝突回避動作については前にいるアクターを無視し、そのままパスに従います。

下の図では、アクターは、そのエミッタ ID に基づいて同じソーシャル グループに所属します。

同じソーシャル グループのアクターは、衝突回避について互いを考慮しませんが、向かってくる他のソーシャル グループのアクターは回避します。

ソーシャル グループを作成するには:

  1. 歩行者の群集シミュレーションを作成します。

  2. シミュレーション ポイント クラウドの[放出](Emit) ICE ツリーにある[衝突回避の初期化](Initialize Collision Avoidance)コンパウンドの[ソーシャル グループ インデックス](Social Group Index)値を設定します。

    アクターを特定のソーシャル グループに割り当てる何らかのロジックを作成する必要があります。たとえば、ここに示すように、エミッタの ID に応じてソーシャル グループを割り当てることができます。

  3. [同じソーシャル グループの隣接アクターを無視](Ignore Neighbors in Same Social Group)コンパウンドを取得し、[パーティクル シミュレーション](Particle Simulation) ICE ツリー内の[衝突回避のシミュレーション](Simulate Collision Avoidance)コンパウンドの[回避ソルバの前の実行](Execute Before Avoidance Solver)ポートに接続します。

  4. このコンパウンドの[係数](Factor)値を設定します。この値によって、同じソーシャル グループ内のアクターに使用する衝突回避のレベルを下げることができます。

    1 の値に設定すると、同じソーシャル グループ内のアクターが相互に非常に接近すると、衝突が計算されますが、衝突回避は使用されないので、アクターは減速することも相互にそれることもしません。

    同じソーシャル グループ内のアクターが非常に頻繁に、または目に見えて相互に衝突する場合には、この値を低くする必要があります。