• Hi Guest! To get rid of ads on the page, please consider donating through user upgrades or other methods.

How to UE4 How to import edited mesh into Blade and Soul successfully

XTGMods

Bamboo Warrior
Member

How to import edited mesh into Blade and Soul successfully

Note: There is an extremely tedious process to successfully import your mesh back into Blade and Soul. I will not be teaching you how to use Blender, Maya, 3DS Max etc. There are hundreds of Youtube videos floating around that will teach you 3D modelling, you can watch those to learn more about it. This thread is specific to this game, though some parts of it can be generally applied to modding Unreal Engine 4 games. You need to have a fairly advanced knowledge of Unreal Engine, you may need to reverse engineer by recreating some assets from scratch, such as body physics, cloth physics, hair physics etc. Before you read through this thread, please go read Zommie's post on how to do texture modding first, as they would have already explained some things that will not be reiterated here.

Since this game is well past its prime, this thread will most likely only be read by people who just like to tamper with things. I personally do not play this game, and haven't done so since the days of 2019. I do not care for the well being of the game whatsoever, I do not care for the hardcore players, and I do not care for the integrity of the game. I'm only doing this because I want to see more 18+ content in this game. I will warn you that this thread will most likely contain 18+ content.



Tools required

Umodel Viewer - You need this to extract game files to a usable format

UAsset GUI - You must have this, and you must download an older version, as the newest version does not work, try v3, v4, v5 or v6, I personally use v6

Unreal Engine Editor 4.25.x - You must have this EXACT version, DO NOT use 4.26, 4.27 or any other version! Although UAsset GUI thinks Blade and Soul assets are made with UE 4.23, I don't believe this is the case, because to extract the game files, you need to choose 4.25 on Gildor's UModel Viewer anyways. However, if you have UE 4.23 and if it works after following this entire thread, then please let me know, and I will update the post.

3DS Max - Ideally, you want to have this, because Gildor's ActorX plugin for 3DS is much better than befzzz's PSK/PSA Blender importer/exporter, probably as a result of FBX files being a propietary format from Autodesk Inc. I highly suggest you to use 3DS Max for exporting PSK/PSA to FBX using ActorX plugin.

ActorX Plugin for 3DS Max - This is required to import psk into max and export it back out into fbx

Blender/Maya/Zbrush and others (optional) - Use a 3D modelling program of your choosing, I personally use Blender. However, if you are a pro with 3DS, then you can just use that I suppose.

BnS pak repacker, quickbms, unrealpak - You must have some kind of pak unpacker/repacker for Blade and Soul, you can use different programs for this, but I use KimCoder's
BNS UE4 ModTool.

Photoshop/GIMP/Paint.net - Use an image editor of your choosing, I personally use PhotoShop.

After you make your changes to the mesh you want to mod, you'll need to export whatever you modded to an FBX format, make sure you have the correct scaling because UE4 uses much smaller scale than usual.



Some tips for mesh editing (Blender)

Here are some tips for mesh editing in Blender:
  • You should only use 1 object in Blender, if you have an outfit that has multiple object parts, join all of them together as one when you export it as FBX.
  • Use as many materials as needed for however many different parts your outfit mesh has. The material itself in Blender does not matter, use default template or whatever is easier for you.
  • The name of the objects in Blender shouldn't really matter, but do make sure that the armature itself is named 'Armature' and not '00003_JinF' or anything else.
  • Adding new bones to existing skeletons will depend on the purpose, if the purpose is to redo the base body bones such as arms, legs, spine etc., then it most likely will not work. If the purpose is for clothes and jiggle physics, then it most likely will work.
  • Female characters only:
    Unfortunately, there are some strange behaviours regarding female characters of all races (except for LynF), specifically the breasts. The breast bone weight itself on JinF, GonF, Yun contributes to the overall shape of the breasts. Let's say if you weight the breast bone of GonF at 0.300 in Blender and set the in-game 'breast size' slider to 10, you would have more distorted breasts if you were to weight the breast bone at 1.000 despite setting the 'breast size' slider to 10 as well. So it is recommended that you keep the breast bone weights exactly the same as vanilla breast bone weight, which is between 0.250-0.300.
  • Physics will not work like you would expect it to, this applies to both clothes and jiggle physics. Blade and Soul is an MMORPG game, most MMOs would have some kind of body physics override either as a part of engine code or server side functions, most likely to deal with performance issues when many players are in an area at once. Because of that, you end up with physics that works quite well when you simulate it in UE4 editor, but does absolutely nothing in-game. This probable engine/server override applies to player to player body collisions as well as self-body collisions, ie. breasts reacting to arms/hands touching it.
  • Editing any of the base faces for any of the races is not possible, because of Morph Targets ('Shape Keys' in Blender). The game will most likely crash if you tried it Update: editing the face does not seem to crash the game, however you will need to set up 'Shape Keys' in Blender, and it has to properly reflect that of the face sliders in-game. This is an extremely tedious process which will require you to T-Pose your character in-game and use ninja ripper to rip the faces with all sliders maximised/minimised. Only then can you attempt to match the shape keys in Blender with the ripped max/min face slider mesh. If you do not set up shape keys properly, the face will distort very badly and look like shit.

