Physic - Stellar-Blade-Modding-Team/Stellar-Blade-Modding-Guide GitHub Wiki

Overview

Important

In this document we will instroduce how to make physic with your custom model or modified it with in game model for Stellar Blade. There are two different methods for Physic editing which are Cloth System(Apex/nvcloth) and Bone physic(Kawaii/AnimDynamics). However the game is using chaoscloth In Unreal Engine, cloth simulations can be attached to bones of a skeletal mesh using the Chaos Cloth system. There are also spring controller for jiggle physic which will be covered as well in this document.

Required Tools & Plugin

For Cloth Simulation it's an inbuild feature in UE which means you only need to have the engine installed.

For bone physic, we now have kawaii addon working for Stellar Blade also AnimDynamics which is also an inbuild feature in UE.

Cloth Simulation

Note

In UE game development, both AnimDynamics and cloth systems are used for creating realistic movement, but they serve different purposes. AnimDynamics is a low-performance physics solver for secondary animation, while cloth simulation simulate the behavior of fabric, like clothing, often using more complex simulations. AnimDynamics is useful for items like necklaces or wires, while cloth systems are used for more complex, deformable objects like clothing. You can also use both methods to reach the result you want for your mods.

Workflow in Blender

For in game model

In game models often have everything parented and weighted properly since the game use both bone and cloth system as a combination. We will use CH_P_EVE_09 Diving Suit as example, the "wings" that were wrapped around the arms will lost physic during reimport in UE since its using Chaos Cloth. We will manually paint the physic back on the wings in UE to show you how it works with cloth simulation.

*Example CH_P_EVE_09

Desktop.2025.06.26.-.09.19.24.10.mp4

For custom model

You will need to have your "ready for physic" mesh pieces parented to the Armature. If its for a dress for example, You are going to add cloth physics to main part of the dress later in UE . So, In blender you should assign the correct vertex weights and Hip bone on your dress since we need cloth physics below the hip 'Bip001-Pelvis. That means your dress will follow the movement of your characters Hip bones.

image

Workflow in UE

For in game model

We have made a video to show you the process of making Clothing Simulation in UE. This doesn't include steps of making proxy mesh and collision setups with physicsasset since in game model already have collision prepared for you, and we will need proxy mesh most time for custom model. This is an simplified example for beginners and the painting was in a rush so try not to follow that part and test with different values and options yourself in clothing tab. We will cover more details in custom model physic section.

Desktop.2025.06.26.-.11.55.30.04.1.mp4

Once you imported model in UE, move everything to the right folder and make sure names are correct by Inpsecting asset info.

Double click on the skeleton mesh. Enable Select Section.

Select the mesh part you want to add cloth physic with> Right click and create cloth data from section

Right click again and Apply Clothing Data> Select the Clothing Data you created for your Skeleton Mesh> Assign PhysicsAsset in the tab if it didn't

Once its assigned with the Clothing Data, navigate to Clothing Tab and click Activate Cloth Paint

The paint value is the key to how the physic behaves in game. In tool settings, you can change Paint Value from 100 to 0. At the bottom of the wings it should be assigned with higher value since it doesn't attached to the body. From the top part of the wing it should have lower value since its getting closer to the actual body. For the part that gets directly attached to the body, you can leave it as not painted so it won't simulate with the cloth physic.

In visual we will use this image as example.

image (2)

Black is value 0 and white/grey is increased weight.

For the wings you can paint from bottom till the top for value 100 to 70 to 40 to 10 and so on.

Use value 10 to 0 where the cloth is directly attached to the body. Since it will have movement with shoulder bones we don't need it to have cloth physics assigned. So the cloth physics will mostly be noticeable for the rest part of the wings.

Once you finished Painting, Click Save and Click Deactivate Cloth Paint in cloth tab.

Warning

Make sure your PhysicsAsset is named properly for your Skeleton Mesh by Inspecting PhysicsAsset Info. We will need to assign it to PrimaryAssetLabel for collision data later. Make sure you changed Physic Type in PhysicsAsset to Kinematic following by this solution. Otherwise your model will behave as a ragdoll and sink under the floor.

For custom model

Work in progress.

Chaos Cloth System

Note

The cloth system doesn't directly use bones for simulating cloth physics. Instead, it utilizes a particle-based system called Chaos Cloth, which simulates the behavior of cloth by treating it as a collection of interconnected particles. While bones are used for the underlying skeletal mesh and its animation, the cloth simulation itself is independent and interacts with the skeletal mesh through collision and influence.

You can create a proxy mesh (low poly object) for the part that's gonna uses for Cloth System as cloth asset. Later we need to assign it to the Chaos Cloth component in UE.

If there is no proxy mesh, you should be able to create the cloth data from the part you are trying to use chaos cloth on. (7th diving suit wings, for instance)

If there is a proxy mesh, you need to make sure that when you create the cloth data, you remove it from the mesh.

By using Cloth System it allows for realistic draping and movement of clothing on animated characters. The process involves creating a cloth asset, configuring its properties, and then binding it to a specific bone or set of bones within the character's skeleton.

Step 1: Creating a Cloth Asset

Import or create a cloth mesh:

This can be a separate mesh or a part of an existing character mesh.

Alternatively, use the Clothing Tools in the Editor:

This workflow enables direct authoring of clothing assets within the engine.

Step 2: Binding the Cloth to a Skeletal Mesh

Add a Chaos Cloth Component:

This component is added to the skeletal mesh actor in the level.

Assign the Cloth Asset:

You select the cloth asset you created earlier and assign it to the Chaos Cloth component.

Configure Collision:

You can set up collision between the cloth and other objects in the scene, including the character's own body.

Adjust Simulation Parameters:

The Chaos Cloth component provides various parameters for controlling the cloth's behavior, such as stiffness, damping, and collision settings.

Step 3: Bone Binding

Define Bone Influence:

The cloth simulation can be influenced by specific bones in the skeletal mesh. This is typically done through skin weights, which define how much each bone affects the cloth's movement.

Collision with Bones:

You can also set up collision between the cloth and individual bones, or groups of bones, to prevent the cloth from penetrating the character's body.

Step 4: Testing and Iteration

Simulate in Editor:

Use the editor's play mode to test the cloth simulation in real-time and make adjustments to the cloth asset or its parameters.

Optimize for Performance:

Consider optimizing the simulation for performance, especially for real-time applications. Techniques like LOD (Level of Detail) and caching can help.

By following these steps, you can effectively integrate cloth simulations into your UE projects, creating more realistic and dynamic character clothing for your mods.

Work in progress.

AnimDynamics

Note

In Unreal Engine's AnimDynamics, bones are used as reference points for applying simulated physics to objects, such as accessories or clothing on a character. The AnimDynamics node allows you to select a bone on a skeletal mesh and apply dynamic motion to it, controlling how it reacts to the character's animation and other forces. For that to work in the first place, you would need to have your mesh assigned with bones for physics.

Workflow in Blender

*Example AP_CapeR02

Desktop.2025.06.21.-.12.53.20.11.mp4

AnimDynamics in UE relies on a character's existing bone structure to simulate dynamic secondary animations. It uses the bones as a framework for creating chains and applying constraints, allowing for realistic movement and collisions. As long the model have its "physics" part assigned with vertex weights and bones it will work in UE for AnimDynamics.

Workflow in UE

Tip

Here is a short introduction of every settings and options. Each options has its own roles within AnimDynamics in UE.

Reference Point: AnimDynamics uses a bone as a reference to determine where the dynamic motion should be applied. For example, you might select a character's arm bone as the reference for a dynamic shoulder pad.

Bounding Box: You can define a bounding box around the selected bone to control the area where the physics simulation will be active.

Local Joint Offset: This offset determines the reference point for the constraints applied to the dynamic object, relative to the selected bone's joint.

Constraint Settings: You can adjust constraint settings like stiffness and damping to control how the dynamic object reacts to movement and collisions.

Dynamic Motion: By adjusting these settings, you can create effects like clothing that reacts to wind or a character's movement, or a weapon that bounces realistically.

