Custom Model Import Guide - Stellar-Blade-Modding-Team/Stellar-Blade-Modding-Guide GitHub Wiki

Overview

[!IMPORTANT] This document is scripted for people who already finished the guide of Model Import for in game model. Now its time to learn how to import your custom model into the game.

[!TIP] Refresh the page if any videos won't start after clicking start button. You can also check out our wiki team member Last_Ghost who published Model Mod video tutorial for model import.

[!NOTE] Make sure you already have your target model extracted on your disk by following Extracting Game Files. A "Target" to be replaced.

Workflow in Blender

Preparation in Blender

[!NOTE] Before you import your own custom model in blender scene, make sure you have imported your target model from the game in blender for replacement by following Importing to Blender.

We will replace Planet Dive Suit (7th) as target model for tutorial. We will also include Eve's head mesh in blender for reference so your custom model for body replacement wont clip with her head in game. Unless you want to make head accessories or hats, you will also need her hair mesh for reference but we will skip it this time.

[!TIP] You can create collection by right click in object menu. Click on the collection you want the model to be assigned and import model. Rename the collection to your favor for easier sorting. With this feature you can use hide & show function for all exclusive objects in that collection. It will be useful when we on posing and rigging steps.

https://github.com/user-attachments/assets/5046923f-33c0-44e7-a9d6-59a8de7c5157

Body:

CH_P_EVE_09

Head:

CH_P_EVE_Face_Jali3

Step 1: Importing custom model

File> Import > Select the file type of your custom model> In new window locate to the model file on your disk and import

Capture

You should be able to learn the basic of blender as to how to import your custom model in blender scenes. The format of the file can be any types but the most popular one would be .fbx. If you already aware of different file types import plugin for blender then you can skip this. you can import/export any model as long you have the correspond addon installed.

Step 2: Posing custom model

The only goal to reach during posing steps is to match your custom models body with target models in the scene. Try your best to make two models as overlapped on each other as much as possible. Since we are not using any extensional scripts for tutorial, this is the most important step as preparation for convenience later when we work on the sculpting and rigging step.

Useful blender hotkeys:

G - Move selected bone location

R - Rotate selected bone

S - Scale selected bone

H - Hide selected bone

Alt + H - Unhide all bones

Ctrl + Z - Revert back to previous change

[!NOTE] In Object Mode: Press H key to hide the mesh parts that's unnecessary in the scene during posing steps. Select Skeleton and hold S key to rescale entire objects. Left click in the scene to confirm rescale.

[!NOTE] In Pose Mode: Select your models skeleton and go pose mode, select any bones you want to tweak to match the pose of target model by using bone rotation, bone reposition and bone rescale. You can copy the bone rotation and scale value to its mirrored bone on each side, if values are negative - or positive + you can keep it for each side. This way your bones will always be posing in a symmetry way.

[!TIP] You can also box select one side of the bones and Ctrl C, then select other side of the bones and Ctrl Shift V to copy mirror transforms for the bones in Pose Mode. But this only works if you have mirrored bones for your model by default.

In the video below we showed process of posing arms from custom model to line up with target model. You would need to adjust more bone position and scale so the two models would be as overlapped as it can from it's topology. Fingers are the most time consuming part but it's in the same principle as what you do with other bones posing.

https://github.com/user-attachments/assets/7e01a0ee-364e-4c82-aa17-ead617e6d44f

[!TIP] You can always reset poses: Select skeleton and go pose mode> Select the bones you want to reset or press A to select all bones> Click Pose> Clear Transform> All

Capture2

Step 3: Sculpting custom model

You can reshape your custom model in sculpt mode. There are many ways of reaching your ideal. For not getting into complicated side topics and video quality (github has file size limits for uploading) we wont go for too depth of sculpting for tutorial. Here we will show some options that's available.

[!NOTE] In Sculpt Mode - A blender feature where you can use different options to reshape your model. Adjust the strength and area of the brush you uses to reach the best result you want it be.

[!NOTE] In Edit Mode -Press O to enable proportional editing. Use the scroll wheel to adjust the selection falloff. This makes it easy to reshape the model however you want.

In the video below we showed some basic sculpting in sculpt mode for you to understand the fundamental.

https://github.com/user-attachments/assets/3d0e7a94-ed11-45f3-a5d9-340fc416ade9

Step 4: Rigging custom model

