When I join meshes together, the bond between armature bones and meshes is lost

Hello! I am working on a 3D video-game now. I want to import a 3D model from Blender 2.8 to the Godot game engine. My model consists of armature and 110 meshes:

  • 3 for the head and neck
  • 3 for torso
  • 36 for each hand
  • 16 for each leg

For performance reasons, I want to join all these meshes together. But, when I join the pieces together, the bond between the armature and meshes is lost.

What should I do?

Hi, i am afraid you will have to redo the wights.

What is the nature of that “bond”? Armature modifier? Bone parenting? What was it that you did to connect the meshes to the armature?

the fact, i guess, is that you must attach your objects to one having all the weight group names already in the vertex groups list and also, of course an armature modifier, so he ll be able to re-assign correctly the skinning datas.
is it clear?
@Tudor

in other terms. create new group names non assigned

Edit1:

I have redone the weights. But, soon I realised that it would be extremely difficult to paint the weights of this model, because there are many hidden vertices.

In the image from the left, you can find the model, without X-Rays, and you can see how many vertices are, especially due to the ico-spheres, that I used to model the joints.

In the image from the centre, you can find the model, with X-Rays, and you can see how many of these vertices are hidden inside the mesh.

In the image from the right, you can find the model in the Weight Paint mode, and you can see that, due to the hidden vertices, my weight painting brush can’t reach the vertices that are inside the mesh and I can’t paint the weights properly.

That’s why, I decided to create a new model, from a single mesh, using Extruding and Loop Cutting.

It is bone parenting. I wonder if the Armature Modifier would be a better option.

Yes, you guess right. I want to attach all the objects to one. But, in my case, this is a split model, where every bone has one or two mesh objects entirely dependent upon it. So, for this specific split model, I use no weight groups and I don’t touch the vertex groups, because I don’t need this. And I don’t use an armature modifier either.

Should I use the Armature Modifier? Why?
What do you mean by “skinning data”?

In fact, I created another model, using only one mesh, where I created a vertex group for each bone.

Also, I don’t really understand what you are doing in the video.
Could you explain me, please?

If you want them to be one object, it would. A single object can only have a single parent. That’s why you lost “connection” after joining objects.

To paint occluded bits of a model, you can hide verts in edit mode, and they’ll stay hidden in weight paint mode. Or, you can assign weights directly in edit mode, with the assign button in properties/object data/vertex groups. Or, you can disable “front face only” in tool/brush settings/advanced.

1 Like

Because when it comes to animation .bones are the solution for a unique animation clip and copy mirrored poses.
You can assign weight in edit mode with selected elements it’s really easy.

I have tried all your three methods:

Method 1 (hidden inner verts):
In my case, this is not a convenient solution, because of icospheres. If I hide or remove all the inner vertices of a icosphere, the mesh will be broken:

I have to reunite the vertices to the mesh. And there are many icospheres, thus, a lot of work, too much work.

Method 2 (vertex groups - assign button):
This is an awesome and easy method, much more easy and powerful than I expected.

Method 3 (front face only)
I see no difference between when this button is activated and when it is deactivated.

@bandages, thank you for your advices, they will be very useful for the future 3D models :slight_smile:

Yes, I tried this method and it is really very easy. Thank you!