Continuous Dynamic Chains: You can also use AnimDynamics to create continuous dynamic chains of bones, where the motion of one bone affects the motion of the next.

Work in progress.

Spring Controller for Jiggle bone physic ( wrote by Misberave)

This is a tutorial on how to enable jiggle physics for breast and literally everything you want. It works universal for UE engine games so you can now use this method for Stellar blade.

Jiggle.Physics.Tutorial.mp4
  1. First you need to create an animation Blueprint on your mesh which will be assigned to the skeleton automatically ONLY, you cannot duplicate or reuse it for another skeleton later, it is strictly bound to the one you created it for.

  2. Then you create the nodes from the video, and one "Spring Controller" for each Bone you want to assign jiggle movement to.

The Jiggle will only affect the weight painted areas that are assigned to the bones

  1. After that you set up the values.

The Values for each Bone are as followed:

Spring Stiffness: The more, the stiffer

Spring Damping: Damps the jiggle, the higher, the sooner the jiggle will end, the lower, the longer the jiggle will "swing"

Max Displacement: Determines how far awar from the bone the mesh will move away from, best to set it to 1,5-3 max.

For Breasts you should start with 400 stiffness, 10 Damping and 3 max displacement. Brings good results in lobby and then adjust from there.

These are the only settings you need to change. Keep in mind for ingame you need to crank up the damping alot more cause the movement is way more than in the lobby. I set it to 120 for my Squirrel Girl mod.

  1. After you created the nodes, you can test the jiggle a bit when you press "Compile" in the left preview window multiple times, thats the only preview you get in the engine.

  2. The last step is to add the Blueprint as "post processing animation blueprint" inside the settings for your Mesh.

Make sure you package the animation blueprint with your mod and thats it.

Known Bugs and Issues

Missing physics after import & solution:

Original unmodded model before import in game :

Stellar_Blade_2025.06.11_-_08.45.13.03.mp4

Imported model with missing physics on cloth in game:

Stellar_Blade_2025.06.11_-_08.43.08.02.1.mp4

Note

The model might missing some part of physics after importing to game since some part of the model are using chaoscloth for physics. This has nothing to do with either assigning AnimBP or PhysicsAsset.

The part of the missing physics might already have been rigged. However, being rigged doesn't mean that game devs can't use chaoscloth with it.

image2

Method 1: Activate Cloth Paint

To bring the physic back from missing, you'll have to weight-paint that part of the mesh with this UE inbuild Acitive Cloth Paint feature.

image3

By weight painting on the part that has physics missing in UE, it means the new physics you made wont have the same result as what the original physic game has on the mesh part. By making your own customized cloth sim physic on the cloth, it will at least not be static anymore.

You can find more details from Cloth Simulation guide.

Method 2: Assign dummy Animation Blueprints(found by Swood Aneue/kesshin7/Minervha)

The simple fix for missing cloth physic is by creating a dummy AnimBP and assign it to your skeleton mesh in UE. Do not assign chunk or add the dummy AnimBP in PrimaryAssetLabel. However, this method works only for bone based physics. For suits like Crimson Wings that use Chaoscloth which is a different physics implementation, you will have to create chaos cloth physics manually.

Desktop.2025.06.19.-.15.59.42.21.1.mp4

Import .uemodel with "Import Sockets" disabled

Export .fbx using Njaecha and ByLemi21's FBX importer (Invert Bones Fix enabled)

Import .fbx to UE

Right-click model and create new Animation Blueprint

Rename and move AnimBP accordingly (check for vanilla path and name in FModel)

Assign dummy AnimBP to model, do not assign it to PrimaryAssetLabel

Warning

If you assign dummy AnimBP to your Skeleton Mesh, you basically can't add your own post process physics so make your own choice what's good for your mods.

Method 3: JsonAsAsset Import

You can use JsonAsAsset to import the json of original clothphysics asset.

In Fmodel: Export the physicsasset by right click on the selected asset> Save properties(.json)

Download JsonAsAsset and follow the installation steps from the tool page, install the plugin in your project.

This will help you to import the original clothphysic asset to your content browser. You can make any edits base on it. Keep in mind you still need to make dummy AnimBP and assign it to your skeletal mesh for bone based physics.

Heres an example to restore Cloth Physics on Black Kunoichi dress by Member Text-Document.

Step 1: UE Import

Create or import a finished mesh in Blender, export it and import it into UE.

Both the jacket and skirt (the non-proxy mesh one) use the MI_CH_P_EVE_16_Suit material, but when decomposed by material in Blender, they become separate objects. (Since different objects reference the same material, it shows as 2)

BlackKunoichi has two skirt meshes: one for in-game display, and another for cloth simulation (often called a proxy, which is not visible in-game).

In UE, you must assign the proxy mesh's clothing data to the skirt (the non-proxy mesh one). Therefore, rename the skirt part to something like MI_CH_P_EVE_16_Suit_001 and reassign the material to the mesh. This name can actually be anything. The jacket remains as MI_CH_P_EVE_16_Suit.

Step 2: Assign AnimBP

Right-click in UE, create a Blueprint Class, place it in the Blueprints folder, and rename it to “CH_P_EVE_16_AnimBP” according to the Fmodel information.

image image (1)

Assign the CH_P_EVE_16_AnimBP you just created to the Skeletal Mesh.

image (2)

Export CH_P_EVE_16_Cloth_Physics.uasset as a .json file in Fmodel.

image (3)

Step 3: JsonAsAsset Import

Click the Execute JsonAsAsset button and select the JSON file you just output to create CH_P_EVE_16_Cloth_Physics. As per the Fmodel instructions, rename the asset on the far right of the image from CH_P_EVE_16_PhysicsAsset to CH_P_EVE_16_Physics.

image (4) image (5) image (6)

Step 4: Assign Material

Place materials in the Materials folder. Note the save location for MI_CH_Matgray.

Assign a material to the mesh.

image (7) image (8)

Open CH_P_EVE_16.asset in Fmodel and search for proxy to find that the mesh assigned the MI_CH_Matgray material is a dummy mesh for cloth simulation (not visible).

image (9) image (10)

Step 5: Create Clothing Data

Create ClothPhysics.

Display only the proxy mesh> right-click the mesh> create the Clothing Data.