Useful blender hotkeys:

Ctrl + J - Combine selected objects into one merged object

Hold Ctrl and left click to select multiple objects

Ctrl + A -Apply Tranforms for your skeleton and model

Ctrl + P - Parent selected model with selected skeleton

Your custom model should be already rigged with it's skeleton. However for the custom model to be working when imported to the game, we need to unparent the model from it's old skeleton and rigg it with target model's skeleton.

You will need both vertex weights and bones to have your model performing movement and animations in game. Vertex weights are assigned with bones, bones movement controls how your model deforms with it's assigned vertex weights. Which means we need to ensure your custom model has vertex weights assigned.

[!NOTE] Vertex weight mix modifier - For the original vertex weights which came from your model, you have options to remove it or use vertex weight mix modifier to combine the two vertex groups between your custom model and target model. Here's an example for using vertex weight mix modifier.

[!NOTE] Weight Transfer - You can also fully assigns vertex weights from the target model to your custom model by transferring weights.

[!TIP] Merge your custom models parts into one single mesh for convenience during rigging.

[!NOTE] If you are merging your custom model with existed part from the target model, make sure you have the uvs name renamed for your custom model to what target model has before join it together.

Capture

[!IMPORTANT] Blender Instruction down below:

Object Mode: Select custom skeleton > Ctrl A> All Transforms

Object Mode: Select custom model > Ctrl A> All Transforms

Object Mode: Select custom model > Go to modifier properties> Apply

Object Mode: Select custom model> Go in data> Delete All Groups

Select target model's skeleton> Go Pose mode> Select custom model> Ctrl P> Armature Deform

Object Mode: Select target model> Select custom model> Go weight paint mode> Weights> Transfer Weight

Change Transfer Mesh Data settings follow by the image below:

Capture33

Object Mode: Rename your target model's skeleton to Armature

Object Mode: Rename your custom model mesh to target model's name

In the video below we showed Weight Transfer between custom model and target model for you to understand the workflow.

https://github.com/user-attachments/assets/27bf656e-651b-4490-bd86-49f5e29e8db4

[!TIP] You can delete the target model and old Skeleton like in the video. You can also keep it all in blender scene after the custom model is parented. If you want to keep target model for material slots reference, during export you will have to select your custom model and target model's Armature then do selective export.

Select target model's Armature and custom model> File> Export> .fbx> In export setting tickle "Selected Objects"

Capture555

[!WARNING] Make sure to change other Export setting as well by following Step 7

Step 5: Fixing weights for custom model

[!NOTE] Fixing weights: After your custom model successfully assigned with source vertex weights, you will need to adjust weights on model to make it look natural during deform. We recommend you to use blur feature in Weight paint mode to adjust weights on the model.

In the video below we showed some basic quick fix on weights issue.

https://github.com/user-attachments/assets/4814e246-1300-49f7-91d3-0f13da0ca01a

[!NOTE] Weight has strength range from 0 to 1. The strength define how much would the painted area of model be affected by the assigned bone. In visual of color:

Blue - 0 weight

Green - semi weight

Yellow - neutral weight

Orange - strong weight

Red - max weight

If the area of mesh has semi weight( green) and your brush has 0 strength, when you paint on the area it will weaken the weight, so as other way around. This is why its called Weight Painting.

[!TIP] If your target model has physic part like ties, ribbon and cloth physics that doesn't fit your custom model upon weight transfer, you can simply remove those vertex weights in Data> Vertex Group on your custom model.

Stellar Blade uses total 8 for weight limits. It means each vertices of your model can have max 8 vertex weights instead of 4.

Limit total defaults is 4 in blender, set it to 8 for all groups after weight transfer.

At last you want to Smooth weights for All Groups.

Select model> Go Weight Paint Mode> Weights> Limit Weights> Set 8 in Limit bar

Weights> Smooth> Select All Groups in the Smooth Vertex Weights Tab

https://github.com/user-attachments/assets/c210a48f-c5db-4b37-924f-989467d69fa6

[!WARNING] If your model's faces and edges appear seperated during deformation after smoothing, go edit mode and select the mesh> Object> Merge> By distance.

Head Rigging Tutorial

[!NOTE] Before you continue this guide, you need to have the custom head weight transferred and parented to the target head's Armature just like custom body models. Follow the same rigging process of custom body model from above.

