This is more of a guideline than a tutorial for importing custom meshes into Tekken 7 using Unreal Engine 4 and Tekken 7. I assume you are somewhat experienced with blender, that you know about weights and how to work with armatures and the tutorial also assumes that you know how to use UassetRenamer. There are plenty of Blender tutorials out there and various of Tekken 7 tutorials available.
Important note: If you are a complete beginner at modding Tekken 7 then this will not be an easy tutorial/guideline/whatever to follow. I tried my best to keep this post organized, straight to the point while not making it too long and not overflowing anyone who reads this with information causing anyone who reads this to lose track completely. If you have a question or you are struggling with a specific step or you didn’t understand something then contact me and I will do my best to help you or ask in the Modding discord server but don’t expect me or anyone to do EVERYTHING from scratch for you, we expect some effort to be put on your end.
Prerequisites
- Pre-Unreal Engine 4.14 set up and working
- PreUnrealPatcher
- Blender 2.80/2.90 or above
- umodel
- UassetRenamer
- A hex editor (HxD)
Getting ready
Start up umodel and upen up Tekken 7’s files
We will replace Master Raven’s bikini upper as a base for our custom mesh so we’ll navigate to Game\Character\Item\Meshes\cmn\Upper\cmn_bdu_bikini_tops\Meshes and open SK_CH_frv_bdu_bikini_tops.uasset
Press M and let’s take a look at the materials:
We don’t care about the first two materials since we will remove them in Blender, if we click on “MI_CH_frv_skin_hand” umodel will redirect us to the material property viewer
We can see that MI_CH_frv_skin_hand is a MaterialInstance constant that inherits from MI_CH_frv_skin_face now if we will click on MI_CH_frv_skin_face
MI_CH_frv_skin_face is a MaterialInstance that inherits from a material called “M_CH_skin_wet_SSP”. All the skin materials for this mesh inherit from MI_CH_frv_skin_face.
Write down the hierarchy along with their package paths and save it for later because we’ll need it when we are in Unreal Engine 4:
- Character\Common\shader\Material:
M_CH_skin_wet_SSP (Material)- Character\Common\shader\MaterialInstance\skin\frv:
– MI_CH_frv_skin_face (MaterialInstance):- – MI_CH_frv_skin_hand (MaterialInstance Instance)
– MI_CH_frv_skin_neck (MaterialInstance Instance)
– MI_CH_frv_skin_arm (MaterialInstance Instance)
– MI_CH_frv_skin_body (MaterialInstance Instance)
- – MI_CH_frv_skin_hand (MaterialInstance Instance)
- Character\Common\shader\MaterialInstance\skin\frv:
Let’s export the mesh now by clicking on Tools and then “Export current object” or just press Ctrl+X
Set the mesh export to gITF 2.0 and the texture format to PNG and hit OK
Working in Blender
Before you start, when you export an fbx file in Blender it creates a root bone that has the armature’s name. We don’t want that so we will need to edit a single file to change that behavior. Go to where you installed Blender, in my case it’s C:\Program Files\Blender Foundation\Blender 2.90 and navigate to 2.90\scripts\addons\io_scene_fbx. You will see a file there called export_fbx_bin.py. Open it with a text editor.
Search for:
elif ob_obj.type == 'EMPTY' or ob_obj.type == 'ARMATURE':
Now comment out that line and the next two lines after it by appending # before them it so it will be:
#elif ob_obj.type == 'EMPTY' or ob_obj.type == 'ARMATURE':
# empty_key = data_empties[ob_obj]
# connections.append((b"OO", get_fbx_uuid_from_key(empty_key), ob_obj.fbx_uuid, None))
Now you can save the file and close it.
Important scene setup
Now open Blender and delete everything from the scene.
Now this the important part: Select the scene properties tab
And set the unit scales to these values:
The unit scale should be 0.01 and the length should be set to Centimetres
Preparing our body base
Now import the gITF file you’ve exported from umodel, set the armature scale to 100
Select the armature, press Ctrl+A and hit “All Transforms” this will set the armature’s transforms as the default.
Select Raven’s body mesh and enter edit mode by pressing TAB. Go to the object’s materials tab and select the first material and then press the “Select” button
This will select the bikini in edit mode, now press Delete and then click on “Vertices”. Do the same to the second material.
Now remove the two materials by clicking on them and pressing the minus button near the list
Blender workflow
Now this is where you import your model and adjust the mesh to the body and set/convert the weights. I already have a mesh that I adjusted to Master Raven’s upper body.
I select the armature, hold Shift, select the mesh and hit “Ctrl+P”. Since I already converted the weights to the M.Raven’s skeleton I can just select “Armature Deform”.
After you are done adjusting your mesh and painting/converting weights, select every mesh that is attached to the armature and apply the transforms like we did earlier.
Exporting
Now go to File -> Export -> FBX and take a look at the exporter settings
In the Transform panel: Set forward to -Z Foward and up to Y Up and make sure that Apply Unit is toggled on and Apply Transform toggled off.
Geometry panel:
Smoothing should be set to Face, toggle apply modifiers and tangent spaces on.
The gITF format is a bit funky with bone orientation and since we exported our body base in gITF we need to set the primary bone to X Axis and the secondary bone to -Y Axis
Bake animation should be toggled off
Save it as a preset so you can just select it when you export instead of changing the settings over and over again.
Unreal Engine
Setting up the materials
Let’s set up the material references in Unreal Engine now. Pull up the hierarchy list you wrote and let’s start from the parent material. Open the project and navigate to Content\Character\Common\shader\Material and create a material called M_CH_skin_wet_SSP.
Now right click on M_CH_skin_wet_SSP and create a material instance from it.
Move MI_CH_frv_skin_face to Character\Common\shader\MaterialInstance\skin\frv
Now right click MI_CH_frv_skin_face and create a material instance for every material instance that inherits from MI_CH_frv_skin_face. In our case we need: MI_CH_frv_skin_hand, MI_CH_frv_skin_neck, MI_CH_frv_skin_arm & MI_CH_frv_skin_body.
Importing the mesh and textures
I wanted to replace M.Raven’s bustier so I created the path Content\Character\Item\Meshes\cmn\Upper\cmn_bdu_bustier and created there three folders: Material, Meshes and Texture. you don’t have to replace the bustier upper. Use whatever upper you want.
Now go to the Meshes folder in UE4 and import your fbx file by dragging it into the content browser. The FBX import options window will open.
M.Raven uses a base skeleton so select “SKT_CH_base_Skeleton“. At the mesh tab click on the arrow below the skeleton dropdown to expand the advanced options.
Set the Normal Import Method to Import Normals and Tangents and untoggle “Create Physics Asset” unless you are familiar with Physics Assets and want your mesh to have physics.
The uniform scale is 1.0 and toggle off Import Materials and Import Textures.
Now click on the imported mesh file and rename it to the SK mesh you want to replace. Since I replaced M.Raven’s bustier I renamed it to SK_CH_frv_bdu_bustier.
Now in the editor navigate to Content\Character\Common\shader\Material, right click on M_CH_Base and create a new material instance from it.
Name the material whatever you want but make sure it’s not any longer than the meshes original material name. M.Raven’s bustier uses the material: MI_CH_cmn_bdu_bustier (21 characters) so make sure your material name isn’t longer than the amount of characters the original material has. I named the material: MI_CH_tifa_base (15 characters). (Spaces in file names count as characters too in case you are wondering).
We’ll drag the material instance to our Material folder.
Now go back to the Meshes folder and double click on the mesh you’ve imported. The skeletal mesh window should open.
Start applying the proper materials there, Use the slot name to figure out what material you need to give your mesh.
Now import your texture to the Texture folder. I called it T_CH_tifa_base.
And you’re done. Click on Save All.
Cooking
At the top of the editor, click on File and Cook Content for Windows.
Wait for it to cook the content.
When it’s done cooking you should see an error that says that the UE4Game binary is missing, it’s fine and this is exactly what we want. Click on OK.
Tekken 7
Patching
Open the TekkenGame project folder and navigate to Saved\Cooked\WindowsNoEditor\TekkenGame\Content\Character\Item\Meshes\cmn\Upper and drag cmn_bdu_bustier to the PreUnrealPatcher bat or exe file. This will create a timestamp folder of patched supported assets (SkeletalMeshes as of now) that you can use in game.
Asset Swapping
Now this is a very important step. The material we have WILL CRASH the game so we need to swap it with the original material and the texture we have cooked will not work if it has a ubulk file associated with it.
Remember how I mentioned that this guide assumes that you used UassetRenamer before? Because you will need that knowledge now. Get UassetRenamer ready and pay close attention:
Get the original mesh material, in my case it’s MI_CH_cmn_bdu_bustier. I have to swap between MI_CH_cmn_bdu_bustier and MI_CH_tifa_base so that our original MI_CH_cmn_bdu_bustier will be called MI_CH_tifa_base.
Go to umodel again and navigate to where MI_CH_cmn_bdu_bustier is located. (/Game/Character/Item/meshes/cmn/Upper/cmn_bdu_bustier/Material) and open it up.
The diffuse texture for the material is T_CH_cmn_bdu_camisole_bustier_D. So rename (Right click -> Rename) our new MI_CH_tifa_base uasset file to T_CH_cmn_bdu_camisole_bustier_D. Now you will have to swap between that file to T_CH_tifa_base so our material file named T_CH_cmn_bdu_camisole_bustier_D will be T_CH_tifa_base.
When that’s done rename the material file back to MI_CH_tifa_base.
Do the same thing with the textures by grabbing an original game texture and renaming it to T_CH_tifa_base using UassetRenamer. Then open the Texture Editor and import your mesh texture.
Making the mesh colorable in-game (Optional)
Since M.Raven’s bustier upper is a colorable item we need to make a very simple change to it’s CCI file.
Assuming that you have the game files extracted already, go to TekkenGame\Content\Character\Item\Customize\FRV\UPPER and copy CCI_frv_bdu_bustier to the mod’s folder.
Open CCI_frv_bdu_bustier with a hex editor (I use HxD), press Ctrl+F and search for MI_CH_cmn_bdu_bustier
Now click behind the first letter of the material so that the text cursor is located there.
And start typing the custom material name. Don’t select the text and copy paste because otherwise the file size will change, the uasset will become invalid and we don’t want that.
Now the remaining characters will need to be changed to NULL.
Select the region that is in hexadecimal after the red bytes
Now type zeros until you reach 00.
Save the file.
Final steps
Packing everything
If you decided to embark on such a difficult task then I assume that you already know how to put files in the appropriate folders and pack them into a single .pak file.
Testing the mesh in-game
Go to character customization and check to see if everything works.
There seems to be a problem with some bones like the fingers not being orientated properly. I don’t know what’s causing it. I spent an entire night trying to figure out why it happens and how to fix it but it looks like it’s a Blender only issue and not in 3DS Max. Well, this is your problem now. Let me know if it happens to you too and if you managed to fix it.