Hello all - I am relatively new to weight assignment in Blender. I am running into an issue when assigning weights, which I will try to explain as clearly as possible.
Let’s assume that I am working on a model made of multiple elements, with some elements in need of being maintained as hard, non deformable parts (like a metal shoulder pad). The whole model has to be maintain as one mesh, therefore splitting such parts out is not an option.
After an initial weighting pass coming from automatic weighting or weight transfer from another model, I am (expectedly) ending up with a shoulder pad receiving influences from multiple bones (let’s call them bone1 and bone2). Also let’s assume that my skeleton is setup in such a way that the proper bone supposed to drive the shoulder pad is “bone1”.
My expected way of dealing with the issue consists of :
- going to edit mode
- selecting all the verts of the shoulder pad
- going to weight paint mode with “vertex selection masking” enabled
- going to the vertex group list
- highlighting bone1
- assigning 1.0 to it.
However after doing so I notice that bone2 is still influencing the shoulder pad with the same weighting as before. Therefore I am looking for a way to remove such influence, because I do not want any unwanted deformations to happen after export, and I do not want the total of bone influences to be superior to 1 for any vert of my model. At the moment what I do is to go through the whole vertex group list bone by bone (with shoulderpad verts selected), manually clicking Remove each time so that these verts do not get influenced by unwanted bones - but this is of course an inefficient method that I wish to automate.
Therefore my questions are :
- How do I remove the currently selected verts from all groups/bones influences other than the currently active one in the Vertex Groups list ?
- Is there a way to tell Blender to remove all other bone influences when assigning 1.0 to a given bone ? I would naturally expect the weighting to normalize everything while doing so (therefore removing the influence of all other groups when assigning a value of 1 to a given group) but I must be missing the option.
- More generally : I want to be able to type in a definitive weighting value for a certain bone influence (not only 1.0, but anything else really : 0.25, 0.5, and so on), and have all the influences of the other bones be normalized accordingly to accommodate for it.
(Also note that in the scenario of the shoulder pad I would like to avoid any usage of the weight painting tool, since I need to be sure that all verts are without a doubt set to 1.0. Organically painted weight assignments are therefore not acceptable.)
I hope this makes sense ! Thanks a lot for your help on this topic.
[edit] : it seems like clicking “normalize all - All Groups - Lock Active” with shoulder pad verts selected does remove the influence of “bone2”, so that seems like a good fix for after the fact. However the question of automatically removing such rogue influence as soon as 1.0 is given to a given bone remains. Thanks !