群集シミュレーションでは、最も重要なものがアクターです。アクターは、群集シミュレーションの「キャラクタ」として選択されたオリジナル モデルのコピーです。多様性をもたせるため、1 回の群集シミュレーションで数種類のモデルをアクターとして使用できますが、アクターとしてロードするモデルが多くなるほど群集シミュレーションの速度が低下することに注意してください。
以下のイメージにおいて、馬とカウボーイは、両方とも同じ群集シミュレーションでのアクターです。
群集に対して簡単に多様性を与えるため、同じソース モデルを複数回コピーしてから、各コピーのエンベロープ ジオメトリまたはマテリアルを修正し、それから各コピーを CrowdFX に読み込むことができます。この方法の利点の 1 つは、アクターが同一のデフォーマ リグを持つようになることです。これによりすべてのアクターは、ただ 1 つのアクターのためにロードした同じアクション ソースを共有できます。
群集シミュレーションを開始するには、まず、アクターとして使用するモデルを特定する必要があります。このモデルは、シーン内に存在することも、Softimage データベースにモデル(.emdl ファイル)として保存されていることもあります。別の 3D ソフトウェアからキャラクタを読み込む場合は、モデル(.emdl ファイル)として保存できます。これらの詳細については、「CrowdFX のモデルを準備する」を参照してください。
群集シミュレーションでモデルをアクターとしてロードするには:
CrowdFX で使用するモデルを割り当てると、群集モデルが作成されます。モデルのメッシュおよびリグは、複製されてアクター プロキシ(または単にアクター)と呼ばれるようになります。群集モデルの Actor_Proxies ノードの下にアクター プロキシ モデル ノードが追加されます。このノードには、群集シミュレーションでこのアクターを使用するときに必要とされるすべてのデータが含まれています。詳細については、「群集シミュレーションの構造」を参照してください。
モデルを群集に割り当てると、モデルのロード順序に従い、0 から始まり連続的に増分するアクター ID 値(CrowdFX_Actor_ID 属性)がアクター プロキシ モデルに付与されます。この属性は、シミュレーション ポイント クラウドのInitialize Move Locomotion Data(移動データの初期化)コンパウンド内のインスタンスに割り当てられます。
アクター ID は、実際には、アクション ソースが群集シミュレーションで使用されるアクターのインデックスです。アクターが、一緒にロードされた同じアクション ソースを使用する場合、そのアクター ID は、そのアクター メッシュの ID と同じになります。オリジナル アクターのメッシュの ID は、Get Actor ID(アクター ID の取得)コンパウンドで検索できます。
ソース モデルの非表示状態を切り替えるには、[CrowdFX アクター プロキシ]プロパティ エディタで[アクター ソース モデル](Actor Source Model) [表示/非表示](Show/Hide)ボタンをクリックします。
アクターの読み込み後、ソース モデルのエンベロープに調整を加えることができます。変更点をアクターのエンベロープに伝達する場合は、そのアクター用に作成されたメッシュ プロキシ オブジェクトで、ここで説明するオリジナルのソース エンベロープからの更新が確実に使用されるようにする必要があります。
このイメージは、ソース モデルのオリジナル エンベロープのジオメトリを示しています。
オリジナル ソースのメッシュ エンベロープのジオメトリに変更を加えます。この場合、2、3 のポイントを動かすだけで「彼」が「彼女」になります。
エクスプローラで、オリジナル ソース モデルの[メッシュ](Mesh) > [ポリゴン メッシュ](Polygon Mesh)ノードを展開し、コンストラクション領域を確認します。
[メッシュ プロキシの設定](Set Mesh Proxy)オペレータを移動させ、モデリング スタックの一番上に位置するようにします。この方法でエンベロープは、メッシュに対するモデリング処理の完了後に評価されます。
群集シミュレーションのアクターで、このモデルからメッシュ プロキシ オブジェクトが作成されているアクターすべてが、これらのエンベロープの変更を反映するよう直ちに更新されます。