Weight Paint Issue: Overlapping Vertex Groups

Hello all-
I’ve been enjoying Blender’s Weight Paint capacity at the business end of a rigging job. One problem that I’ve noticed is that painting vertex groups over a single bone doesn’t seem to update the other vertex groups in my armature.

Put simply, I seem to be left with multiple ‘red’ regions (cast by different vertex groups) on a face, and vertex groups that will not update unless I tread through my armature list & update each by hand.

Maya’s weight-painting operates on a white-to-black scale, where paint upon one vertex group automatically updates every other vertex group on a given rig. I was wondering if Blender’s weight-painting sports a similar ‘auto-update’ feature and, if so, how in the world can I activate it?

Thanks.

Sorry David, you’ve lost me. What are the other groups supposed to be “updating” when you add weight to a bone/group? One vertex can be a member of any number of vertex groups so painting a vert for the leg, for example, won’t change the fact you may have already painted it into a different group. It will now belong to both groups.

If you don’t already know, Shift-LMB on a vertex/face in weight-paint mode will display a list of groups that vertex belongs to. Cleaning up errant groups can be laborious. Either paint verts to zero or, better still, remove them from groups via the vertex groups menu. Painting to zero usually tends to leave the vert as a member of the group though generally speaking, not an active member.

Hello Andy & sorry that I wasn’t too clear on my intial post. Fundamentally I’m trying to work out if there is some way to speed up Blender’s weight-mapping work flow. Ideally I’d like to implement weight-paint modifications on one vertex group that will automatically update/modify other vertex groups. Currently I’m double-handling these modifications- my changes to one vertex group need to be updated to other related vertex groups manually. Here’s some visual ref:

http://img368.imageshack.us/img368/6858/davidmacweightmapprobsfx5.jpg

You mentioned that one vertex can be a member of any number of groups. I need to know if this can be modified such that the total influence on a vertex hits a natural limit (100% total influence accross all fields)…

eg- when a normal is under 100% weight-mapping influence from vertex group A, and I paint 40% influence onto this normal for vertex group B, I need vertex group A to automatically drop back to 60% influence, as opposed to remaining at 100% (as it seems to do currently).

I haven’t found a paint-mode or a toggle that will activate this limitation, and I was wondering if it could be done at all.

Thanks for your help, & please let me know if I’m still not being clear ;-).

The weighting is a little odd in Blender (I only know Blender so I don’t know how other apps handle this).

If you have a vertex weighted 100% to lower-leg and 100% to upper-leg then Blender effectively treats it as 50/50 weighting. In other words, it sort of averages out and the total effect is always 100% (as I understand it).

The code and theory aren’t my area of strength and I tend to paint intuitively and adjust as required. I doubt this helps you much at all though.

Its’ a testament to my posting prowess that I seem to have wigged you right out, Andy. Sorry- I’d do better explaining things to you over a beer a few hands in the air gestures, anyday.

Think I’m beginning to get the jidst of weight painting in Blender, for now. I’ve only ever used it in Maya before, and Blender’s approach seems a little different. I anticipate spinding a little more working on weightmaps in Blender, or at least tweaking them: Altering a vertex group invariably has an impact on the vertex groups around it, and the fact that you have to confirm every slight modification with a plethora of vertex groups, as opposed to the one, is going to slow things down remarkably.

If anyone can point me to a quality weight-mapping tute or two I’d be very grateful: I think I’ve got a way to go.

Altering a vertex group invariably has an impact on the vertex groups around it, and the fact that you have to confirm every slight modification with a plethora of vertex groups, as opposed to the one, is going to slow things down remarkably.
My first reaction to this thread was I think the same as Andy’s. This is simply a matter of normalizing the active weights on a vertex to make them all add to 1… Blender doesn’t do this, but the weights behave the same relative to each other as they would if it did do it. So at first I thought it was just something to get used to.

