Skinning just one part of mesh say(hairs) to just one bone (head bone), instead of entire bone chain

Hello, I’m new to Blender recently switched from Maya.
So my question is pretty simple I wanted to skin just the hairs to my character, but what everyone is doing is selecting the mesh(hair) and then the entire rig and then skin, but this way the entire bone vertex group is added to the mesh where I just needed head bone vertex group. I know I can manually remove the unwanted groups but it doesn’t feel good. Hope you understand my question. (One more thing i don’t want to parent the mesh) .
Thanks.

If the object is rigid, you could parent it to a single bone instead of skinning it.

To do that:
-Select the object
-Then select the armature
-Switch to pose mode
-Select the correct bone
-Press ctrl+p and choose set parent to bone

1 Like

Thanks for helping, but I’ve already mentioned in the question i don’t want to parent the mesh.

Hi @amitkuliyal,

In your armature, take a note of the actual bone name that you want to skin the hair to. Let’s say it’s ‘Head.001’ as an example ( or whatever name you have assigned ).

Select the hair mesh, and in edit mode assign all the vertices ( weight = 1 ) to a new vertex group. Rename this vertex group with the exact same name as the bone mentioned previously ( eg Head.001 ).

Back in object mode, add the armature modifier directly to the mesh from the modifier panel ( it’s the first in the column marked Deformers ).

Select you armature in the ‘Object’ slot.

image

You’re done. So long as the vertex group of the hair is a valid bone name for this armature it will bind those specific vertices to that specific bone.

Hope that helps,
Cheers,
Dj.

Thanks, Damian, this is definitely a way to go, but this is a bit longer as compared to just selecting the bone(head in this case) and selecting just the hairs and press skin option(this is how it used to be in Maya that’s why I’m curious to know if there is any way to do achieve this in blender easily).

Sorry for that!

As far as I know, skinning a part to a single bone can be done only by assigning the weight manually. A big reason for that kind of difference is that in Blender, the entire skeleton is a single object, unlike in Maya where each joint is an object.

Blender’s rigging system isn’t the most user friendly and could use some work. It’s not that Blender has a bad system, it does the job even if it does it in a slightly convoluted way. In my opinion, it’s more that Maya has a really good and flexible rigging system.

If you dislike removing the unused groups, there is a way to do it all at once. You lock the group you want to keep and then delete all the unlocked groups:
delete_groups

2 Likes

I agree. In fact I use the method that @etn249 has detailed - the delete unlocked. In an ideal scenario what you want is to be able to select vertices ( in the regular way) in WeightPaint mode since that allows assignment to specific bones, but at the momenmt weightpaint only allows actual painting, which in this case would be no more efficient than the methods outlined. Ho-hum.

There’s a vertex mode in weight painting, which allows you to select vertices for assignment. (Or, for masking.)

Selection tools for it are limited, but you can tab into Edit for full selection tools then tab back to weight paint, which will preserve the edit mode selection.

Their are other methods for assignment: ctrl g “Vertex Groups” menu, sidebar/item/weights panel buttons.

In general, I don’t find it difficult or slow to assign a single object to a single bone’s group, but it probably helps that I’m comfortable with most of Blender’s tools for finding and assigning weight paint. I think there is plenty of room for improvements to auto-weights, and I would love to eventually see some addon that generated weights from a subset armature, containing only bones matching some particular text pattern like “head” or “coat”, which would be useful for a lot more than single bone assignment, but would do that too.

1 Like

Thanks, I shall explore :slight_smile:

Thanks for the help guys,
So, to summarise, there is no method to simply bind a single mesh to a single bone.
However, there are a number of ways we might achieve this:-

  1. Parent the mesh to the skeleton with emmty vertex group option(ctl + p), then manually assign all the verices to the appropriate vertex group (if desired, remove remaining unneeded vertex groups by locking the one we want, then selecting “Delete all unlocked groups” from the drop-down menu).
  2. In the mesh, manually add the Amature modifier, then create a vertex group in the object data properties tab and name it after the bone you want to skin the mesh to, then select all the vertices in edit mode for mesh and add them to the vertex group we just created.

This is just to help others to find all information just by reading this one.
Thanks again, everyone. (just let me know if i missed anything)

1 Like

There is :slight_smile: Grab mesh, grab bone, Ctrl+P, Parent To Bone

the question was to skin not to parent.
Thanks.