← All ideas
  • Published 13 May 2019

Option to auto-deform but only to selected bones when parenting to armature

Something that I often find myself wishing was readily available was an option when parenting to armature to only automatically weigh to selected bones. I figure this would read like "automatic weights (selected bones)".

77f9960e0203cb3982e9467dc2a7bc99.png

100%

Development Status: Open

Upvote 12 Downvote 0
proceo
13 May 2019

6 Comments

panicq06

Hi. You can already do this. You can simply parent the mesh using Armature deform option (Ctrl+P>Armature Deform). Then go in weightpaint mode, select the bones you want to apply the automatic weights to and go to Weights>Assign Automatic From Bones (in the header of the 3DView). At the end you'll only have vertex groups created for the bones you've selected and they'll be automatically assigned. Moreover, using this method you can recalculate the weights automatically even if groups already exist.

2
Plyro

* @panicq06 * Especially because the functionality is already there, this should be made easily accessible. When rigging characters made up of e.g. 10+ objects (all of which are designed to be bound to specific deformation bones of an armature), going into Weight Paint and following these exact steps adds up. And now repeat for multiple characters. I think a lot of people who do a lot of rigging would appreciate this time saver.

Plyro

Definitely supporting this! For some re-usable armatures I have to toggle the bones' deformation with drivers that I can control from the armature's custom properties. This little addition would finally make this obsolete and bring an end to a lot of weight cleanup.

1
quincy.cgi

this would be a big time saver

1
hatinacat2000

Hi. I thought I already commented on this but let me do it now. Full procedure to parent to only some bones in a rig (if you know a better way please provide reproducible steps--@panicq06 solution is incomplete at least as of 2.92, though it's mostly correct). The key is that the vertex groups with the same names as the bones must already exist on the mesh to reassign the weights in Weight Paint mode.

If you only need to 2 or 3 bones weighted:

  1. Go to the mesh's Object Data properties tab and append the new groups with names matching the names of each bone.
  2. Enter Pose mode, select ONLY those deformation bones (they must be marked "deform" in the Bone property tab!)
  3. Back to Object mode. Select the armature, SHIFT + CLICK the mesh, and enter Weight Paint Mode. From the header menu, WEIGHTS -> ASSIGN AUTOMATIC FROM BONES.
  4. Parent the mesh to the armature using "Armature Deform" because it doesn't assign new vertex groups.

Done.

If you need to weight from several bones, do mostly the same thing, except:

  1. Parent the mesh to the armature first using any method that assigns vertex groups (I use "Empty Vertex Groups".
  2. From the bottom of the vertex group list, delete everything with rapid mouse clicks except the bones whose groups you need. This assumes that this is faster than writing them all in manually like the first method.
  3. Repeat steps 2-3 in the above method.

Done.

I agree that it would make A LOT OF SENSE if this could be done just by highlighting the bones in pose mode and assigning the weights automatically in Weight Paint mode. Unfortunately, that is NOT ENOUGH. The vertex groups with matching names must exist first. Blender isn't smart enough (yet) to generate them for us. If you agree this should be different, please contact the devs.

drevious

Any luck? Assign Automatic from Bones doesn't work correctly in my case