[WM Guides] How to weight Transfer in Blender
How to Weight Transfer in Blender (2.9+)
(please note my keybinds are set to blender 2.7’s layout.
So some shortcuts may be different.)
Things you will need:
The mesh you wish to transfer weights onto.
The mesh you wish to transfer weights from.
The armature (bones) connected from the mesh you are taking weights from.
Ok. so, you have your mesh made and ready to go, but you have no idea how on earth you can get it to move? Well, I'm going to teach you a nice simple way of doing that via “Weight Transfers” in blender!
Have your unweighted mesh ready. Make sure it has no weights on it at all to begin with. To see if it has weights, have a look in the bottom right corner of the interface (if you have changed your layout you may have moved this elsewhere.)
Click on the green triangle to open this tab. You will see in my screenshot here, my mesh still has weights. To delete these, we will press the “-” button. Once this box is completely clear, then this mesh is ready for its new weights.
Now you want to load in your “weight” mesh. For clothes this would be a vanilla item and would come with an accompanying armature. For what we want, it is best to “unparent” the armature from the vanilla mesh so we can use it for our mesh instead. So after importing the FBX, make sure you have the vanilla meshes, and then select the armature after (order is important here.)
Now you want to go to Object > Parent > Clear and Keep Transformation. We choose this option so that it keeps the vanilla meshes in position so they don't go flying away, making life difficult.
Select all the parts of your vanilla mesh, and join those together. My keybinds for this are Ctrl - J. Select the armature, and let's hide this for now with H. we will come back to this later. Now roughly fit the vanilla mesh to your current mesh. Don’t get too bogged down in making it a perfect fit, because that will be detrimental to what we want it to do. We want to have the mesh still roughly in the same position as this is how XIV understands where the bones are and how they move in game. If you distort your mesh too much, your weights won't look nice at all. So keep that in mind. I've got the plain long skirt here (the green mesh) and my custom skirt (in pink) here. It's not a perfect fit, but it will do for what we need it to.
Make sure you select your vanilla mesh first and then your custom mesh second. Again, the order is important here. You’ll want to switch to “weight paint mode” now. If you selected the parts in the correct order, you will notice now that your custom mesh will be blue, and that the vanilla mesh still looks normal. This is what we want to see. Blue means that the mesh has 0 weights on it. Red means it has “full” weights. More often you will see weights come in a green or a yellow shade, which is fine.
So now you want to go to Weights > Transfer weights.
You should notice that a small box appears in the corner after you do this. Click that box to open this little window. This will help us tell blender what weights we want to copy from our mesh and how to get the best results.
For this I always use these settings:
Vertex Mapping: Nearest Face Interpolated
Ray Radius: 5m
Source Layers Selection: By Name
Everything else you can leave as default.
(side note: if you check out the vertex group box we looked at in step 1, you will now notice that all the vanilla bone weight names have appeared on our mesh. This means our weight transfer was successful and transferred all the weights onto our mesh.)
Now remember where we went to do the weight transfer? This time we want to do
Weights > Normalize All. This removes the annoying error you get from Textools that says “blahblah, major weight corrections.” If you still get that error however, don’t panic. The weights will still work, Textools is doing its own version of “normalize all”.
You can now completely delete the vanilla mesh. Throw it out, begone mesh, we have no need of you anymore! Unhide the vanilla Armature now (ALT - H), and select our newly weighted mesh first and then the armature second. (I have become a broken record at this point. Order is important!!!) We are now going to parent our mesh to the vanilla armature, so that Textools understands that the mesh has bones. So similarly to step 1, except this time we will do an armature deform.
So its: Object > Parent > Armature Deform
And with that, you are done! You can export your model as an FBX and load this into Textools. (remember to rename meshes accordingly etc) Load up the game, and watch your new mesh fly away in the wind.
(or break, because weights are poopie.)