Models - Stellar-Blade-Modding-Team/Stellar-Blade-Modding-Guide GitHub Wiki
Overview
Models from Stellar blade and other game's extracted mesh assets plays the main role of mesh modding. As one of the most popular section of modding category, you will need to understand the princple of model import and learn the basic of how to use blender and UE. We will be scripting the basic guide of import any in game meshes back to the game.
If you completed this guide, you can nagaviate to Custom Model Import Guide for advanced rigging tutorial.
Previewing and Exporting
Follow the Extraction tips to find and preview your targeted mesh you planned to modify and export it from Fmodel.
For previewing, simply double click on the uasset that's for the model inside the subfolder it located. A 3D Viewer window inside Fmodel will be opened and you can inspect the model.uasset details.
*example CH_P_EVE_09.uasset
Importing to Blender
-Tips: keep in mind that psk format still works but we will be mainly using uemodel format as example for this guide.
Required plugins
Step 1: Import Setting
Launch Blender. Remove object, camera and light from the default scene.
Before we import the extracted uemodel file in blender, you need to have ueformat plugin installed and finish import settings down below.
If your blender scene doesn't show a drop-addon lists, click the "<" button which sits on the bordline in-between the object menu and main scene window.
Find UEFormat tag in the dropped menu and click in > change the general scale from 0.01 to 1
On the right side click in Scene> Units> change Unit scale from 1 to 0.01
Step 2: Mesh Import
Once Import Setting is done you can start import your extracted asset into blender scene.
File> Import> Unreal model (.uemodel)
Inside the new window the General Scale should have been 1 if you done everything correct in the previous step.
Click Import model.
Step 3: Mesh Export
Once model is imported in your blender scene, you will see the object carries the in game ID's in it's name. Double click on it and rename from its previous name to Armature.
*example CH_P_EVE_09_LOD0_Skeleton > Armature
You can make any edits on the imported model in blender. However for the purpose of verifying if your model is successfully imported in game, we suggest you to make some obvious changes on the mesh such as removing vertices on capes, gloves or any parts of the model, or use sculpt brush to make a drastic deform.
Once your finished mesh editing, It's time to export.
File> Export> FBX (.fbx)
In export setting: Disable "add leaf bones" in Armature section and change other settings as the image shows.
If there's no other objects aside your game model in the blender scene, you can export it right away but make sure the name is identical as what the model.uasset uses.
*example CH_P_EVE_09.fbx
IF you have other objects exists in the scene you must delete those before processing this step.
Selective Export:
Alternatively you can also do selective export in blender.
Select your object which include it's armature and actual model in the scene >
Go in export setting > Include> limit> Tog on selected objects> Click "Export FBX"
This will ensure blender only export fbx file for the selected objects from the scene.
Importing to UE
First make sure you completed the step of Creating Uproject
Once it's done, you need to start building folder structure inside your Uproject. Right click on Content folder and start creating new sub folders each by each. The structure has to follow what the game file uses for your imported asset to be loaded up in game.
*example Art\Character\PC\CH_P_EVE_09
Make sure the name of each subfolder in Uproject is identical as the game file has.
To import your model.fbx inside Uproject, you can simply drag and drop it to the correct filepath or click manual import button to navigate to your exported fbx file.
Keep the import setting window as what the image showed below:
Keep in mind that if its your first time import Fbx in UE there won't be any existed skeleton in the option to assign because you first need a mesh in unreal for the skeleton to be generated. You can continue without skeleton in option menu for the first time.
Click "Import All"
There should be your model(skeleton mesh), a skeleton asset and materials which been generated in UE. There will also be a physicsasset.
Asset Inspection
Inspect Skeleton info
In Stellar Blade, all costumes for Eve shared the same skeleton so it can be assigned with any of your imported asset in UE. You can inspect the skeleton details and the correct filepath for it with Fmodel . Rename your Skeleton to the correct one in UE if names are miss-matched. Move it to the right filepath.
*Example for CH_P_EVE_09
Click on the model.uasset and click on objectpath under "ObjectName": "SkeletalMesh'CH_P_EVE_09'".
In new opened page find "ObjectName": "Skeleton'CH_P_EVE_01_Skeleton'"
You will see "ObjectPath": "/Game/Art/Character/PC/CH_P_EVE_01/CH_P_EVE_01_Skeleton.101".
This contents skeleton name and filepath information. Rename your skeleton in UE to what been said there and move it to it's correct folder.
Inspect PhysicsAsset info
Click on the model.uasset in Fmodel and you should be able to find PhysicsAssset in the output window. You can also do Ctrl+F and search Physic to navigate to the related info.
Ctrl+F >Type Physic and search
Inspect Materials info
Material name in UE should match with what you see in Fmodel. Rename your materials that came with to the correct one in UE if names are miss-matched. Move it to the right filepath.
The best way is still inspecting from model.uasset so you wont miss any materials that might store in other ID's filepath.
Ctrl+F >Type MI_ and search
You can also review the material name and it's filepath with Fmodel by inspecting the output window after you navigated to "Materials" folder in Fmodel. But some model might not have all the materials stored in the same filepath. So keep in mind this might not be the best way to find filepath if some materials are located in other ID's folder.
*Example for CH_P_EVE_09
Alternatively you can also find the correct material name in blender when you inspect material proprieties on the model.
Example for inspecting material instance :
Click on the Material.uasset in Fmodel.
Find "ObjectName": "Material'MA_CH_P_EVE_09'"
You will see "ObjectPath": "/Game/Art/Character/PC/CH_P_EVE_09/Materials/MA_CH_P_EVE_09.0".
Inspect any possible spelling errors on names or filepath mistakes for everything in UE before you continue.
Click "Save All" once done.
Next we will move on to the Packaging Mods
Known issue of inverted bone with incorrect flipped weight & solution:
For stellar blade eve's body models, no matter you export the asset as in .uemodel or .psk format, it comes with issue that causes some part of the model deformed by the corresponded bones when imported it back to game.
There are two methods that's been found by our community which would solve this problem.
Method 1 : Vertex weight mix transfer (found by Insider)
Since the bone assigned with its vertex weight group, the first solution is to bypass all the issued weights and rework it by mix it with other weights for the functional bones.
In other word, simplify the rigging and remove any problematic weight or mix it to another functional weight.
Transfer the problematic Weight A into a close Weight B that doesn't deform that much and that is also close to it, then clear Weight A entirely. The following weights can be mixed with no visible issues.
Ab-R-Breast > Ab-L-Breast
Ab-L-BrochiUp > Ab-L-UpperArm-Tw1
Ab-R-BrochiUp > Ab-R-UpperArm-Tw1
Ab-L-Deltoid > Ab-L-Trape1
Ab-R-Deltoid > Ab-R-Trape1
Use vertex weight mix modifier to combine the two vertex groups.
click on the model in blender scene> find modifiers tag and click> add vertex weight mix modifier
After combining you can remove the previous vertex group that was assigned to the issued bone.
The result would be both mesh parts with the combined vertex weight assigned will have their movement affected by the single functional bone. For example the right breast after combining would be controlled by Ab-L-Breast Bone in the game.
koenji)
Method 2: Animation Blueprints fix (found byAnimation Blueprints are specialized Blueprints that control the animation of a Skeletal Mesh during simulation or gameplay, we can run this in Blueprints or in Skeletal Meshes as a Post Process Animation Blueprint.
In Stellar Blade, Post Process Animation Blueprint are used in Skeletal Meshes primarily for simulating cloth like physics with a plugin called Kawaii Physics. If we're making a custom outfit, we don't really need the animation blueprint that is running in the original outfit (unless we're rigging directly to those bones that are being simulated by Kawaii Physics). Additionally we can still use things like NVCloth for creating actual cloth physics anyway.
This is where we can use our own Animation Blueprint in the process to correct some errors that are currently happening with the Stellar Blade Pipeline.
Step 1: Create Animation Blueprint
Creating a Custom Post Process Animation Blueprint to Flip our Bones.
- Right Click your Model(Skeleton Mesh) and create a new Animation Blueprint, alternatively you can Right Click in your Content Browser, then go to Animation > Animation Blueprint and then select the SB Skeleton.
Rename the created ABP to what the game has for your model.
*example CH_P_EVE_09_AnimBP
Double click on your Skeleton Mesh.
Find Skeleton Mesh In Asset Details> Post Process Animation BluePrint> Select your created ABP> Save All
Step 2: AnimBP Workflow
-
Double Click AnimBP. Right Click in any empty space on your newly created Animation Blueprint and type Input Pose. An Input Pose is required otherwise your animations will not work.
-
Drag off of your Input Pose and type Local To Component.
-
Type in Transform and select Transform (Modify) Bone.
-
In the Details Panel on the right update Scale Mode to Add To Existing.
-
In the Transform (Modify) Bone node itself, update the Scale to be -1.0, -1.0, -1.0.
-
In the details panel for the Bone To Modify add the first bone that is present on this list:
Ab-L-AX1
Ab-L-AX2
Ab-L-BrochiUp
Ab-L-Venter
Ab-R-AX1
Ab-R-AX2
Ab-R-BrochiUp
Ab-R-Deltoid
Ab-R-Venter
Ab_09Gear_L0
Dm-R-AX2
Dm-R-Breast-Point
Dm-R-Trape
- Make a copy of the Transform (Modify) Bone node and change the Bone To Modify for the other remaining bones in the list.
Click Save all.
If done correctly your bones should be inverted back in-game.
Step 3: Fixing The Bones For the Pause Menu
In the Pause Menu some bones may be flipped, around, most notably Dm-R-Breast-Point. A method of correcting this effect when the game is now paused has been figured out.
-
Open up the EventGraph in your Animation Blueprint and find Event Blueprint Update Animation, if you cannot find it you can create it by typing for it by right clicking the empty graph and searching for it.
-
Right Click the empty graph and type Is Game Paused, create the node.
-
Right Click the red side of the newly created node and create a new Boolean variable, name it whatever, I went with bIsGamePaused.
-
Now head to your AnimGraph and find a Translation (Modify) Bone node that affects Dm-R-Breast-Point or any other problematic bones that get inverted when you pause.
-
Right Click where there's empty space and type in the name of your created Boolean variable, you want to get a reference for it.
-
Drag off of your Boolean variable and create a select node (can use either Select Float, or the Select node).
The goal is to make it toggle between 0 or 1 (No Flip or Flip) depending on if the game is paused. If your Select Node says Index set False to be 1.0 and keep True to be 0.0. However, if your Select Node says Pick A keep A to be 0.0 and set B to be 1.0.
Click Save all.
If done correctly, the problematic bones that fix themselves in the character select screen will not be flipped when the game is not paused, and be flipped when the game is paused.
koenji
Video Guide Version by-Tips: The list of the Transform Modify Bone List would be the same as above.
-The Select Node being used is the Wild Card Select Node which is just called Select (not Select Float)
https://github.com/user-attachments/assets/2f495fa2-eef5-4db7-9b25-048c87c5527d