群集シミュレーションでの障害物は、壁と呼ばれ、CrowdFX が理解する特定の ICE データを格納するポリゴン メッシュ オブジェクトです。
壁を描画するには、下記の [壁の描画](Draw Wall)コマンドを使用する必要があり、他のオブジェクトを壁として使用することはできません。ただし、壁をプロキシ オブジェクトとして使用し、シーンで使用したい障害物オブジェクトの実際のジオメトリを表すことができます。複数の壁をグループ化して、実際の障害物のジオメトリの一般的なシェイプを表すことができます。
壁を作成し、それを現在の群集シミュレーションに追加するには:
使用する群集モデルが現在の群集であることを確認します。「現行の群集を設定し、選択する」を参照してください。
ICE ツールバーから[CrowdFX] [群集](Crowd) [作成](Create) [壁の描画](Draw Wall)コマンドを選択します。
表示される[Set Wall Data(壁データを設定する)]プロパティ エディタでパラメータを設定します。これは、壁オブジェクトに対して作成される ICE ツリー内の[壁データの設定](Set Wall Data)コンパウンドです。
壁は標準のポリゴン オブジェクトであるため、各壁を移動および回転し、好きなように、その変形をアニメートできます。壁のサイズを変更するには、下記の次のセクションを参照してください。
起伏のある地形がある場合、壁を Y 方向に下げて、壁と地形の間にスペースがなくなるようにする必要がある場合があります。
作成した壁オブジェクトは、Walls_Root ノードの下に追加され、群集モデルの壁グループで参照されます。「群集シミュレーションの構造」を参照してください。
壁オブジェクトを複製すると、そのコピーは Walls_Root ノードの下に自動的に追加され、壁グループで参照されます。その後、壁オブジェクトは好きなように配置し、[壁データの設定](Set Wall Data)プロパティ エディタで、そのプロパティを編集できます。
壁グループ内のすべての壁の表示を切り替えるには、ICE ツールバーから[CrowdFX] [群集](Crowd) [編集](Edit) [壁の表示/非表示](Show/Hide Walls)コマンドを選択します。壁グループを選択し、[H]キーを押すこともできます。
Set Wall Data(壁データを設定する)コンパウンドの 3 つの[次元](Dimensions)パラメータで壁のサイズをコントロールできます。終了ポイントは、X 軸または Z 軸に沿って、最も長い壁の終端に配置されます。
標準のスケール変形ツールを使用して、壁のサイズを変更しても、[次元](Dimensions)値は変更されません。その結果、終了ポイントの位置が壁の新しいサイズを反映して更新されないため、衝突回避が不正確になります。
アクターは簡単な衝突検出処理を使用して、壁への衝突を回避します。アクターのニーまたはすね領域の場所から「視覚」光線が放出され、キャラクタの高さが判断されます。視覚光線の範囲は、Initialize Collision Avoidance(衝突回避の初期化)コンパウンドの[壁インタラクション制限](Wall Interaction Limit)距離値によって決定されます。壁がこの制限内の場合、アクターは壁の衝突の可能性を考慮し、壁の最も近い終了ポイント(左、右、または両側)に向かいます。
通常、アクターが終了ポイントに向かって移動する十分な時間を持てるように、[壁インタラクション制限](Wall Interaction Limit)値をかなり大きく設定する必要があります。たとえば、壁がはるか先に見えた場合、壁際に行くまで待たずに、向きを変えて回避します。
壁(または他のアクター)に近付きすぎることを避けるために、アクターの周囲に「厚さ」を加えることもできます。「アクター周囲のバッファの作成」を参照してください。
ゴールを定義している(「ゴールに向かって移動する」を参照)場合、アクターは最終的にそのゴールまで進もうとします。邪魔になる壁の終了ポイントは「一時的な」ゴールになります。壁を通り過ぎると、実際のゴールに進み続けます。
低い壁でも検出できるように、視覚光線はデフォルトでボディの低めに設定されていますが、必要な高さに設定できます。たとえば、壁が地面の上に持ち上げられている場合、高いオブジェクトを検出できるように、視覚光線を高くすることができます。
これを行うには、編集のためにInitialize Collision Avoidance(衝突回避の初期化)コンパウンドを開きます。次に、アクターのサイズを拡大するために使用するスカラ値を変更します。たとえば、視覚光線を腰のあたりの高さにしたい場合、0.5 の値(アクターの高さの半分)を使用します。
終了ポイントは、アクターが壁を避けるために到達させる場所(壁の左側、右側、または両側)を定義します。終了ポイントは最長の壁の片側から付き出す緑色の直線で表示されます。各壁には少なくとも 1 つの終了ポイントが必要です。
壁の終了ポイントは、Set Wall Data(壁データを設定する)コンパウンドで定義できます。
ヌルを作成して、それらを終了ポイントとして壁にリンクできます。これにより、終了ポイントが 1 つだけしかない部屋など、カスタムの壁設定を作成できます。カスタム終了ポイントを作成したい任意の位置に、ヌルを移動できます。ヌルのサイズとシェイプは、衝突検出に影響しません。アクターは単にヌルの中心に向かって進むだけです。
壁のSet Wall Data(壁データを設定する)コンパウンドで、次のいずれかの操作を行います。
ヌルが終了ポイントにリンクされ、好きな場所にヌルを配置できます。