-
Notifications
You must be signed in to change notification settings - Fork 2
Unity‐chan Spring Bones Tutorial
This tutorial should be followed after the Costume tutorial as it relies on the Unity-chan Blender and Unity projects.
At the end of this tutorial, you will have a tail for the Unity-chan costume that moves around like this.
2026-08-01.00-44-39.mp4
Recall how we had some animations to test the Unity-chan model with in the costume tutorial. Animations like running and attacking are animations driving by keyframes on a timeline.
In the game, there is another type of animation that is physics-based. Things like hair and parts of clothes move and sway in the wind, and also react to character movement. Unlike the running animations for example, there aren't any keyframes associated with these physics. These types of simulations are driven by spring bones.
Spring bones exist as an interaction of two parts - bones like we saw in Blender previously, and a Unity component.
The bones and weight painting define which parts should be influenced by the physics, and the components provide instructions to the game on how they should move.
We'll be starting in Unity first. Using the Dumper (guide to come), dump Merrin's uBody into your project. The full path is:
Data/StreamingAssets/aa/Switch/fe_assets_unit/model/ubody/cav2cf/c452/prefabs/ubody_cav2cf_c452.bundle
Once her model is dumped, you should be able to find it here:
With your Sample Scene open, drag-and-drop Merrin's uBody prefab into the scene like this, then use the eye button to hide any other models in the scene.
Then, press the Play button in the middle of the top bar.
After a bit of loading, the Editor will jump to the Game tab.
Click on the Scene tab again to jump back to looking at Merrin's uBody.
You should see something like this. Notice how the tail is swaying and so is the cravat (or whatever the white ruffled cloth on her chest is called).
merrin.example.mov
Stop the playing by clicking play button again.
Now, open Merrin's uBody prefab by clicking on it in the Hierarchy, the clicking Prefab Open in the Inspector.
You should see a focused view like this now:
The list of items under c_trans are the bones that you saw in the animation section of the costume tutorial.
Find the object called c_mngtal_jnt and click on it. (This object would show up as a bone in Blender.)
Notice how a Spring Job Manager component shows up in the Inspector panel. If you scroll around in it, you can see some settings.
Now try selecting a few of the objects below c_mngtal_jnt one by one.
For example here is c_sprtal1_jnt selected.
and c_sprtal2_jnt selected.
And in the side panel, we see a component called Spring Bone.
It also has a lot settings that you can scroll to check out a bit.
Finally, click on the object named c_sprtal1_piv.
Notice how it has a Spring Bone Pivot component.
The Spring Job Manager and Spring Bone and Pivots work together to describe how the physics should be animated.
We'll be copying over the bones and the physics for the tail onto the Unity-chan costume.
We need a certain version of the FBX package in Unity for this next step.
To check if you have the right version, go to Window -> Package Manager
In the window that pops up, make sure the Packages: In Project option is selected.
Look for FBX Exporter (Divine Dragon Edition). If you see only FBX Exporter, you need to switch to our version.
Press the + corner in the upper left corner, and choose Add package from Git Url
Then, paste this address.
https://github.com/DivineDragonFanClub/com.unity.formats.fbx.git?path=/com.unity.formats.fbx
Afterwards, you will have FBX Exporter (Divine Dragon Edition).
We will export this model for use in Blender so we can borrow the bones.
While still in this focused Prefab mode, right click on the root object (uBody_Cav2CF_c452), and choose Export to FBX...
You should see a window like this pop up.
If you don't see the Apply Sommie's Recommended Defaults button, make sure to install the new version of the FBX exporter by doing (this).
If you see Apply Sommie's Recommended Defaults and it isn't greyed out, click it.
You can leave everything set at the defaults, and click Export. By default, this will export the Merrin uBody straight into the Assets folder.
With the uBody_Cav2CF_c452 still selected, go to UTJ -> Spring Bone Window.
You should see something like this:
Under Dynamics CSV, click the Save button.
You should see a window pop up that looks like this:
Click Mass Save Prefab CSVs. This should open a window in your Unity project.
You can make a New Folder called Merrin Physics, and save inside of there.
On the bottom bar, you should see a message saving that the file was saved.
If you look at the folder, you'll see a few CSV files were created there.
If you open it in a spreadsheet editor, c_mngtal_jnt_Dynamics.csv might look something like this
We will use this later to copy settings onto our Unity-chan tail.
We will now be doing a bone transplant to reuse Merrin's tail bones for the Unity-chan costume.
First, open your Unity-chan Blender project.
In your operating system, locate the Merrin uBody FBX that you exported (uBody_Cav2CF_c452.fbx) in your Unity project, and drag it into Blender.
The default settings are fine.
You'll see something like this with Merrin's uBody right on top of the Unity-chan work we've been doing.
Shift-click on the eye for uBody_Base0AF_c000 to hide it for now.
Then click on one of the Merrin bones,
and enter Edit mode.
Let's find the tail bones for Merrin.
In the sidepanel, type in c_mngtal_jnt to locate that bone. Note that this was the bone the Spring Job Manager component was attached to in Unity. Once you see it, click on it in the sidepanel.
Clear the search. You will momentarily lose sight of the selection.
However, it is actually still selected. With your mouse hovering over the sidepanel, press the . (period) key.
The sidepanel will flip open to your selection. Note how the parent for this bone is c_spine1vol_jnt.
Now, shift-click on the twirly next to c_mngtal_jnt. These bones are the same ones we inspected in Unity earlier.
We need to separate the bones now from Merrin so we can attach them to the Unity-chan costume base body.
With c_mngtal_jnt still selected, go to Select -> Select Similar -> Select Children, and choose this option.
You should see something like this now:
Then, with your mouse hovering over the viewport, press P to Separate them from this armature.
If this succeeded, you will see a message at the bottom of the screen saying Separated bones
Scroll down in the sidepanel to locate the separated bones.
Enter Object Mode and click on uBody_Cav2CF_c452.001.
Then, scroll up in your sidepanel and find uBody_Base0AF_c000. Click on its eye to show it. Then, Ctrl-click on it.
You should see the tail bones in outlined in dark orange, and the uBody_Base0AF_c000 bones outlined in light orange.
Now, with the mouse hovering over the viewport, press Ctrl-J to join the two armatures.
Notice how the little bone count has increased.
uBody_Cav2CF_c452.001 is also gone.
Twirl open the green uBody_Base0AF_c000.
Notice that the c_mngtal_jnt is not in the right place yet.
Click on c_mngtal_jnt, and enter Edit mode. Your sidepanel may lose view of the bone, so hover your mouse over the sidepanel and press the . (period) key to show it again.
Select it, and scroll down to the Relations section in the Bone properties tab.
In the Parent field, enter c_spine1vol_jnt and accept it.
Press . again with your mouse over the side panel to locate where it went. The bone is now where it should be in the hierarchy - under c_spine1vol_jnt.
Now, shift-click the eye for Merrin uBody_Cav2CF_c452 to hide all of her for now.
And shift-click the eye for the Unity-chan costume twice to show everything.
You should see something like this now:
Return to Object mode.
Next, find the Tale object in the original Unity-chan object. Click the eye to show it.
Reparent it into costume we've been working on. You can drag-and-drag it over meshGP while holding shift.
Now, go back to Merrin and show Cav2CF_c452_Dress by clicking on its eye.
Now, select Cav2CF_c452_Dress and enter Edit mode.
Hover over part of the tail and press L to select linked. You can use Normal mode.
Separate out the tail with P -> Selection.
Return to Object mode, select Cav2CF_c452_Dress.001 and then hide Cav2CF_c452_Dress.
Although the tails are broadly in the same position, Merrin's tail is quite a bit larger than Unity-chan's tail. We can still use a weight transfer even in this situation.
If you wish, you can scale up Unity chan's tale to match up with Merrin's tale.
For this tutorial, will be proceeding with the tails being different sizes, but I will move the tale up a little bit so that its "root" matches where the tail comes out for Merrin.
Open Robust Weight Transfer by clicking the SENT tab.
Set the source to Cav2CF_c452_Dress.001 (Merrin's tail), uncheck Limit Vertex Groups, and then choose Subset: All Groups. Also, since we're transfering weights from the larger tail to the smaller tale, let's lower the Max Distance to 0.001m.
Why do we need these settings?
We need to change away `Deform Pose Bones` because we removed all of the bones from Merrin and moved them onto our base body. With `All Groups` in this situation, we would transfer no weights at all. If we duplicated the bones instead, we could leave Subset: on `Deform Pose Bones`.The settings should look like this now:
Now, select Tale, and delete its vertex groups.
and click Transfer Weights in Robust Weight Transfer. You should see the new vertex groups.
Go to the modifier tab, and change the armature to the base body.
Close Robust Weight Transfer, and hide Merrin's tail.
Click on uBody_Base0AF_c000, and enter Pose position.
Notice that even if you scrub the animation, the tail doesn't move, but rather sticks up in place. This is expected since, we don't have Spring Bone physics simulation in Blender.
However, we can test if the weighting was transferred well.
Enter Pose mode.
And click on any of the tale bones, and try moving them around with G.
You should see the tale moving with the bone!
Remember to apply the scale for the tale.

With the tale selected, Ctrl-A, and All Transforms.
If you wish, you can color the tale with with the instructions in the costume . One interesting thing to note is that the color for Merrin's tail is not quite as red as the parts of her body.
To get a sample of this color, make sure you selected Merrin's tail and enter Vertex paint mode.
Click this little arrow here in the upper right of the viewport.
Then under Lighting, choose "flat".
Now, with the Brush tool selected, press Shift-X, which should turn your mouse into a eyedropped, and click on the tail.
The resulting color will be something like this (hex #260000).
You can copy that value and apply it as a color for Unity-chan's tale like we did in the outlines section.
Remember to turn the lighting setting back to Studio.
Double check that you are only showing the Unity-chan costume in Blender and that all the Merrin parts are hidden.
Then, export with Visible Objects, the scale set to 0.01, and Animations unchecked, as described in this section in the costume tutorial.
You can export it right into your Unity project's Asset folder and overwrite your existing FBX.
Now is a good time to try doing the texture tutorial here.
If you wish, you can reimport your new Unity-chan FBX file, and bake an occlusion map for the tale.
Since we added a new mesh piece, delete your existing prefab, and drag in the updated FBX into your scene.
You should see something like this now. Note that since the tale uses the Skin material, it will already be textured in Unity.
Before making it into a prefab, let's apply the Spring Bone settings we previously saved.
Now we will apply some of the settings we exported from Merrin's uBody earlier onto the Unity-chan costume.
Under the Unity-chan costume object, find and select the bone called c_mngtal_jnt.
Then, open the Spring Bone Window.
Under Dynamics CSV, click Open.
You should see something like this now.
Verify that the Spring bone root is set to c_mngtal_jnt. If not, select c_mngtal_jnt, then click Get root from selection.
Now click Load CSV and Setup, and locate and select the file called c_mngtal_jnt_Dynamics. Then confirm your choice.
You can close the Spring Bones window now.
Notice how there is now a Spring Job Manager on the c_mngtal_jnt object. You can also check that the Spring Bones and Pivot objects are also in the hierarchy now.
You can use Play now to check the result!
tale.demo.mov
Now, make this object into a Prefab, as we did in this section in the costume tutorial.
Build using Divine Builder and let's check the result in-game!
Looking at it on Etie, if you see the tale (tail) moving a bit in the wind, then everything is working!
etie.mp4
If you're using female Alear, equip the costume and try running around a bit.
You may notice that there's something missing from the shadow!
The core body is casting a shadow, and so is Alear's hair. But even as the tail is flailing around, it doesn't cast a shadow.
2026-07-31.00-40-35.mp4
This is because we are missing a ShadowMesh for the Unity-chan costume.
Back in Blender, let's take a look at Merrin's uBody again.
Notice how there is a ShadowMesh_Dress object. Show it with the eye, then focus on it with /.
It isn't her whole costume - just the most salient parts of the shadow that would be noticeable sticking out from the body. Also notice that it has an MtShadow material.
Cancel the focus with /.
Let's make a Shadow Mesh for Unity chan's tale.
First, we need to make a duplicate of Unity-chan's tale.
Make sure you're in Object mode, and run Object -> Duplicate Objects. Then Enter to confirm the duplication.
You will now be selecting the duplicate Tale.

Double click on the name, and rename it to ShadowMesh.
Now, go to the Material tab. It should say Boots right now.
Click on the material ball next to Boots.
Search for MtShadow, and select it.
You won't see anything different in the viewport immediately, but if you hide the original Tale, you'll see an uncolored tale remaining.
This is expected since we don't have any textures for the shadow mesh as it's just a shader.
Make sure everything is unhidden, and export the costume again.
Jumping back into Unity, re-drag out the Unity-chan FBX into the scene, since we have now added a mesh piece.
Open up meshGP and select the ShadowMesh.
Scroll down to the Mt Shadow (Material), and click on the Shader dropdown and search for Shadow.
After you apply, it should look like this.
You can flip over it to look at some settings, but there's nothing we need to change.
Delete the old Unity-chan prefab, and remake the prefab with the new Unity-chan object.
Also remember you need to reapply the spring bones settings before you build!
The tale now has a shadow.
2026-08-01.00-44-39.mp4
This is the end of this tutorial.
You can try to tweak the tale to have physics more to your liking! For a comprehensive guide on editing springbones and making your own, go here.
You can add spring bones to the other parts of the Unity-chan costume that might move, like the little tag on her stockings and wrists.
Thanks to Redundo for testing this tutorial!
Lythos, the Engage modding Wiki • Resources • Getting Started • Cobalt Wiki * Discord Server
Getting Started
Modding guides
- Game data
- Models and Unity
- Animations
- Audio
-
Maps
- Dumping Vanilla Maps
- Playable Area
- MapSetting
-
Terrain
- Terrainpaint
- Props
- CameraSet
- Exporting
-
LightSet
- Lightmaps & Environmental Lighting
- PostProcessSet
- Post-Battle Exploration
- HubRoot
- HubCollision
Documentation