CrowdFX のアクター(ポリゴンメッシュ)はソースのMaterialsアトリビュートを引き継ぐように設定されています。 このMaterialアトリビュートは『新しい歩行の群衆』を実行した時にソースに付けられた「Set_ICE_Materials(ICEツリー」」によって設定されています。
このMaterialsアトリビュートが設定されていなかったり間違っていると、アクターでマテリアルを正確に再現する事ができません。
※一部のマテリアルが再現されない:
上の図ではジャケットの色が正しく再現されていません。
この時にソースのメッシュを詳しく見ると、ジャケットの部分はクラスターされずグローバルマテリアルになっています。 「Set_ICE_Materials」はクラスターのマテリアルを取得する構造になっていますので、クラスタ化されていないジャケットのマテリアルは取得できません。 下記の手順でMaterialアトリビュートを修正する必要があります。
![]() |
![]() |
ソースのメッシュの内ジャケットのポリゴンをクラスタ化し(ここでは”Man_M.Mesh.polymsh.cls.Polygon”)、ローカルマテリアル(ここでは”Jacket”)を持たせます。
- ソースメッシュをICEツリーエディタに読み込み、「Set_ICE_Materials」を開きます。
- このツリーに “Man_M.Mesh.polymsh.cls.Polygon” を読み込みます。
- 更に プリセットマネージャー > Topology > Set Material Attributes From Cluster を読み込み、[Cluster Name]ポートに先ほどの”Man_M.Mesh.polymsh.cls.Polygon”の[Out Name]を渡します。
- Set Material Attributes From Cluster を開き、必要事項を入力します。
- 上段のテキストボックスには”Man_M.Mesh.polymsh.cls.Polygon” のマテリアルが所属するマテリアルライブラリのフルパス
- 下段のテキストボックスには “Man_M.Mesh.polymsh.cls.Polygon” のマテリアル名
- Set Material Attributes From Cluster の [Execute] を “Set_ICE_Materials” に渡します。
これでジャケットのマテリアルも Materialアトリビュートに登録されましたので、開始フレームに戻るとジャケットの色も正しく再現されます。
※マテリアルが全く再現されない:
おそらく作業の途中でソースの「「Set_ICE_Materials」を削除してしまったのでしょう。 ソースのオブジェクトに「Set_ICE_Materials」に相当するICEツリーを組んでやる必要があります。
- ソースメッシュをICEツリーエディタに読み込み、作成 > ICE Tree を実行してもう一つEツリーを用意します。
- このオブジェクトには既に「Set_Mesh_Proxy」が用意されています。 これはアクターが持つノードで、これによってアクターのメッシュが形成されすすので、新たに作ったICEノードはSet_Mesh_Proxyより先に実行されるように、エクスプローラで順番を調整する必要があります。
⇒ - このICEツリーに、全てのポリゴンクラスタについて「一部のマテリアルが正しく再現されない場合」の 2~6 を行います。
これでMaterialアトリビュートが構築されましたので、開始フレームに戻るとジャケットの色も正しく再現されます。
この段階でも色が再現できない場合は、Materialアトリビュートのリフレッシュが上手くできていません。 エクスプローラで ICE Tree を Animationコンストラクションに移動させて強制的にリフレッシュし、その後再び「Set_ICE_Materials」の下に戻します。
※MQ+ Create Material-Attribute from Cluster:
「一部のマテリアルが再現されない」「マテリアルが全く再現されない」の両方のケースを修正するバッチを用意しました。 宜しければ『 ローカルマテリアルからMaterialアトリビュートを作成』をご参照下さい。
Materialアトリビュートがリフレッシュされない場合はエクスプローラで MQ_MaterialFromCluster の場所を一度移動してリフレッシュして下さい。