Skip to content

Unity‐chan Spring Bones Tutorial

DogeThis edited this page Jul 31, 2026 · 16 revisions

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.

Required:

Blender Unity

What are Spring Bones and what are they for?

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.

Dumping the model

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:

image

Examining the physics with Play Mode

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.

image

Then, press the Play button in the middle of the top bar.

image

After a bit of loading, the Editor will jump to the Game tab.

image

Click on the Scene tab again to jump back to looking at Merrin's uBody.

image

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.

Finding the bones

Now, open Merrin's uBody prefab by clicking on it in the Hierarchy, the clicking Prefab Open in the Inspector.

image image

You should see a focused view like this now:

image

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.

image

Now try selecting a few of the objects below c_mngtal_jnt one by one.

For example here is c_sprtal1_jnt selected.

image

and c_sprtal2_jnt selected.

image

And in the side panel, we see a component called Spring Bone.

image

It also has a lot settings that you can scroll to check out a bit.

Finally, click on the object named c_sprtal1_piv.

image

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.

Exporting the model for use in Blender

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...

image

You should see a window like this pop up.

image

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.

Exporting the Spring Bone information

With the uBody_Cav2CF_c452 still selected, go to UTJ -> Spring Bone Window.

image

You should see something like this:

image

Under Dynamics CSV, click the Save button.

You should see a window pop up that looks like this:

image

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.

image

On the bottom bar, you should see a message saving that the file was saved.

image

If you look at the folder, you'll see a few CSV files were created there.

image

If you open it in a spreadsheet editor, c_mngtal_jnt_Dynamics.csv might look something like this

image

We will use this later to copy settings onto our Unity-chan tail.

Back in Blender

We will now be doing a bone transplant to reuse Merrin's tail bones for the Unity-chan costume.

Importing Merrin's uBody

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.

image

You'll see something like this with Merrin's uBody right on top of the Unity-chan work we've been doing.

image

Shift-click on the eye for uBody_Base0AF_c000 to hide it for now.

image

Then click on one of the Merrin bones,

image

and enter Edit mode.

image

Finding the bones we need

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.

image

Clear the search. You will momentarily lose sight of the selection.

image

However, it is actually still selected. With your mouse hovering over the sidepanel, press the . (period) key.

image

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.

image

Separating the bones from Merrin's armature

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.

image

You should see something like this now:

image

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

image

Reattaching the bones

Scroll down in the sidepanel to locate the separated bones.

image

Enter Object Mode and click on uBody_Cav2CF_c452.001.

image

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.

image

Now, with the mouse hovering over the viewport, press Ctrl-J to join the two armatures.

image

Notice how the little bone count has increased.

image image

uBody_Cav2CF_c452.001 is also gone.

Twirl open the green uBody_Base0AF_c000.

image

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.

image

In the Parent field, enter c_spine1vol_jnt and accept it.

image

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.

image

Grabbing Merrin's tail

Now, shift-click the eye for Merrin uBody_Cav2CF_c452 to hide all of her for now.

image

And shift-click the eye for the Unity-chan costume twice to show everything.

image

You should see something like this now:

image

Return to Object mode.

Next, find the Tale object in the original Unity-chan object. Click the eye to show it.

image

Reparent it into costume we've been working on. You can drag-and-drag it over meshGP while holding shift.

image

Now, go back to Merrin and show Cav2CF_c452_Dress by clicking on its eye.

image

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.

image

Separate out the tail with P -> Selection.

image

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.

image image

Tail/tale weight transfer

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:

image

Now, select Tale, and delete its vertex groups.

image

and click Transfer Weights in Robust Weight Transfer. You should see the new vertex groups.

image

Go to the modifier tab, and change the armature to the base body.

image

Close Robust Weight Transfer, and hide Merrin's tail.

Click on uBody_Base0AF_c000, and enter Pose position.

image

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.

image

And click on any of the tale bones, and try moving them around with G.

image You should see the tale moving with the bone!

Preparing to export into Unity

Remember to apply the scale for the tale. image

With the tale selected, Ctrl-A, and All Transforms.

image image
Vertex Color SidequestIf you wish, you can color the tale with with the instructions in the [costume ](tutorial). One interesting thing to note is that the color for Merrin's tail is not quite as red as the parts of her body. image image

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.

Updating your textures

If you haven't done the textures tutorial yet

Now is a good time to try doing the texture tutorial here.

If you already did the textures tutorial

If you wish, you can reimport your new Unity-chan FBX file, and bake an occlusion map for the tale.

Back in Unity

Setting up the model

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.

image

Before making it into a prefab, let's apply the Spring Bone settings we previously saved.

Applying Spring Bones settings

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.

image

Then, open the Spring Bone Window.

image

Under Dynamics CSV, click Open.

image

You should see something like this now.

image

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.

image

You can close the Spring Bones window now.

image

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.

However, if you look on the ground, you may notice that there's something funny - even as it is flailing around, the tail doesn't seem to cast a shadow! Only the core body is casting a shadow.

This is because we are missing a ShadowMesh for the Unity-chan costume.

Shadowmesh

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 /.

image

It isn't her whole costume - just the most salient parts of the shadow that would be noticeable sticking out from the body.

Let's start by making a Shadow Mesh for Unity chan's tale.

Use dumper to dump Merin

Use export FBX to get an FBX of merin.

Import into Blender

Cut off the bones to transfer onto base engage body.

weight transfer the tail

export CSV from merin

import back onto unity chan

test in game

shadowmesh

setting up our own bones for the ribbon pieces

remarks on oBody: spring bones also work on obody.

Clone this wiki locally