ソース モデルをアクターとして割り当てると、そのエンベロープ メッシュが、群衆シミュレーションで各パーティクルにインスタンス化されるジオメトリとして識別されます。
これはどのようにして発生するのでしょうか。下に示すように、2 つのオブジェクトが関係します。
CrowdFX はオリジナルのモデルのポリゴン メッシュのコピーを作成し、それをMesh Proxy ポリゴン メッシュと呼びます。このオブジェクトは、既定で非表示ですが、OpenGL 表示モードで群衆シミュレーションを表示すると、表示できます(下を参照)。
Mesh Proxy オブジェクトは、モデリング領域の Set Mesh Proxy ICE ツリーの[Set Mesh Proxy]コンパウンドのオリジナルのメッシュのベース ポーズ(T-ポーズなど)のコピー、エンベロープ ウェイト、シェイプ キー、マテリアル、テクスチャです。
[シェイプ インスタンスのスキニング](Shape Instance Skinning)コンパウンドに、OpenGL 表示モードでメッシュ プロキシの表示に使用されるエンベロープ スキニングが設定されます。この表示モードは、メッシュ プロキシのマテリアルにある GLSL_Actor_Envelope シェーダが有効な場合、それを使用します。
CrowdFX は Actor Copies ポリゴン メッシュも作成します。これは、群衆シミュレーションにおいてアクター プロキシの全インスタンスのエンベロープ ジオメトリを格納する単一オブジェクトです。Actor Copies メッシュは、3D ビューにおいてアクターのエンベロープを表すものとして表示される通常のオブジェクトですが、次に説明するとおり、その表示をオーバーライドすることによって、シミュレートされるポイント クラウドのパーティクル シェイプとしてメッシュ プロキシ メッシュを使用することもできます。
Actor Copies メッシュには、次の 2 つの ICE ツリーが含まれます。
[Modeling](モデリング)領域の Duplicate Actor Geometry ICE ツリーは、Mesh Proxy オブジェクトからトポロジ データを取得し、群衆シミュレーションで、アクターのメッシュのパーティクル単位のインスタンスを作成するために、それを複製します。各アクター インスタンスのマテリアルとテクスチャ プロジェクションもここで設定します。パーティクル データの数は、スケルトン クラウドから取得されます。
[シミュレーション後](Post-Simulation)領域の Crowd Skinning ICE ツリーは、スケルトン クラウドからのグローバル変換およびポイント位置に基づいて、各アクター インスタンスのエンベロープ デフォーメーションを計算します。基本的に、シミュレーションでアクタをアニメートする方法とシーン内のそれらの場所を調べて、それに従ってエンベロープを変形します。
最初のフレームでの Actor Copies メッシュの生成を待たずに群衆シミュレーションをプレビューする必要がある場合、OpenGL 表示モードでアクターを表示する方法があります。
これを実行するには、Mesh Proxy オブジェクトのマテリアルに定義されている GLSL Actor Envelope リアルタイム シェーダ コンパウンドを有効にします。このシェーダは、OpenGL 表示モードでのプレビュー時に Actor Copies メッシュではなく Mesh Proxy メッシュを、各アクター インスタンスのエンベロープとして使用します。このシェーダは、Mesh Proxy オブジェクトからのデータを使用して、シミュレーション時に各アクター インスタンスに使用するエンベロープのデフォーメーション、マテリアル、テクスチャを決定します。
このシェーダを使用して、OpenGL 表示モードでインスタンス化されたアクタのエンベロープを表示するには
ビューポートまたは[オブジェクト](Object)ビューで、[リアルタイム シェーダ](Realtime Shaders) [OpenGL]表示モードに切り替えます。
シミュレーション ポイント クラウドを選択し、[シミュレーション後](Post-Simulation)領域でその シェイプ インスタンスのスキニング ICE ツリーを開きます。
Set Shape Instance Bones(シェイプ インスタンス ボーンの設定)コンパウンドで[有効](Enable)オプションを選択します。これにより、Actor Copies メッシュのビューポート表示を一時的にオーバーライドするため、GLSL Actor Envelope シェーダによるシェーディングとして、このビューに Mesh Proxy オブジェクトのみが表示されます。
OpenGL 以外の表示では、Mesh Proxy はインスタンス化されますが、GLSL アクター エンベロープ シェーダがサポートされていないため、正しいデフォーメーション、マテリアル、テクスチャが適用されません。