However, after giving it some thought, I think that you’re right. This may be a weakness in Blender’s weight painting system, rather than a feature, mainly because of the way that the values are displayed. It often happens that a part of a mesh will be entirely red for the appropriate bone, and yet will not deform correctly due to the fact that other bones are influencing it. This can be an enormous pain in the butt, because you have to find out which bones are influencing it.

If the weight paint showed up with the normalized value for each bone, you would know immediately that the mesh wasn’t being fully influenced by the correct bone and, better yet, you could fix it by simply painting it at opaque value 1 to the appropriate bone, which would remove the other bones’ influence from that bone. This would also allow better (non-trivial) use to be made of the existing weight paint tools, additivity, subtractivity, opacity, etc.

There are other tricks currently available to deal with or avoid the problems, and some helpful python scripts, but now that I’m thinking about this, I can’t see any good reason why these weights shouldn’t be treated as normalized weights. Which I think is actually a more traditional way to think about weights anyway.

This might be worth bringing up with the developers.

<edit>

My thousandth post! Once upon a time that would have made me a monkey.

By the way, it’s not strictly a weight painting tutorial, but for skinning in general Toloban on this forum has done a lot of really great work, such as in this thread:

http://blenderartists.org/forum/showthread.php?t=70033

He’s got several tutorials and things on his website here that are worth checking out:

http://kokcito.tk/

Salut, Bugman, and congrats on one thousand posts. I do recall visiting Toloban’s website a few weeks back, and I’m en-route now to have another rummage through his (fantastically good) material. I’m going to have a good crack at weight-mapping under the Blender model, just to be sure that I’m not missing anything.

I’m still not sure still whether the weights would be best normalized or if there’s a good reason to leave things as they are. I’m going to try to get onto a chat with some developers soon if I can and ask about this.

There are a couple of things that I find helpful in weight painting in Blender which you might not know about. One thing is that you hide and select specific parts of the mesh to paint by selecting and/or hiding them in UV/Face Select mode before going into weight paint mode. This helps reduce the chance of accidentally overshooting and painting things to the wrong bone. It’s a kind of little known function, so you might not have come across it.

If I ever have time, I have been dreaming of/hoping to try to write a python script for weightpaint management. I’d love a script with an interactive interface where I could automatically list all bones which had more than one non-connected patch of non-zero influence and give me a color coded list of those patches highlighted on the mesh which I could eliminate with one click (I’m assuming here that the majority of cases where a bone has more than one patch of influence is probably due to a weight painting mistake).

Actually, it would be easy to incorporate a “normalize” button into a script which would do the normalization you’re wanting for all bones with a single click. If I ever get around to this script I’ll work that in there…

There may actually already be a python script for this, come to think about it. You might inquire about it in the Python forum.

This is so unbelievable helpful! Thanks for this tip!

Oh, just found this: press F-Key in Weight Paint Mode to activate a select mode. So you don’t have to change to UV/Face Select Mode. You get a Select-Menue including inverse selection, border selection, select linked, select same UVs…

Unbelievable that I’ve never noticed this…

If I hide faces in UV-Select mode, then I can’t paint in weight-paint mode.

If you go into UV select mode to hide faces, then you will need to make sure that the faces you want to paint are selected in UV select mode. Probably you went in, hid faces, and then left the other faces unselected when you went into weight paint mode.

This falls into the “feature, not a bug” classification…

I haven’t tried that F-key thing… drat! I wonder if it’s too late to send my editor a one-sentence addition to the book… yes… I’m sure it’s too late. He’d kill me.

I haven’t tried that F-key thing… drat! I wonder if it’s too late to send my editor a one-sentence addition to the book… yes… I’m sure it’s too late. He’d kill me.

Ah, that’s what addenda are for.

I must investigate this UV hiding thing further, though it still seems messy. There was another way of hiding areas - but it was rough and I can’t remember how. It works on a selected region, not faces or verts (more like region clipping than hiding).

Alt-B maybe?