The name can remain as the default. Check the box for Remove from Mesh. (The image shows work in progress for another mod, so ignore the non-default material assigned to the skin mesh.

image (11)

Right-click the display skirt (the one that isn't a proxy mesh) and assign the Clothing Data you just created.

image (12)

Select Window→Clothing

image (13)

Looking at CH_P_EVE_16in Fmodel you'll find the following description. Searching for terms like LinearDrag is recommended. Set the same value for each clothing data entry.

image (14) image (15)

In Config: change the Physics Asset to the CH_P_EVE_16_Cloth_Physics you just created.

image (16)

Press Activate Cloth Paint to display only the proxy mesh. Select Clothing Data and paint. You can follow the video from Cloth Simulation guide to learn how to cloth paint in UE.

At last only assign Skeletal mesh and Physics Asset in the Data Asset.

image (17)

Package your project by following this page

Ragdoll bug with PhysicsAsset & solution:

Stellar_Blade_2025.06.11_-_07.41.31.01.1.mp4

Note

If you have PhysicsAssset renamed correctly according to Fmodel and added it in your PrimaryAssetLabel from step of packaging mods, It might leads to ragdoll bug and being invisible most of time after model sunk underground in game.

Method 1: Kinematic Physic (found by Code Breaker Umbra)

The bug has been confirmed as to be tied with Physic Type setting in PhysicsAsset. What you need to do to fix this bug is to go in your Uproject and find your PhysicsAsset:

Click and open PhysicsAsset> Select all of the constraints (green circles on top left)> Find "Physic" tab on the right> Set the physics type to "kinematic"

image

Click Save in PhysicsAsset setting.

Click Save all in UE.

This will prevent it from ragdoll after you assigned PhysicsAsset in PrimaryAssetLabel. Make sure its assigned in your Skeleton Mesh as well.

Ponytail Clipping Fix (by Tentekehls)

If you've edited the size of your character's model from default, you may notice the ponytail will clip through your character's model like below:

Capture

This is due to the ponytail mesh file still pointing to the default collision groups in the Outfit's PonyTail PhysicsAsset. To fix this we will need to update the Ponytail PhysicsAsset's hitboxes to match our new mesh.

Required Tools:

FModel - to export the physics asset

Unreal Engine 4.26.2

JsonAsAsset Plugin in Blender

Optional Tools:

CNS CustomNanoSuit (This is not a guide on CNS as a whole. Review the CNS wiki for more information if you've never used it before)

Step 1: Setup JsonAsAsset

First download the 4.26.2.rar package from JsonAsAsset's release page.

Once it is downloaded open your Unreal Project Folder. By Default this is in Documents > Unreal Projects > SB

Within this folder there should be a Plugins Folder. If there is not then create it.

Capture

Extract the Contents of the JsonAsAsset plugin into the plugins folder. There should now be a folder titled JsonAsAsset in the Plugins folder.

Open Unreal Engine and open your project.

In Unreal Engine, > select Edit > Plugins. Then search for JsonAsAsset. Make sure it is enabled. If it is disabled, enable it and close then reopen Unreal Engine.

Step 2: Extract the PonyTail Physics Collision model

Open Fmodel, and select and load your game files. Refer to Extracting Game Files for more information if you don't know how to setup FModel.

Within FModel Navigate to SB > Content > Art > Character > PC

Within this folder is all of the outfit meshes for the game. If you know which outfit you are replacing, select the folder matching your original outfit mesh.

For the purposes of this tutorial we are going to be using the default NanoSuit: CH_P_EVE_09.

Capture

Once you have selected the appropriate outfit folder. Open Packages in the top.

Within this list you will see many assets for this outfits including:

CH_P_EVE_09_PonytailPhysicsAsset

CH_P_EVE_09_TypeB_PonytailPhysicsAsset

CH_P_EVE_09_TypeC_PonytailPhysicsAsset

It does not matter which asset you start with, for this example I am using CH_P_EVE_09_TypeB_PonytailPhysicsAsset.

Right Click on the Chosen PonytailPhysicsAsset and select Save Properties (.json)

Capture

With the physics asset now extracted, Let's import it into Unreal Engine.

Step 3: Import Physics Asset using JsonAsAsset

In your Unreal Engine Project, Select the new JsonAsAsset Icon from the top as seen in the screenshot below:

Capture

In the File Selector that comes up, navigate to your FModel Export folder and then find your saved json physics asset. This path will match the one extracted from Fmodel.

For me this was located at: \FModel\Output\Exports\SB\Content\Art\Character\PC\CH_P_EVE_09\CH_P_EVE_09_TypeB_PonytailPhysicsAsset.json

Select the file and click Open. This will automatically load the physics asset at the correct directory with the original name.

DoubleClick on the new physics asset to open it.

You will immediately get the following warning:

"Warning: Physics Asset has no skeletal mesh assigned. For now, a simple default skeletal mesh (SkeletalMesh/Engine/EngineMeshes/SkeletalCube.SkeletalCube) will be used. You can fix this by opening the asset and choosing another skeletal mesh from the toolbar."

Select Ok

You will then be given another Warning saying there is no corresponding bones in the Skeletal Mesh.

Capture

IMPORTANT: Click Cancel.

If you click OK then the bones will be deleted and you will have to reimport.

If done correctly you will now see a very unassuming cube in the Physics Asset Editor.

At the top of the Physics Asset Editor, select Preview Mesh and select your custom character mesh.

Capture

You will now see your mesh file and can see the collision boxes for the ponytail on your outfit.

Capture

Step 4: Editing the PhysicsAsset

On the left in the Skeleton Tree you will see the following bone structure. Next to each I have included a description and the number of shapes part of each bone:

Root (1 Box, Ground)
  Bip001-Pelvis (1 Capsule, Butt/Hips) 
    Bip001-Spine (1 Tapered Capsule, Torso) 
      Bip001-Spine2 (2 Capsules, 0-Chest, 1-Traps/Back)   
      Bip001-Neck (1 Tapered Capsule, Neck)   
        Bip001-L-UpperArm (1 Capsule, Left Shoulder/Bicep)    
          Bip001-L-Forearm (1 Sphere - "Do Not Touch", 1 Tapered Capsule - Left Forearm)      
        Bip001-R-UpperArm (1 Capsule, Right Shoulder/Bicep)   
          Bip001-R-Forearm (1 Sphere - "Do Not Touch", 1 Tapered Capsule - Right Forearm)    
      Bip001-Head (1 Sphere - Skull/Top of Head, 1 Capsule - Face)
    Bip001-L-Thigh (1 Tapered Capsule, Left Thigh)
      Bip001-L-Calf (1 Tapered Capsule, Left Calf)
    Bip001-R-Thigh (1 Tapered Capsule, Right Thigh)
      Bip001-R-Calf (1 Tapered Capsule, Right Calf)

Out of these the most likely ones to need to be changed are:

Bip001-Spine2 - Capsule 0

Bip001-Pelvis

If you prefer to do this via Interactive Transformations, here are some helpful keybinds:

W - Move

E - Rotate

R - Scale

Further Documentation on Transformations in Unreal Engine from the developer guide here

I personally prefer to change these assets via Manual Transformations.

To do this select your bone in the Skeleton Tree and navigate in the details pane to the Body Setup Tab.

Under this you will see Primitives, Expand this array and you will see the shapes making up this Bone Group.

For this example let's edit the chest.

Select Bip001-Spine2 in the Skeleton Tree

In the Details Pane navigate to and expand capsule 0 under Body Setup in the Details panel as seen below.

Capture

Under this Capsule you will see Center, Rotation, Radius, and Length.

For directional Reference (Based on Character Mesh's Left / Right):

X: + = Right, - = Left

Y: + = Down, - = Up

Z: + = Forward, - = Back

Center will adjust the position of the Capsule

Rotation will adjust the Roll (X), Pitch (Y), and Yaw (Z)

Radius: The base size of the Capsule

Length: How long the Capsule is. For most shapes this increases the width in the Character Mesh

Play with the values until the capsule's shape more closely matches the Character meshes actual size.

It is recommended the capsule's shape be slightly bigger than the mesh to ensure no clipping occurs. Do not be afraid to move the position of the bone group if needed. These only control the PonyTail Collision and do not affect other Assets.

Repeat on the needed shapes until you are happy with the match. For my mesh this meant editing the Position, Size and Length of the chest capsule (0 in Bip001-Spine2) and the Pelvis Capsule (Bip001-Pelvis).

Finished Physics Asset:

Capture

Step 5: Exporting

If you are replacing base outfits in game: Duplicate your Physics Mesh twice and name each of them to match the 3 original PonyTailPhysics Assets:

CH_P_EVE_09_PonytailPhysicsAsset

CH_P_EVE_09_TypeB_PonytailPhysicsAsset

CH_P_EVE_09_TypeC_PonytailPhysicsAsset

Then package your mod as normal and place in the appropriate folder in game.

PonyTail clipping should no longer be occurring.

If using Custom NanoSuit: Package your mod as normal for CNS with the new PonyTail PhysicsAsset in your Outfits folder in the OutfitMods folder.

Navigate to and open your dekcns.json file.

Under OutfitPaths, add a line for PonyPhysics with the path to your PonyTail Physics Asset.

This should look something like this:

PonyPhysics": "/Game/OutfitMods/TestPhysics/CH_P_EVE_09_TypeB_PonytailPhysicsAsset.CH_P_EVE_09_TypeB_PonytailPhysicsAsset"

Capture

Save your dekcns.json file and clipping should now be fixed in game.

Note that you can only have one PonyPhysics reference per outfit.

If you have multiple Outfits with different mesh sizes in OutfitPaths then you will need to split them up into separate outfits, each with their own UniqueFitID or use OutfitData.

If any parameter in OutfitData is used, including PonyPhysics then OutfitPaths is ignored and you must fully configure OutfitData.

Guide on using OutfitData here

Final Result:

Capture

⚠️ **GitHub.com Fallback** ⚠️