The Unreal process

This part here, is where you will spend a reasonable amount of time for the initial setup process required to make mesh mods. Now you don't need professional game developer level of knowledge, but some form of Unreal Engine knowledge will make this process a lot easier. And once you have setup the initial process, you don't need to redo it, because all you have to do is assign any mesh your fully setup skeleton, click several buttons with your mouse and you don't need to ever touch the configs again.

1. To start with, open up your Unreal Editor, set up a new project with the correct folder structure (This is explained more in depth on the texture modding thread)

1.jpg

2. Import your modded mesh into the Unreal Editor, make sure you import it with the setting 'Use T0 As Ref Pose' ticked and 'Import Normals and Tangents' ticked! The rest of the settings can be left at default.
2.jpg

3. Find the extracted vanilla version of the mesh you want to mod, in this case it is 00003_GonF, open it up with UAsset GUI. You may get an error saying somethings along the lines of 'failed to maintain binary equality', ignore this, the program should work just fine.
3.jpg

4. Find the skeleton that the vanilla outfit is referencing, you should be able to find it in the 'Import Data' section.
4.jpg

A quick brief on how the skeleton system works in Blade and Soul

In Blade and Soul, there seems to only be 1 default master skeletons for all of the 7 playable race and gender combination, that being the Jin Male master skeleton. This is the reason why outfits from all races and genders will reference Jin Male skeleton. And yes, this is the exact reason why the Gon Female idle is fucked and her hands clip into her butt! Because Gon animations are not made on the its own skeleton but rather on the Jin skeleton, and then retargeted back into a tweaked version of the same Jin skeleton! That being said, it is indeed somewhat of a common industry practice to make a master skeleton and then retarget it into another humanoid species with a similar skeleton. So if you try to mod any outfit, you will find it will most likely reference JinM master skeleton in its import data.
Here is the important part, if you ONLY want to change the mesh of an outfit itself, you will need to make sure that your modded outfit references the original skeleton with the EXACT file path! If you want to change both the mesh AND the skeleton, then you will need to make sure that your modded outfit references your custom skeleton in a different path!

5.jpg

5. After you've imported the mesh you will notice that it has created a few things, the material, the mesh, the skeleton and the physics asset. If you only want to edit a mesh, you will need to change the name of the skeleton to that of the vanilla outfit reference. So in this case, we will be referencing the JinM skeleton.

6. Move the newly renamed skeleton into the proper folder referenced by the vanilla asset.

7. Here is the next important part, you will now need to instantiate your material, to do that, right click on the material and select 'Create Material Instance'.
6.jpg

8. Delete the parent material and rename the material instance to the same name as the parent material, so 'col1_Inst' becomes 'col1'.
7.jpg

9. Go into your body mesh, select the instanced material 'col1' as its material and save. Move the material into the correct folder as referenced by the vanilla game asset.

8.jpg 9.jpg

10. Now that you have the body mesh referencing the correct skeleton, material and physics asset, you can begin the reverse engineering process.

A bit about the problems with Unreal Games that use mesh sockets

This is the part where most people will have a mental breakdown and give up, but when you read the documentation behind skeleton/mesh sockets, you'll understand what sockets are for and why they are actually amazing to use despite many Unreal games not utilizing sockets. Basically, skeletal/mesh sockets are dummy bones where objects can be attached to onto a character. In the case of Blade and Soul, all of the 7 playable characters have multiple sockets attached to their body mesh for various purpose such as back accesories, wing positioning, aura positioning, weapons, EFXs etc.

Why do you need to know this? Because it is required to import the mesh back into the game, or else many things will break such as weapon and wings being placed inside the ground. Unfortunately, there is no easy way out, you must make sure all sockets are present on the mesh you modded, in the exact same manner as the vanilla game asset. It's not something you can blame the BnS devs for utilizing the Unreal socket system, nor can you blame Gildor for.

This is what happens if you don't add sockets to your mesh, as you can see the wings clips into the ground:
2022-04-02_14-00-07-874.png

