🚗Boe6's vehicles: Manually Importing Meshes to Wkit

Manual Import

Importing the first .mesh

In Wkit, open the .app file and navigate to the default appearance. Open the components and find “body_01” and expand it. Look for the “mesh” value, and add it to your project.

If you used the blender script when exporting to blender, this file will already be in your project explorer.

Example:

Use the export tool as we did with the proxy mesh to convert it to a .glb file.

Import this body.glb file into the blender project.

Prepare your custom body mesh and ensure the replacement is one object. Join relevant objects together if needed.

Make sure your body mesh is less than 65,635 vertices. If any .glb file has more than this, the import into the game will fail.

You can check the face count in the top left of your blender window:

This number counts all visible objects in blender. Turning off an object’s visibility removes it from the count

As a general rule, keep the count low if you can to preserve performance in-game. Higher polygon count will increase quality, but decrease game performance.

You can use the decimate modifier (or other methods) as one method to reduce the face count if needed.

Example adding decimate modifier:

For simplicity, we’ll join all the parts of the body into one object for exporting. We can split them as submeshes later, when we want to indicate separate materials within a mesh.

With the body object selected, go to File > Export > Export Selection to GLB for Cyberpunk:

Save it to a new folder for your project’s .glb files.

Copy the .glb file into the folder with the original exported body mesh.

Copy the original file’s name, delete it, and rename your new part with the old file’s name.

Open the import tool in wkit, find the correct body .glb and import it into the game.

Select the updated .mesh file in the Project Explorer, and it will open in the File Information window. It should show your new mesh. Example:

Rename your new .mesh file to a project-specific name, and move it to a custom folder. Example:

boe6\mini_cooper\meshes\boe6_mini_cooper_body.mesh

Update your .app file with the path to the new body file. You’ll need to update it in 2 places:

  • RDTDataViewModel > appearances > 0 > components > body_01 > mesh

  • RDTDataViewModel > appearances > 0 > components > AppearanceVisualController > appearanceDependancy > body_01 > mesh

Test the mod in-game. It should look very wrong since we only replaced one mesh. Example:

Optionally, we can make all other visible components invisible while we’re modeling.

Easiest way to mark components as invisible is to break the entPhysicalMeshComponent appearances path.

  • RDTDataViewModel > appearances > 0 > components > entMeshComponent/entPhysicalMeshComponent > meshname > mesh

I do this by renaming the file with an added “-disabled” in the name. This breaks the file path, and notes that it is disabled for reference later. example:

disregard "entVisualController". See note below

Note: This method used to use the entVisualController to disable visibility. Thanks to TheSpliffz who corrected this method to the physical component path.

You may receive a warning in the log when saving the .mesh if you use this method, be aware:

Save and test in-game. The renamed component should now not render in-game. Example:

Note that this only removes the visual mesh. The interaction UI & function still exist.

Continue to change components until all except the modded body and wheels remain. Start with the major parts, bumpers, doors, etc. Test in-game frequently. Only disable parts that render in-game.

Once you have disabled all the other components, you can see your model clearly and notice any initial problems. Expect the textures to be broken. Opposite sides may not render as we still need to add an interior. Example:

Notice the far side of the vehicle does not render. This is due to the mesh's normals facing outwards.

Some model issues may show themselves at this point. Check out the “Fixing Body Glitches” section of this document below.

You can use the body_01 instructions for creating most non-moving parts. (engine, trim, chassis, etc)

Repeat the above instructions as many times as needed.

Adding Glass meshes

For the non-moving windows, we’ll start by enabling the vanilla mesh by removing the “-disabled” tag. Then we can add the mesh to our project. Move/rename your files as appropriate. Example:

Moving windows, such as the front door windows, can be created after the "Rigging" section of this guide.

boe6\mini_cooper\meshes\boe6_mini_cooper_window_f.mesh

Update the .app file with both .mesh paths for the component.

Export it to .glb, replace it with your model’s window, and import it back.

Save and Test.

Repeat for each non-moving window.

  • Similar materials can be copy/pasted as meshes, and then import/exported, and entered into the .app file. This is instead of importing from the original car that is being mirrored. This saves time on moving files.

Save and test.

Adding new components to your .app file

To add a new component instead of replacing a default one, you can duplicate the entVisualControllerDependency of the most similar component by right-clicking and selecting “Duplicate Item in Array/Buffer”. Example:

Edit the new component’s “componentName”, here I use “body_02”, as it is for exterior trim bodywork.

Edit the “mesh” value to the correct new .mesh file. Example:

boe6\mini_cooper\meshes\boe6_mini_cooper_body_trim.mesh

You also need to duplicate the entPhysicalMeshComponent of the part you are copying. Rename it with the “name” value to the one you used earlier, (body_02). Set the “mesh” value to the same mesh path. Example:

Common Mesh Bugs

Read through these to see if you can address these issues before moving on to the next page.

Inverted Mesh Normals

If your model is rendering the wrong side of the model, (outside parts are only rendering looking from inside to out), then you’ll need to flip the normals in blender. (edit mode > normals > flip)

Broken example:

Wrong Shadow Angles

If your model is not getting light correctly, despite the normals being flipped, it may be due to the split normals and regular normals being opposite.

This causes render issues where texture color and layers show extra dark, and in blender Edit Mode if you enable displaying normals, they show up on different sides of the same face. Example:

You can fix this by selecting the object, going to Object Data Properties, and under Geometry Data, click “Clear Custom Split Normals Data”.

After: Clear Custom Split Normals Data
Before: Clear Custom Split Normals Data

You may have to flip the normals as described above, in case the reset faces the wrong way.

If you reset the normals you’ll likely have a “pixelated” look, due to no mesh smoothing. In Edit Mode, select Mesh > Shading > Smooth Faces. You may have to do this a couple times to get fully smooth. See the text below on normal shading

"Rounded" normals shading effect

If your models have odd edge shading, it is caused by normal maps in blender, typically from the normal map smoothing feature.

Before/after fix example:

After
Before

After resetting a model’s normals, instead of smoothing with Mesh > Normals > Smooth Vectors, you should use Mesh > Shading > Smooth Faces.

Offset Lense Texture

If your lenses are refracting oddly, it may be due to UV mapping on the lens’s mesh. Example:

left lens refracting light from the wrong perspective

If this occurs, it is caused my misaligned UV maps. These are further discussed in the Textures & Materials section further on. You can safely ignore this issue for now.

Warped UV Maps

If your UV maps are incorrect, they may look unbalanced like this:

This is a common issue and is fixed with UV mapping. This is described later in the Textures & Materials section further on. You can safely ignore this issue for now.

Last updated

Was this helpful?