< Return to tutorials

Creating tails, wings and other accessories with VRoid

VRoid has seen a lot of popularity recently, and it has been used in plenty of creative ways. One of the frequently request features, however, is the ability to create hair strands that aren't attached to the head, to create tails, wings and other accessories. While it is not possible to do it in VRoid itself, the model can be modified afterward to allow this.

First, you need to create a new freehand group, and move the grid to where you want to create your accessory. You can move it by dragging each individual point.

Then create hair strands the way you normally would

Make sure to create a bone group as well, as it is necessary to reattach the part properly

Export the model as VRM, but make sure in the exporter settings to uncheck Enable Hair Combination

Now, the next step will require you to use Unity. You can download it for free on the website. Any version is fine, but recent versions are recommended.
Create a new project and import the latest version of the UniVRM package from here into your project.
Now, place your VRM file somewhere within the Assets folder of your project. It should create a number of files automatically.

One of these files is the prefab. Place it in the scene, and it should appear in the hierarchy. Right-click the character in the hierarchy and choose "Unpack Prefab"

Then, unfold the content in the hierarchy, then Root, then keep unfolding until you reach J_Bip_C_Head. Inside will be many HairJoints, that correspond to the different hair bones. One of those will be the one of the tail. When selected, a gizmo will appear at the position of the bone.

Then, drag and drop the HairJoint of the tail to the bone you want to be a parent of, for instance the hips for a tail, the spine for wings, etc...

For the next step, you need the BoneWeightTransfer script, that can be found here.

Import the unitypackage inside the zip to your Unity project. Now, unfold the Hairs object. It should contain a list of HairXXX objects. Each one correspond to a hair mesh. When selecting one, you can see it highlighted. Identify all the hair meshes that correspond to the tail.

Now, in the top menu, go to Tools > BoneWeightTransfer. It will open a new window containing 3 fields. In the first field, place one of the hair mesh of the tail. In the second one, place the J_Bip_C_Head bone. In the third one, place the bone you want to be the parent, like the hips.

Then press the button. After this, replace the first field with another tail hair mesh. Repeat the process until you've done it to every hair mesh of the tail. Once it is done, the tail should no longer move with the head.
All you have to do now is export, by using Export humanoid in the VRM menu

And now, you should have a properly working tail!