This document provides additional setup which may increase the quality of your parametric outfit asset.
Due to the limitations of skin weight transfer from the body, you may occasionally encounter strange looking artifacts, such as tearing in areas like armpits and upper thigh regions. If you notice these during animation sequences, this means you need to pre-paint maps that control skinning operations. You can paint maps on your garment which can control the following operations: Relax, Prune, Hammer, Clamp, and Normalize.
Painting Weight Maps
Open the cloth asset by right-clicking on it and choosing Open in Dataflow Editor. Do not double-click on it.
Use the same path that you chose from Building an Outfit Asset:
Path A: Your model is an FBX, and only has a render mesh. If you are converting your existing MetaHuman clothing to be parametric, choose this path.
Path B: Your model is a USD exported from Marvelous Designer or Clo, which has a sim mesh and render mesh.
Path C: Your model is a render mesh and you have created a sim mesh by hand.
Path A
Click on your StaticMeshImport node and then click the Paint Weight Map button up at the top of the screen.
This will create a map on that mesh. However, you will not see anything in the Construction Viewport. In order to view and paint the map, follow these steps:
To paint on a render mesh only, in the Node Details panel, change the Vertex Group to RenderVertices.
Double-click Paint Weight Map and it should appear in the Construction Viewport. If it doesn’t, check to see if Render is selected.
Name the map something informative. In this example, the map is for an
LOD_0mesh which controls “relax,” so we named itLOD0_relaxMap.Paint the areas you would want affected by your operation of choice white, and leave everything else black. When you are done, click Accept.
Now, the static mesh is ready to have a map attached. Right-click in the Dataflow graph, type SetSkinningSelection, and select it when it pops up.
Connect the Collection (out) pin of the PaintWeightMap to the Collection (in) pin of the SetSkinningSelection node.
Connect the Attribute Key pin on PaintWeightMap to the Selection Map pin on the SetSkinningSelection node.
Connect the Collection (out) pin on the SetSkinningSelection node to the Collection (in) pin on the TransferSkinWeights node.
Click on the SetSkinningSelection node and in the Node Details panel, and change Vertex Group to RenderVertices.
Set Correction Type to whichever type you want to use.
You can leave the Selection Map blank, as it is connected to the PaintWeightMap node already via the Attribute Key and Selection Map connection.
You can connect the same map to more than one SetSkinningSelection node if you wish to use the same map.
Now repeat for every asset you want to make maps for. If you hand made LODS, you need to paint maps for those as well.
Once you’ve done this, you must re-evaluate your cloth asset and save it. Then, open your outfit asset (if you’ve already made one), re-evaluate, and save that too.
Here is an example of an asset with handmade LODS:
Path B
Click on the USDImport node and then select the Paint Weight Map button up at the top of the screen.
To paint on the sim mesh, in the Node Details panel, change the Vertex Group to SimVertices3d.
Double-click Paint Weight Map and it should appear in the Construction Viewport. If it doesn’t, check to see if 3dSim is selected.
Name it something informative. In this example, the map is for an
LOD_0mesh which controls “relax,” so we named itLOD0_relaxMap.Paint the areas you would want affected by your operation of choice in white, and leave everything else black. When you are done, click Accept.
Now, the static mesh is ready to have a map attached. Right-click in the Dataflow graph, type
SetSkinningSelection, and select it when it pops up.Connect the Collection (out) pin of the PaintWeightMap node to the Collection (in) pin of the SetSkinningSelection node.
Connect the Attribute Key pin on PaintWeightMap to the Selection Map pin on the SetSkinningSelection node.
Connect the Collection (out) pin on the SetSkinningSelection node to the Collection (in) pin on the TransferSkinWeights node.
Click on the SetSkinningSelection node and in the Node Details panel. Change Vertex Group to SimVertices3D.
Set Correction Type to whatever you want to use.
You can leave the Selection Map blank, as it is connected to the PaintWeightMap node already via the Attribute Key or Selection Map connection.
You can connect the same map to more than one SetSkinningSelection node if you wish to use the same map.
Now repeat for every asset you want to make maps for. If you hand made LODS, you need to paint maps for those as well.
Once you’ve done this, you must re-evaluate your cloth asset and save it. Then, open your outfit asset (if you’ve already made one), re-evaluate, and save that too.
Path C
Follow Path B, but instead of creating maps on the USDImport node, create them on the MergeClothCollections node:
Additional Optional Setups
Other optional setups include:
Resize UVs: Enables you to set up resizing of UVs where you have a repeating texture.
Custom Region Resizing: Allows you to control Resizing where certain portions of your outfit will scale uniformly as opposed to warping with the body. This is useful for hard-surface objects or other portions of a garment you do not wish to warp with the body.