When you can't import, or your imported mesh looks weird
For a guide on exporting and importing meshes, check WKit Blender Plugin: Import/Export
If you don't know how to begin editing, check Refitting: Mesh sculpting techniques or R&R: Refitting (step by step)
We need to troubleshoot your import.
Yes: The problem is somewhere else, the mesh import works fine.
No: #is-there-an-error-message-in-the-console
Yes: Here's where your problem is. Make the error message go away by checking the rest of this guide.
No: #do-you-have-extra-shapekeys
In Blender, check your shapekey section. It should look like the green box (or be empty).
If it does not, you need to apply any extra shapekeys, because Wolvenkit will ignore them on reimport. Expand the box below, or check here to find out how.
You get an error message like this:
Message: One or more Geometry in provided GLTF doesn't contain Tangents data. Tangents must be included within glTF files.
Quick, easy, recommended: the plugin will tell you exactly what's broken and how to fix it. Download it here.
Alternatively, you can check by hand:
The neutral bone is created by the glb export plugin when there are vertex groups without a parent bone. WolvenKit will not let you import if there is a mismatch.
Your armature in Blender needs to have a bone for every vertex group in the submesh, and there must not be vertices with no vertex group assigned.
You then need to import over an already-existing .mesh file which supports all those bones.
The following two scripts help you finding and/or fixing the problem. Switch to the Blender Scripting perspective and create a new, blank text file. Then, toggle the Blender system console to see their output (Blender: Window -> Toggle System Console)
Missing bones
Optional: To find which bones you're missing, you can use this script, which will print their names to console. You can also skip this step and try the troubleshooting below.
Vertices without weights
You can use the Wolvenkit Blender IO Suite's #mesh-tools to Group Ungroup Verts
— if you're lucky, that will solve the problem.
You can find a Python script on mana's github that will drop unused bones and vertex groups. Run it in Blender's Scripting Perspective with your armature
You can import the mesh with Noesis, which will not do any of these checks. For that, you need to import/export via .fbx.
Since noesis expects differently-named submeshes under the root armature, you'll want to export the mesh via noesis, join your changed meshes on those under Noesis_Root, and import it again. Caution: You'll have to rotate your armature in this case.
While this will get your mesh into the game, the missing bones mean that parts of it won't move the way you expect it!
The armature from the following mesh has a lot of bones and will often resolve most of your issues:
To create more submeshes, you can either
create more submeshes with the correct naming in Blender, e.g. submesh_01_LOD_1
, submesh_02_LOD_1
If you end up with missing bones,
It's time to play 3d puzzle and assemble bones from multiple sources. Unfortunately, there is no simple solution for this yet. You need to
find the bones that your armature is missing in other meshes
transfer them into your import target mesh (guide on xbae's page)
export all the extra meshes into Blender
merge their rigs, which you should do with the linked Python script
and finally reimport everything back into Cyberpunk.
WolvenKit will not import a mesh that has any kind of issues. Those include, but are not limited to:
non-flat faces
zero faces/edges
loose vertices/edges
There is no guarantee that any of the steps below will actually solve your problem.
In Edit Mode, you can find a few commands in the Mesh -> Clean Up menu:
Delete Loose
Split Non-Planar Faces
Split Concave Faces
Merge By Distance
If you select your whole mesh, Merge By Distance will merge the individual parts, obliterating the seams. To avoid that, make sure to do them one after another: - Select a vertex/edge/face in Edit Mode - hold down Ctrl Num+ to select everything connected - use Merge By Distance before proceeding to the next part of your mesh
Your last option is the 3d print tool to (hopefully) find out what is wrong with your mesh.
Fortunately, the tool is free, easy-to-use and already included in your Blender.
If you don't have a 3d print entry in the tools of your 3d viewport, you might need to enable the plugin in Blender's settings first.
Zero Edges: Those are bad, fix them (click on them, then press X and just delete them)
Non-Flat Faces: Those are even worse, as they can make the game crash. You need to split them up until they are flat, or investigate the surrounding edges/vertices to see what's going wrong here.
Zero Faces: Only fix if you have <100 of them — the tool doesn't always identify them correctly (the mesh analyzed above was h0_000_pwa_c__basehead
, which is absolutely fine).
make sure that you have exactly one UV map
check Face Orientation — most materials won't show backfaces (red). You can import submeshes with the suffix _doubled
to make WolvenKit generate them for you, like it does with hair.
When saving your mesh, check the console for errors. In version >= 8.9.0, a basic material validation is taking place. If you don't see any warnings, make sure that the resource paths in your mesh are correct and that you aren't loading invisible textures.
Do they show up in the Wolvenkit preview?
No: you probably forgot to select them when exporting from Blender. Make sure that you get them all into Wolvenkit.
Yes: There's either an issue with your material assignments or with your chunkmasks. Refer to the corresponding guides to learn how you can debug this.
Some meshes require an entAnimatedComponent along with the garment's component. Check here for details.
For example, you have moved something, but the change doesn't show in the game: this most often happens when you change things around in edit mode, since they are stored as object properties rather than applied immediately.
Select the object in edit mode
Press Ctrl+A
Select "All Transforms" to apply all transformations.
E.g. you've changed a shape, but now everything moves at an offset.
As stated in the importing/exporting guide, it is easy to fuck up the mesh's properties, and this is most likely what happened. The easiest way to "fix" this is to apply your shape deformation to the original object.
See #strategy-2-replacing-the-vertices on the Porting 3d objects to Cyberpunk page
If you have added the item via ArchiveXL or swapped out an in-game item with something that belongs in a different slot (e.g. a jacket on the head slot), you might have to fix the corresponding entity file.
Check the renderMask
attribute inside heder / renderChunkInfos / index
. For shadow meshes, there shouldn't be anything but MCF_RenderInShadows
.
The textures are most likely embedded. Here's how you can force your material to pull in external textures instead:
This section will tell you how to delete garment support. If you don't want that (you shouldn't! It's cool!), check the next section.
To check if it's this, equip only the edited item. If it breaks as soon as you put on another clothing item with garment supports, then the solution below applies.
Check the component's id in the mesh .ent
or .app
appearance's components
array:
If any given ID is equipped twice, it can break garment support in the way you're observing.
As of January 03 2023, we don't know how these are generated and can't tech the problem away in Wolvenkit. Your only choice here is to manually randomize your ID in a text editor by switching out single digits. Remember that the resulting ID needs to be an even number!
Check your export settings and make sure that you have the correct box checked upon export:
If the error persists, check that each of your submeshes has an UV map: If not, you have to create one (and probably UV unwrap your mesh).
Try using the Netrunner body as a base for import. You can use Wolvenkit's feature for this.
Try the import setting
Import the original object into Blender, without any of your changes. If you have to, reexport the working file from Wolvenkit.
On the .glb import setting, check the box.
Make sure to with garment support enabled. If that doesn't do the trick, you can try re-creating the garment support shapekeys in Blender.