0
$\begingroup$

I might be asking this question wrong, because I've searched around without any luck.

Basically, I want to automatically weight a specific vertex group to a specific set of bones. In my model, I've got a tree where I want to animate certain branches very specifically. When I try to set automatic weights, lot of vertices from other disconnected branches are grabbed as well, due to their radius.

I've already got each branch split out into vertex groups, but I'm not sure how to assign sets of bones to them in an automatic way.

An example is in the image below - I'd like the 3 bones that I have selected to weight themselves to the selected vertex group.

image of tree in weight paint mode

$\endgroup$
2
  • 1
    $\begingroup$ " I'd like the 3 bones that I have selected to weight themselves to the selected vertex group." - This is impossible. Each bone has its own vertex group assigned by its name. It's a 1:1 relationship. Each vertex group can contain many vertices assigned with their own specific weight. In your case, you have 3 bones and 3 vertex groups. Each group defines the influence of the bones by having vertices assigned to it (=section of the branch). $\endgroup$
    – Blunder
    Commented Sep 19, 2021 at 20:36
  • $\begingroup$ Thanks for clearing that up Blunder, it seems I had a fundamental misunderstanding of Vertex Groups. $\endgroup$
    – lase
    Commented Sep 20, 2021 at 16:55

2 Answers 2

0
$\begingroup$

This is impossible

Auto-Rig Pro binds the mesh to its armature, but can also bind only:

  • the selected bones AND/OR
  • the selected vertices.

What the OP was asking is possible. It's just that Blender might not offer an option (that I know of) by default.

$\endgroup$
0
$\begingroup$

The ironclad, fully general way to do this is to use a vertex group modulated data transfer modifier to copy weights from a duplicate:

enter image description here

Here, I've autoweighted an original to one armature and a duplicate to a different armature (with some shared bone names) and am then transferring vertex groups from the duplicate, but only to the vertices assigned to Group.

This isn't necessarily the fastest way to achieve what you're after, just the way that will work in every situation. I figure that this particular question, especially answered two years late, is focused on the general problem.

Note that the modulating vertex group doesn't have to be all 1 or 0-- you can assign vertices at whatever value, meaning they'll interpolate between original and transferred weights. This can be a useful way to create smooth transitions.

The data transfer should usually be targeting an undeformed mesh object, and it's wise to apply the modifier when happy with its output. As a "modify" type modifier it can be applied even to meshes with shapekeys.

$\endgroup$

You must log in to answer this question.

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