Garment support from scratch
Adding garment support to a mesh that doesn't have it
Last updated
Adding garment support to a mesh that doesn't have it
Last updated
Created on: 29. 12. 2023 by manavortex Last documented update: Nov 10 by and manavortex
This guide will teach you how to add garment support to a mesh that doesn't have any.
To learn what garment support is, check Garment Support: How does it work?
For general Blender editing tips, check Blender: Getting Started
You should know what garment support does, because it won't be explained here.
This guide assumes that you know your way around in WolvenKit. If you don't and you want to mess with this, kudos — I salute your frustration tolerance. In this case, the wiki's search function will be your new best friend.
>= 8.15 | You can't make mods without Wolvenkit | |
>= 4.2 | 3d editing software | |
>= 1.6.0 (download tags here) | The Wolvenkit Blender Addon. You can't import/export to Blender without it. |
As a preparation for our garment support, we need a base that we'll shrinkwrap to. For this guide, we'll be using the full player body in a single mesh.
You need the following files:
Import all those meshes to Blender, then join them all into a single mesh:
In the viewport, click anywhere to deselect everything
Press A
to select everything visible again
Shift-click on something (e.g. the head) to deselect it
Shift-click again to re-select it (you need a most recent selection)
Press Ctrl+J
to join all those meshes together
Optional: Clean up
In the outliner on the right, delete all empty collections
Double-click on your mesh and rename it to something, e.g. body
You should be looking at something like this:
This is the base that your items will shrink to, thus not-clipping. Neat, isn't it?
You only need this if you're layering garment support — for example, shrinking a custom-made decal under a jacket. Don't do this with the base body, it will shrink on its own to stay underneath the clothes!
If you're using a custom mesh as the base, you need two prerequisites:
Join everything, so that you have only one mesh. This mesh must cover everything that yours can potentially shrink to - if you fit the Netrunnner suit without the head mesh as part of the body, the collar will clip into the neck when you're wearing a coat
You need to activate garment support on the mesh. You do this by switching to the Data tab and setting its Value
to 1:
Import a mesh that needs garment support. In Object mode, select it by clicking on it so that it has a yellow outline like the body in the picture above, and switch to the Data
tab on the right:
The Shape Keys
dropdown should be empty. (Otherwise, hit the -
button until it is).
Click on the +
button to create a shape key with the name Basis
. This is the garment's original shape and will tell Cyberpunk how it looks when it's not squished.
Repeat this process for every submesh (submesh_01_LOD_1
and submesh_02_LOD_1
on the screenshot above)
Switch to the Modifiers
tab (the blue wrench icon, it's active in the first screenshot)
Add a shrinkwrap
modifier
Target it to the mesh from the previous step (e.g. body
):
optional: Add a small offset
(e.g. 0.001
) to make it not-clip. If the mesh you're shrinking to has garment support and you haven't enabled it, this isn't necessary.
You will now see that the garment has shrunk down to the body's dimensions — this is how the game avoids clipping.
Apply the modifier as shapekey:
You will now see that the garment un-shrinks itself: that is because the shapekey isn't active.
Switch to the Data
tab again (the green triangle). There is a new shapekey now; it's called Shrinkwrap
.
If you want to see it in action, set its Value
to 1.
Rename it to GarmentSupport
(capital G and S, no spaces — double-click on the name):
That's it, your mesh has now garment support. Rinse and repeat the process with the other submeshes, then export everything back.
You still need to use component name prefixes for garmentSupport to become active. If that wasn't it, check your shapekey names for typos or trailing spaces.
Try re-doing the shrinkwrap, but with a higher offset instead. Try something like 0.002 or so, whatever works for you.