4
$\begingroup$

I'm very new to the topic of weight painting, and have just parented several meshes to a rig.

It all works well, except for one issue at the shoes (the bone of one leg not only drags that leg, but also the other one).

I selected the bone, and then the object that I was having trouble with (opposite shoe), and, sure enough, there was some weight painting on the shoe. I changed the brush to subtract, and dragged all of the levels (weight, radius and strength) up to their maximum. I then tried to remove the weight paint, but it was not subtracted.

Strangely, adding my own weight paint and then trying to remove it works; it is only the auto-generated weight paint that will not go away.Here's my file

Here's my file: http://www.mediafire.com/?s30kckfkhqx8ga4

$\endgroup$
4
$\begingroup$

What causes the problem is the Mirror modifier in the shoes. The Vertex Groups option of Mirror modifier is on by default, and it's unchanged here. That option mirrors weight in vertex groups with symmetrical names. That is, for every pair of vertex groups suffixed with .L and .R, Blender will just match vertex weights in both, even if you only assign weights to one of them.

The problem is, Blender assumes the object's symmetry coincides with armature name symmetry, while your objects are not. Instead of mirroring the left shoe for the right shoe, thereby matches the armature's shoe.L and shoe.R and works as expected, you're mirroring each half of each shoe.

The solution is easy: For each foot, either delete the (unused) vertex group for the other foot, uncheck Vertex Groups in the Mirror modifier's setting, or apply the Mirror modifier.

| improve this answer | |
$\endgroup$
1
$\begingroup$

Well, the first thing you might want to do is to give your bones descriptive names. Then it's much easier to know which vertex groups are relevant for a given mesh. Since the bone names and vertex groups in your case are connected, you just need to rename one or the other and both will have the new name.

enter image description here

The safest way to keep the left foot bone from affecting the right foot mesh is to remove the entire vertex group from that mesh. It'll never need it anyway. This is possible since your character's feet are separate objects.

In case you use just one mesh and removing the vertex group is not an option, instead of setting the weight to 0, remove the verts of the left shoe from the shoe.R group.

So I would suggest:

Name your Bones, so the connection between vertex groups and bones becomes more transparent. Keep them symmetrical with .R and .L suffixes. One way to do it is in the outliner by selecting a bone and Ctrl-LMB on the name. Or use the text button in the Bones section of the armature data.

Then select your right shoe object, select the shoe.L or foot.L vertex group and click the little - sign to throw out all the unnecessary vertex groups.

vertex groups

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.