3
$\begingroup$

So here's my problem : I'm rigging a human skeleton. I've already modeled my bones, rename them, create my rigging bones, etc.

Now, I'm off to weight paint. Since it's a skeleton, and therefore a non deformable object, all bones have a 0 or 1 value to all their vertex. I've parented my skeleton to my mesh with empty groups and now I'm applying my vertex groups. Easy stuff. Select my object, go to edit mode, select the right vertex group, select all vertices aaaand assign. Boom. Done.

The thing is, I have a loooot of bones in my skeleton (like all the little wrists bones) and I'd really want to assign my vertex weight to several objects. But when I do my manipulation with several objects selected, it only applies to the active object.

Since doing all bones 1 by 1 would take forever, I wanted to know if there was a solution to my problem.

I've tried several solutions :

  • Merging all bones into 1 object works, but it destroys my naming (and again, lots of bones. Took a long time to name).

  • Copying vertex groups doesn't work, since the topology between my bones are different (obviously).

  • Geometry nodes or python seems to be able to help. But I suck at those. Sooooo, I've had bad results.

I'm actually surprised that this is not a more common question, because I've tried to find a solution online and nothing came out. I guess I must be doing something wrong.

What do you all think?

$\endgroup$
2
  • $\begingroup$ Hi. You don't need to merge all bones into one object. You can select multiple objects and switch to Edit mode. There you can select the vertices of the different objects and assign them to a vertex group. $\endgroup$
    – Blunder
    Jan 19 at 15:15
  • $\begingroup$ Hi. Unfornately, this doesn't work. It only applies vertex weight to the active object before entering edit mode, not all your selection. $\endgroup$ Jan 22 at 13:06

2 Answers 2

3
$\begingroup$

If the meshes are not to deform and they are different objects, the most efficient way to parent is: select one or more objects, shift select the armature, go to pose mode, select the relevant Bone, press Ctrl P > Bone.

This system doesn't use vertex groups, neither armature deform modifier, just direct mesh to bone parenting.

If you need the Armature modifier/Vertex group system (maybe to be exported to others softwares), you can use your method, but while in edit mode, use Ctrl click on the outliner to switch between selected objects to turn them active one by one.

enter image description here

$\endgroup$
1
$\begingroup$

Answering the explicit question, even though, yeah, Sanfelici is right, you're probably better off bone parenting in this particular situation.

Merging all bones into 1 object works, but it destroys my naming (and again, lots of bones. Took a long time to name).

Parent all objects to armature with empty groups to create groups. Duplicate all mesh objects, merge the duplicates. Paint the duplicates. When done (or live, if performance allows), data transfer vertex groups onto the named, individual objects by "nearest vertex" mode. Can use ctrl L to copy modifiers from active to selected, so you only need to set the data transfer modifier up once. (You'd have to hit "generate data layers" for each object individually still, but you don't have to do that for any object, because they all have all the groups anyways, from the empty group parenting.)

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .