このドキュメントでは、作成したパラメトリックなコスチューム アセットの品質を向上させるための追加設定について説明します。
ボディからのスキン ウェイトを転送する際の制限により、脇や大腿部などの部分でティアリングなど、見た目が奇妙なアーティファクトが発生することがあります。 アニメーション シーケンス中にこれらが表示される場合は、スキニング操作を制御するマップを事前にペイントする必要があります。 衣服にマップをペイントすることができます。これにより、リラックス、プルーン、ハンマー、クランプ、正規化の操作を制御できます。
ウェイトマップをペイントする
[クロス アセット]を右クリックして [Open in Dataflow Editor (データフロー エディタで開く)] を選択し、クロス アセットを開きます。 ダブルクリックはしないでください。
コスチューム アセットを構築するで選択したパスと同じパスを使用します。
パス A モデルは FBX であり、レンダリング メッシュのみがあります。 既存の MetaHuman の服装をパラメトリックに変換する場合は、このパスを選択します。
パス B モデルは Marvelous Designer または Clo からエクスポートした USD で、シミュレーション メッシュとレンダリング メッシュが含まれています。
パス C モデルはレンダリング メッシュであり、ユーザーは手動でシミュレーション メッシュを作成しました。
パス A
StaticMeshImport ノードをクリックしてから、画面上部にある [Paint Weight Map (ウェイトマップをペイント)] ボタンをクリックします。
これにより、そのメッシュにマップが作成されます。 ただし、コンストラクション ビューポートには何も表示されません。 マップを表示してペイントするには、次の手順を実行します。
レンダリング メッシュのみにペイントするには、[Node Details (ノードの詳細)] パネルで [Vertex Group (頂点グループ)] を [RenderVertices (頂点をレンダリング)] に変更します。
ウェイト マップ[Paint Weight Map (ウェイトマップをペイントする)] をダブルクリックすると、コンストラクション ビューポートに表示されます。 表示されない場合は、[Render (レンダリング)] が選択されているかどうかを確認します。
わかりやすいマップ名を付けます。 この例では、このマップは「relax」を制御する
LOD_0メッシュ用であるため、LOD0_relaxapと名付けました。選択した操作で影響を与えたい領域を白でペイントし、それ以外を黒のままにします。 完了したら [Accept (承諾)] をクリックします。
これでスタティック メッシュにマップをアタッチする準備が整いました Dataflow グラフで右クリックしてSetSkinningSelectionと入力し、表示されたパネルで選択します。
PaintWeightMap の Collection (出力) ピンを SetSkinningSelection ノードの Collection (入力) ピンに接続します。
PaintWeightMap の Attribute Key (属性ピン) ピンを、SetSkinningSelection ノードの Selection Map (選択マップ) ピンに接続します。
SetSkinningSelection ノードの Collection (出力) ピンを、TransferSkinWeights ノードの Collection (入力) ピンに接続します。
SetSkinningSelection ノードをクリックし、[Node Details (ノードの詳細)] パネルで [Vertex Group] を RenderVertices に変更します。
[Correction Type (コレクション型)] を使用したい型に設定します。
[Selection Map (選択マップ)] は空白にしておくことができます。これは、すでに Paint Weight Map ノードに Attribute Key および Selection Map の接続を介して接続されているためです。
同じマップを使用したい場合は、同じものを複数の SetSkinningSelection ノードに接続することもできます。
マップを作成したいすべてのアセットに対して、この手順を繰り返します。 LOD を手動で作成する場合は、それらのペイント マップも必要になります。
完了したら、クロス アセットを再評価し、保存する必要があります。 次に、コスチューム アセットを開き (すでに作成している場合)、再評価してから保存します。
手動で作成した LODS アセットの例を以下に示します。
パス B
USDImport ノードをクリックし、画面上部の [Paint Weight Map (ウェイトマップをペイントする)] ボタンを選択します。
シミュレーション メッシュをペイントするには、[Node Details (ノード詳細)] パネルで、[Vertex Group (頂点グループ)] を [SimVertices3d] に変更します。
ウェイト マップ[Paint Weight Map (ウェイトマップをペイントする)] をダブルクリックすると、コンストラクション ビューポートに表示されます。 表示されない場合は、3dSim が選択されているかどうかを確認します。
わかりやすい名前を付けます。 この例では、このマップは「relax」を制御する
LOD_0メッシュ用であるため、LOD0_relaxapと名付けました。選択した操作の影響を受ける領域を白色でペイントし、その他の領域は黒色のままにします。 完了したら [Accept (承諾)] をクリックします。
これでスタティック メッシュにマップをアタッチする準備が整いました Dataflow グラフで右クリックして
SetSkinningSelectionと入力し、表示されたパネルで選択します。PaintWeightMap ノードの Collection (出力) ピンを SetSkinningSelection ノードの Collection (入力) ピンに接続します。
[PaintWeightMap] の [Attribute Key (属性キー)] ピンを SetSkinning Selection ノードの [Selection Map (選択マップ)] ピンに接続します。
SetSkinningSelection ノードの Collection (出力) ピンを、TransferSkinWeights ノードの Collection (入力) ピンに接続します。
SetSkinningSelection ノードをクリックし、[Node Details (ノードの詳細)] パネルで、 [Vertex Group] を SimVertices3D に変更します。
[Correction Type] に使用したいものを設定します。
[Selection Map] は空白のままにしておくことができます。これは、すでに Paint Weight Map ノードに Attribute Key や Selection Map 接続を介して接続されているためです。
同じマップを使用したい場合は、同じものを複数の SetSkinningSelection ノードに接続することもできます。
マップを作成したいすべてのアセットに対して、この手順を繰り返します。 LOD を手動で作成する場合は、それらのペイント マップも必要になります。
完了したら、クロス アセットを再評価し、保存する必要があります。 次に、コスチューム アセットを開き (すでに作成している場合)、再評価してから保存します。
パス C
パス B をたどりますが、USDImport ノードにマップを作成するのではなく、MergeClothCollections ノードにマップを作成します。
追加のオプション設定
その他に、次のようなオプション設定があります。
UV のサイズ変更 繰り返しテクスチャがある場合に、UV のサイズ変更を設定できます。
カスタム領域のサイズ変更 コスチュームの特定の部分が、ボディに合わせてワープするのではなく均一にスケールされるように、サイズ変更を制御できます。 これは、サーフェスの硬いのオブジェクトや、ボディに合わせてワープさせたくない衣服のその他の部分に便利です。