Make Blender reveal vertecies assigned to multiple vertex groups [Solved]
lukon100
Posts: 803
Is there a way in Blender to see a report of all verticies that belong to multiple vertex groups?
In my rigid model, I need each vertex to belong to only one vertex group, otherwise, Daz Studio will likely put some vertecies in wrong vertex groups and screw up the rigging. So I need to check for verticies that somehow got assigned to multiple vertex groups, before transferring my model to Daz Studio for rigging.
Post edited by lukon100 on
Comments
Not that I'm aware of. You probably need a custom python script for that.
But you can sort by bone hierarchy then quickly select/deselect in edit mode to check it.
Or in weight paint there's "limit total" that you can use to get one group per vertex, but it's a edit function not a check so it will modify your actual groups.
Thanks for your help, Padone.
Well, until and unless I encounter a better way, this is my work-around:
Make every vertex group it's own model in the Blender scene. This seems to be the only way to assure unambiguous vertex group assignment. One vertext group per model, and every vetext in that model assigned to that one vertex group.
This method has so far worked. But it makes UV mapping pure hell, having all those separate models to UV map and manually scale against one another for consistency. I guess that once I confirm the vertex group assignment is perfect, I can re-unify the model for UV mapping. I will likely try this in a few days with a model I'm working on.
@lukon100 Sorry, I just now saw this:
import bpy
o = bpy.context.active_object
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_mode(type="VERT")
bpy.ops.mesh.select_all(action = 'DESELECT')
bpy.ops.object.mode_set(mode = 'OBJECT')
for vertex in o.data.vertices:
if len( vertex.groups ) > 1:
vertex.select = True
bpy.ops.object.mode_set(mode = 'EDIT')
Thanks, The Mystery.
So I assume this is a script to reveal verticies that belong to more than one vertex group.
I intuit that "len( vertex.groups ) > 1:" is the condition in which a vertex belongs to more than on vertex group.
If so, can another script be made to identify verticies that belong to NO vertex group, by the condition:
"len( vertex.groups ) = 0:" ?
Yes, your intuition is spot on, but it would be with a double equal sign, i.e. "if len( vertex.groups ) == 0:"
Awesome help from you, Mysteryis!
Now I just gotta learn how to run custom scripts in Blender. I've never done that sort of thing before.
It'll be left in edit mode, with your vertices of interest selected.
Thanks again, TheMysteryIsThePoint.
I got a chance to try the script. The "multiple vertex group" version found no veticies in my model. I guess I had none. But the "no vertex group" version found some, allowing me to fix them. Cool!
Another check in the "win" column for Blender :)