Now to find all the socket information, you'll need to navigate to the 'Export Data' section of UAssetGUI and expand it. You will most likely freak out as there will be many sockets. You might be wondering why some sockets have the name 'SkeletalMeshSocket' while others have a 'UE3_' prefix in front of them. This is most likely because the original game devs used some kind of custom tool to migrate UE3 assets into UE4 instead of recreating them in UE4 during the engine update process in 2021. Many variables, arrays and structs reference some kind of legacy skeleton system, but no worries there, it shouldn't be too much of an issue as you won't need to recreate these legacy references.
10.jpg 11.jpg

11. Open up your skeleton in the Unreal editor, begin by expanding all the socket data in UAssetGUI, you should see both a socketname and a bonename property. The socket must be created on the specified bone and be renamed to the correct socketname. Some sockets will have additional information such as RelativePosition, RelativeRotation, RelativeScale etc. Expand those and configure them with the correct values - IMPORTANT note here, UAsset will show RelativeRotation as a vector of (pitch, yaw, roll), in the editor they correspond to the vector (Y, Z, X). Yes make sure you read the RelativeRoation as Y, Z, X in that specific order! And this applies to all rotation based vectors and nothing else (RelativePosition and RelativeScale are both X, Y, Z)!

12.jpg

12. After you're done adding and configuring all the sockets, right click on every single one of them and choose 'Create Mesh Socket'. This will duplicate the socket onto the mesh itself (you don't need to reconfigure). Save the mesh and now you can finally cook the project for windows, make sure you have set your build settings to 'Shipping'.
13.jpg

13. After cooking, go to where the Unreal project is located, in this example it is contained in '[Your project name]\Saved\Cooked\WindowsNoEditor\[Your project name]\Content\Art\Character\Cloth\00003-북미전용속옷\GonF\Mesh' and open the mesh asset with UAssetGUI.
14.jpg 15.jpg 16.jpg

14. Open up the vanilla game asset with another UAssetGUI window, expand the 'Export Data'and navigate to 'SkeletalMesh'.

15. You should be able to see many variables and references here, including the name of the skeleton, physics assets, clothes physics and sound sets. The 3 most important properties to look out for are 'AniScale', 'AutoScale' and 'EffectScale'. Copy those names, the types, the values and paste them into 3 new rows of your cooked mod mesh.
vanilla asset.jpg

16. Save your newly modified UAsset, and you're almost done!

17. Now if you recall what I said earlier, anything that you didn't change must be deleted before the repacking process. So go back a few folders and delete the entire 00001_JinM folder since you didn't change the skeleton. Delete the material if you didn't make any changes to it. Delete the physics asset if you didn't make any changes to it. And delete the textures if you didn't change it.
17.jpg 18.jpg 19.jpg
The fun part is when you do happen to make changes to these assets, because if you do make changes to any of these assets, you will need to reverse engineer them as well in the case of material and physics. Remember, when you added the sockets to the skeleton in the previous steps, you're only doing it so that you can implement the sockets into the body mesh as well, the skeleton is not changed simply because you are making some mesh edits and not a custom skeleton. Therefore, you do not need to repack the JinM skeleton back into the mod.

However, if you do make changes to the skeleton, I would highly suggest you make an outfit specific reference instead. By that, I mean if you want to change 00003_GonF skeleton, make the mesh reference 00003_GonF_Skeleton instead of JinM skeleton.

18. After all that is done, you should only have the folder containing the mesh asset now. Repack it using the correct folder structure and you're finally finished with a fully working mesh mod!
20.jpg

In-game results, as you can see I have removed the bra, I also removed the underwear entirely. Either way, NC$hit decided to flip everyone the bird and never even made a full body mesh to begin with. Many outfits in this game, particularly Gon female versions tend to have a half deleted mesh, either due to the devs incompetency or to cope with breast clipping. Nonetheless, the mesh works with no other problems. Of course, when you're actually doing a full body overhaul, you will most likely be changing the skeleton, body mesh, physics, materials and textures. You just need to follow the same kind of process as mentioned above for the body physics.



Conclusion

Making mesh mods in Blade and Soul requires a fairly advanced level of Unreal Engine knowledge. You're basically using UAsset GUI to reverse engineer various asset references and parameters just so you can recreate these same assets using UE4 editor. The lack of interest in modding MMORPGs, the fact that Blade and Soul was a niche game, combined with the lack of proper tools meant that there were some extra special steps that needed to be taken to make mods properly. It was always possible initially, just that nobody or rather not enough people bothered with it.
 
Last edited:
Top Bottom