シミュレーション設定を行うには、まずプロキシ デフォーマーを設定する必要があります。 次に、コリジョンをシミュレートし、シミュレーションの質を制御するソルバを設定します。
プロキシ デフォーマーを設定する
このセクションでは、Proxy Deformer (プロキシ デフォーマー) を設定します。 このデフォーマーは、レンダリング メッシュを変形するためシミュレーション メッシュを使用します。 また、ジャケットとホルスターのための 2 つの選択を設定し、シミュレーション中に互いに干渉しないようにします。
Collection ピンからドラッグし、[WeightMapToSelection] を検索して選択してから、MaxDistance Weight Map の Name ピンを WeightMapToSelection ノードの Weight Map Name ピンに接続します。 WeightmapToSelection ノードは、ペイントされたウェイト マップを、プロキシ デフォーマーで処理可能な、選択された頂点に変換します。
Collection ピンからドラッグし、[Cloth (クロス)] カテゴリの下の [Selection (選択項目)] を検索して選択します。 ノードの名前を「Selection_Holster」にします。 [Node Details (ノード詳細)] パネルに移動して [Name (名前)] を「HolsterFaces」に設定し、[Group (グループ)] を「SimFaces」に設定します。
Cloth Mesh Selection (クロスメッシュ選択) ツールが有効になりました。
Cloth Mesh Selection ツールのインターフェースには以下のセクションが含まれます。
セクション 説明 1. Operations (演算):
コレクションから選択内容をインポートしたり、プライマリとセカンダリの選択内容を切り替えたりできます。
2. Selection tools (選択ツール):
Flood Selection (選択内容をフラッド):現在の選択内容からメッシュ全体を選択します。 Grow Selection (選択内容を拡大):現在のメッシュ内の選択エリアを拡大します。 Shrink Selection (選択内容を縮小):現在のメッシュ内の選択エリアを縮小します。
3. Visualization (ビジュアライゼーション):
クロス コレクションの頂点とエッジを表示します。
4. Selection Actions (選択アクション):
Invert Selection (選択を反転):現在の選択内容が反転されます。 Select All (すべて選択):コレクション内のすべてのメッシュを選択します。
5. Selection Filter (選択フィルタ):
メッシュ頂点とポリゴンの選択を切り替えることができます。
6. Additional Selection Options, Ortho Viewport Behavior, Advanced (追加選択オプション、垂直投影ビューポートの動作、詳細設定):
Ignore Occlusion (オクルージョンを無視する) やHit Back Faces (背面にヒット) などの追加の選択オプションを含みます。
7. Accept (同意) または Cancel (キャンセル)
選択を同意またはキャンセルします。
クリック & ドラッグし、クロス コレクションでホルスターを選択します。 [Accept] をクリックします。
Collection ピンからドラッグし、[Cloth (クロス)] カテゴリの下の [Selection (選択項目)] を検索して選択します。 ノードの名前を「Selection_Jacket」にします。 [Node Details] パネルに移動して [Name] を「JacketFaces」に設定し、[Group] を「SimFaces」に設定します。
クロス コレクションで、分離したいジャケットの面を選択します。 [Accept] をクリックします。
Collection ピンからドラッグし、[ProxyDeformer] を検索して選択します。 このノードは服装コレクションにシミュレーション中に変形する方法を伝えます。
WeightMapSelection ノードの Selection Name ピンを Sim Vertex Selection ピンに接続します。
Selection_Holster の Name ピンを Selection Filter Set 0 ピンに接続します。
ProxyDeformer ノードで右クリックして、[Add Option Pin (オプション ピンを追加)] を選択します。 Selection_Jacket の Name ピンを Selection Filter Set 1 ピンに接続します。
シミュレーション セルフコリジョンを設定する
このセクションでは、シミュレーションのセルフコリジョンを設定します。 ベルト通し、ベルト、ジャケットのコリジョン レイヤーを作成し、シミュレーション中に干渉が起きないようにします。 さらに、厚さと摩擦のウェイト マップを作成し、キネマティック コリジョンを設定します。
新しい Selection ノードを作成し、「Selection_BeltLoops」と名付けます。
[Node Details] パネルに移動して [Name] を「BeltLoops」に設定し、[Group] を「SimFaces」に設定します。
クロス コレクションでベルト通しを選択します。
Collection ピンからドラッグし、[SelectionToIntMap] を検索して選択します。 ノードの名前を「SelectionToIntMap_BeltLoops」にして、Name ピンを Selection Name ピンに接続します。 SelectionToIntMap ノードは、選択内容を実行する対象のシミュレーション レイヤーを設定します。 シミュレーションは各レイヤーを順に実行します。ただし、最下位レイヤー (レイヤー 0) を最初に実行します。
新しい Selection ノードを作成し、「Selection_Belt」と名付けます。
[Node Details] パネルに移動して [Name] を「Belt」に設定し、[Group (グループ)] を「SimFaces」に設定します。
クロス コレクションでベルトの面を選択します。
Collection ピンからドラッグし、[SelectionToIntMap] を検索して選択します。ノードの名前を「SelectionToIntMap_Belt」にして、Name ピンを Selection Name ピンに接続します。
新しい Selection ノードを作成し、「Selection_JacketCol」と名付けます。
[Node Details] パネルに移動して [Name] を「JacketUnderBelt」に設定し、[Group] を「SimFaces」に設定します。
クロス コレクションでジャケットの面を選択します。
Collection ピンからドラッグし、[SelectionToIntMap] を検索して選択します。ノードの名前を「SelectionToIntMap_Jacket」にして、Name ピンを Selection Name ピンに接続します。
SelectionToIntMap_BeltLoops の Int Map Name ピンを SelectionToIntMap_Belt の Int Map Name ピンに接続します。SelectionToIntMap_Belt の Int Map Name ピンを SelectionToIntMap_Jacket の Int Map Name ピンに接続します。
WeightMap ノードを作成し、「AddWeightMap_Thickness」と名付けます。[Name] を「Thickness」に設定します。このクロス コレクションをペイントして、シミュレーション中のクロスの厚さを表現します。
WeightMap ノードを作成し、「AddWeightMap_Friction」と名付けます。[Name] を「Friction」に設定します。このクロス コレクションをペイントしてシミュレーション中の摩擦を表現します。
セルフ コリジョン ノードで使用されるキネマティック コリジョンに対する選択項目をここで作成します。
StaticMeshImport ノードを追加し、「StaticMeshImport_Collider」と名付けます。[Static Mesh (スタティックメッシュ)] ドロップダウンをクリックして、該当するスタティックメッシュを選択します。
Collection ピンからドラッグし、[TransferSkinWeights] を検索して選択します。ノードの名前を「TransferSkinWeights_Collider」にします。
Collection ピンからドラッグし、[Selection] を検索して選択します。
Selection ノードの Collection ピンからドラッグし、[MergeClothCollections] を検索して選択します。
ノードの名前を「MergeClothCollections_Kinematic」にします。
MergeClothCollections_Kinematic ノードを右クリックして、[Add Option Pin] を選択します。
AddWeightMap_Friction ノードの Collection ピンを MergeClothCollections_Kinematic ノードの Collection 1 ピンに接続します。
MergeClothCollections_Kinematic ノードの Collection ピンからドラッグし、[SimulationSelfCollisionConfig] を検索して選択します。
SelectionToIntMap_Jacket ノードの Int Map Name ピンを SimulationSelfCollisionConfig の Self Collision Layers ピンに接続します。
Selection ノードの Name ピンを SimulationSelfCollisionConfig の Self Collision Enabled Kinematic Faces ピンに接続します。
AddWeightMap_Friction ノードの Name ピンを SimulationSelfCollisionConfig の Self Collision Kinematic Collider Friction Weighted ピンに接続します。
AddWeightMap_Thickness ノードの Name ピンを SimulationSelfCollisionConfig の Self Collision Thickness Weighted ピンに接続します。
シミュレーション ソルバと服装アセット ターミナルを設定する
このセクションでは、シミュレーションの品質を制御する、シミュレーション ソルバを設定します。 さらに、クロス アセット ターミナルを作成し、アセットを完成させます。このノードはデータフロー グラフ全体を評価し、その結果をコンテンツ ブラウザでクロス アセットに設定します。
SimulationSelfCollisionConfig ノードの Collection ピンからドラッグし、[SimulationSolverConfig] を検索して選択します。
Num Iterations を 2 に設定します。
Max Num Iterations を 2 に設定します。
Num Substeps を 13 に設定します。
Num Self Collision を有効にして、それを 2 に設定します。
SimulationSolverConfig ノードの Collection ピンからドラッグし、[ClothAssetTerminal] を検索して選択します。これでビューポートにクロス コレクションが表示されます。
[Preview Scene Details (プレビュー シーン詳細)] パネルをクリックし、シミュレーションをプレビューするスケルタルメッシュ アセットとアニメーション アセットを設定します。 この例では、プレビュー対象として、前に歩行するアニメーションを選択しています。