When I try to join many armatures the meshes go everywhere. What Can I do?

I have been rigging this spider like creature. It is composed of many separe/unwelded and unjoined meshes (most of them). Right now it has 9 armatures that I would like to join (1 for its body and face and other 8 for each leg), but whenever I join them the meshes parented to them go everywhere. I don’t see any “Keep transforms” option. I want to keep the vertex group and weight paint I made in the meshes as they are before joining the armatures.

What can I do?

File: https://pasteall.org/blend/6a01e7112ae642e59fb63e5496499d76

Haven’t looked at the file.

First, check your armatures for any duplicated bone names-- ie, make sure every bone that you’re using has a good descriptive name, and you won’t have any name collisions. If you need to rename any bones, do it before the next steps.

You should be working with stuff with applied transforms for rigging. You’re probably not. Select all your objects and unparent them with keep transformation, then unparent -> clear parent inverse. Apply rotation and scale to all objects and armatures. (And you might as well apply loc while you’re at it.)

Make sure that none of your objects have any armature modifiers remaining. (Sometimes, unparenting removes it, sometimes not.) Now join your armatures into a single object. Select your mesh objects, shift select your single armature, ctrl-p parent armature deform.

1 Like

It worked almost perfectly. Unparenting was indeed not working as intended… Some objects even had more than one armature modifier, I thought they were replaced automatically with new parenting. The only way I could unparent its bigger fangs was deleting the armature modifier. Also, unparenting the bones, joining the bones and the reparenting the objects seem to have made it work. The bones were rightly named and most objects had applied transforms, I think what was happening was that I always used set parent with automatic weights (not just parent armature deform) thinking the bones would keep their weight paint… and I’m pretty sure I saw this command working like that in many character rigging I made (characters composed of only one mesh).

Thank you @bandages

If you use parent with automatic weights, it will write over any unlocked vertex groups-- that is, it will replace your weights.

IIRC, it will not change any locked vertex groups. It won’t use them in any way to determine any other weights-- you’ll easily get unnormalized weights-- but it won’t change them.

1 Like

That’s an interesting idea. I didn’t know that locking vertex groups would keep them from changing its weight paint if the armature were to be parented again. I’ll try this next time. Thanks