For Stellar Blade head model it uses shape keys for facial expressions, we won't have facial bones from Eve's head since it doesn't exists. That means we can't rigg custom heads base on facial vertex weights and bones for the game. We need to create our own shape keys for custom model's head.

Select Eve's head in object mode and go to data> Shape Keys, you will see all shape keys that's included for the head during import. In Relative section you can find value. Change the value from 0 to 1 will leads to morphed result the shape key contents.

https://github.com/user-attachments/assets/13a39827-03c2-4790-ad4f-d26f0e7d114f

We will create shape keys on custom head base on what Eve's head has with it's shape keys. In this tutorial we will create two shape keys named sadSmile_left and sadSmile_right.

In object mode select your custom head model.

Go to Data> Shape Keys > Press + buttom to Add Shape Keys

Capture

The created shape key is called Basis which is your default shape of the head model on standby. Rename it to Default like Eve's head has. Its the starting point of any shape keys you will build later.

Press + button to add a new shape key >Rename it to sadSmile_left

Capture2

[!WARNING] Since you are looking at the head from the front, from the perspective of your eyes it's the opposite of what left and right actually is. Keep that in mind and don't make mistake when naming shape keys for each side of the model.

Next we will use proportion editing for the facial morph. Select the vertices in Edit Mode and press G to grab and move it to the ideal position.

Capture3

Once done, you can adjust value in relative section to see the morphed result you made.

For mirrored shape keys, select the sadSmile_left and click the drop down arrow button> New Shape from Mix. It will create a new shape key called Key 2.

Capture4

Click on the new shape key 2 and go drop down arrow button> Mirror Shape Key

Capture5

This will make the shape key 2 being mirrored of what your earlier shape key is. Rename the mirrored shape key to sadSmile_right

Capture6

Make sure all your created shape keys names on custom head model are correct following by what Eve's head model uses.

We hade made a video tutorial to show you the whole process of creating shape keys on your custom head model for replacing Target Head model in game.

https://github.com/user-attachments/assets/7cd46c9a-805d-4a7a-b20d-10a4c62f81c1

[!NOTE] The quality of your morphed result depends on how well you reshaped your mesh during the process. Keep in mind to rename Basis to Default for the root shape key and tog on Import morphed target option when import in UE.

Step 6: Materials for custom model

Once rigging is done for your custom mesh, you need to inspect it's materials for your custom model.

Capture2

The material names that you see in material property in blender shouldn't matter in unreal. What matter is what materials you assign in unreal directly. Now, it's very convenient that the material slot names match from the get go so that when you import your mesh in UE, it automatically creates the material assets with the correct name and you only have to move them to the correct folder.

It is recommended to use the same materials as the target model you're replacing to avoid conflicting with other mods or other outfits, but you're technically not restricted to do that.

Be aware that the target model you want to replace has a limited number of texture slots available. When adding or replacing textures in your mod, ensure you do not exceed this limit.

Typically but not always: each material uses one diffuse texture, one normal map, and potentially one ORM texture (occlusion, roughness, metallic).

Capture

Before proceeding, inspect the target model you're replacing using FModel to determine how many textures are available for modification. When baking and preparing your own textures, stay within this limit to avoid issues.

For easier understanding, EVE09 has 7 material slots in blender, but these material slots doesn't mean they have 7 different set of textures. It can be that it has two material slots that share the same texture set. When it comes to replacing, your custom mesh can contain as many material slots you want, as long the total texture slots it's containing are not more than what EVE09 can have.

That means you can separate your mesh into 100 pieces for 100 material slots, as long they are not using more than what eve09 can have for texture slots.

If your mod requires more textures than the target model supports, consider merging some of them and adjusting your UVs accordingly.

[!NOTE] Alternatively with custom material or creating material instance you can break the restriction of vanilla material setups but we can cover that later in Material Section.

Step 7: Exporting custom model

Exporting your custom model from blender would be the same as what been mentioned earlier in Model page. Follow the export setting from Mesh Export.

Workflow in UE

Important file types:

[!NOTE] We have already addressed most file types on previous pages for model and textures. Here is a short introduction of every file types. Each file has its own color as marker under preview to define their types in UE.

Skeletal Mesh (Purple): Your main model with vertices, polygons etc.

Skeleton (Blue): Your models skeleton with bones that works as dominant factors of model's movements and scales.

