Anytime I have two meshes and try to weight paint the smaller one to my main mesh and move it with the armature it always breaks into smaller pieces. I don't have very much experience with weight painting and I'm confused on why this keeps happening.
Here is the blend file. 
- 7,633
- 26
- 56
- 21
- 4
-
Hello could you please tell what bone you're moving for example? – moonboots Oct 15 '22 at 18:01
-
I'm moving one of the spine bones. I weighted it to the two spine bones and edited the weights in hopes that would fix it but sadly it didn't – CloudCake54 Oct 15 '22 at 18:03
-
You may have some duoubled vertices in that rib-looking mesh. See if merging them can help you. – ruckus Oct 15 '22 at 18:31
-
The odd thing is the mesh is merged but for some odd reason even if it's merged it still breaks apart – CloudCake54 Oct 15 '22 at 18:34
-
Merged or not, it doesn't matter at all. What only matters is the weights assigned to these mesh parts. They should be shared across only the neighboring bones in the hierarchy, and not addition over 1 for each vertex. But to begin with, is this something you modeled yourself? The body mesh seems quite low poly compared to the white/red thingies, to me it doesn't make sense to have this sudden jump in mesh density, such detailing should be in the texture IMHO. – L0Lock Oct 16 '22 at 01:42
2 Answers
As I mentioned in the comments, the issue here is the weight paint.
For ease of use, I joined the white shapes into the body mesh by ⇧ Shift
LMB the white shapes then the body and pressing ⎈ CtrlJ.
Then, select the armature followed by ⇧ Shift
LMB the body and switch to weight paint mode.
You should be able to select a bone via
LMB and see the weights for it.
Immediately by selecting different bones, we can see that the white mesh is fully red, and for different bones. The colors in weight paint indicate how much the current bone influences the mesh. Dark Blue being 0 and Red being 1, aka 100%.
For an organic mesh, influence is rarely at 1, it's often shared across multiple bones. Multiple bones can influence the same vertex, and the addition of all influence should never be over 1 (aside from some special corner cases). That's called Normalization.
A quick way to fix it would be to first go to the menu Weights → Normalize All.
Then, in the options popover, make sure auto normalize is enabled so that you don't accidentally go over 1 when painting:
Now, because you have overlapping meshes that are independent and need to somewhat follow each other, that makes it a bit tricky. And the best solution for that is to avoid the situation to begin with. Hence, I mentioned my concern about this kind of detail looking out of place as a mesh and should probably be made in the texture instead. Otherwise, instead of modeling it as a separate mesh, at least try to make it part of the same mesh so that the topology is made to move together.
Otherwise, if you really can't or don't want to change that, then what you need to do is try to match the weight of the body as close as possible. There isn't any special trick to that, try to get the same colors
- 15,965
- 1
- 20
- 44
You can select the added details object, delete all its vertex groups, add a data transfer modifier, set its Source as the body mesh, enable "vertex data" and "Vertex Groups", click on "Generate data layers", then Apply (Ctrl A) the data transfer modifier.
This procedure will create a new set of vertex groups, in which every vertex is weighted the same way as the nearest vertex of the source mesh.
- 26,917
- 2
- 20
- 40