Materials (Green): Your models material that contents info of how its gonna look when comes to textures in game.

Textures (Red): Your models texture that contents its native look such as base color, normal, roughness and MORE.

Animation Blueprints (Orange): Inbuild data for UE games control the animation of your Skeletal Mesh during simulation or gameplay.

PhysicsAsset (Yellow): Inbuild datas for UE games which control the physic of your Skeletal Mesh during simulation in game.

Preparation in UE

[!NOTE] Before you import the exported fbx in UE, make sure you finished your Uproject setting by following Creating Uproject

Step 1: Import custom model

Drag your custom model.fbx in UE.

What happens is as the following:

You imported your custom mesh in your project.

By default your importing setting already selected create materials and it will create the material assets for the custom mesh.

The new material names will be synced with what they were named in blender upon import.

[!NOTE] Click your skeletal mesh and find material slots in Asset Details.
You will see each material has a "Slot Name": the material slot name from blender. These are not actual material names for your asset.

Capture

If you already renamed material slots of your custom model following by what target model uses in blender, then the created material names in UE will already be correct, or you can inspect it in Fmodel see if name is matched. After model is imported you can rename the Slot Name to anything else in Asset Details but its pointless since it no longer synced with actual material names. "Slot Name" doesn't matter as long you know which material its for.

Capture3

If your custom model has its own material slot name from blender for example "Apple", this means when the custom model is imported in UE, the material MI_CH_P_EVE_09_Suit would not have been created. Instead you'd have a material called "Apple".

Capture232

If you didn't have MI_CH_P_EVE_09_Suit material imported with your model in UE, you need to click on the "Apple" material and rename it.

Capture2

If you already have MI_CH_P_EVE_09_Suit material imported in UE, because you know that apple is supposed to use the 09 suit material as you planned, You can keep the Slot Name as "Apple" and click the dropbar to select MI_CH_P_EVE_09_Suit as an existed material for this asset.

That means we can have like 100 material in UE with random Slot Name, but select actual material for each of these to be applied in game.

If you are not planning on using other suit materials for the suit you replacing, use the dummy material of the target model for your custom model's textures would be enough. Just make sure your custom models material name is renamed as same as what the suit you replacing named for it's materials in UE.

Each material will reference certain textures(the ones you need to replace). You can inspect what textures each material uses in FModel.

[!NOTE] Keep in mind that these material assets are more about saying "this material affects this part of the mesh" and the other materials for other parts etc. The dummy material that's been assigned with your skeletal mesh in UE is for reference so the game will load the game textures the dummy mat uses, aka your custom models textures in this case. Assume you already replaced the textures for the suit you replace. Do not add dummy materials in PrimaryAssetLabel/chunk or the game will apply empty textures on your model in game instead of what it originally uses because the dummy material is empty.

However this does not apply when you created custom materials and material instance.

[!TIP] If you want to replace materials and add more textures, you can create material instance(MI) of a dummy material and make custom materials. If you want to use other in game materials for the suit, you can create MI and import game materials json for the material data by using Json2DA script and follow instruction in Material section. Material instance is only needed if you want to add more textures and uses different materials on the suit you replaces. With MI you can assign your custom textures in it. You only want to assign the new created MI with your skeletal mesh and custom textures and add it in PrimaryAssetLabel/Chunk. Do not add any dummy materials in PrimaryAssetLabel/Chunk.

Step 2: Make it match in UE

As mentioned earlier during the Import process to Unreal Engine, simply rename each asset based on its name in FModel. Then, move each asset into the appropriate folder within UE.

[!NOTE] For your imported textures in UE, navigate to Texture Import Setting and complete settings with each texture for the custom model. Then follow the steps of Inspect Texture info, make all textures matching it's names and filepath in UE according to Fmodel.

[!NOTE] For the Skeletal Mesh, Skeleton and created PhysicsAsset in UE, Follow the steps of Asset Inspection to match it's names and filepath in UE according to Fmodel.

[!WARNING] You need to create dummy Animation Blueprints to fix some missing physics in game if you are keeping target models physic. More Details in this page

You will now have the Textures, Skeletal Mesh, Skeleton, Animation Blueprints and PhysicsAsset ready for packaging.

Step 3: Packaging your Custom Model Mod

Once all your asset names and filepath are matched in UE according to Fmodel, you can start cooking your mod in UE by following steps from Packaging Mods