• Daz 3D
  • Shop
  • 3D Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare
  • Download Studio
ADVANCED SEARCH
  • Menu
  • Daz 3D
ADVANCED SEARCH
Add image
  • Shop
  • 3d Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Our Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare

Notifications

You currently have no notifications.

Loading...
    • Categories
    • Recent Discussions
Daz 3D Forums > 3rd Party Software > Blender Discussion

Make Blender reveal vertecies assigned to multiple vertex groups [Solved]

lukon100lukon100 Posts: 845
April 2022 edited May 2022 in Blender Discussion

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 May 2022

Comments

  • PadonePadone Posts: 4,014
    April 2022 edited April 2022

    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.

    groups.jpg
    298 x 222 - 21K
    limit.jpg
    271 x 390 - 26K
    Post edited by Padone on April 2022
  • lukon100lukon100 Posts: 845
    May 2022 edited May 2022

    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.

    Post edited by lukon100 on May 2022
  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,227
    May 2022

    @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')

     

  • lukon100lukon100 Posts: 845
    May 2022

    TheMysteryIsThePoint said:

    @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:" ?

  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,227
    May 2022

    lukon100 said:

    TheMysteryIsThePoint said:

    @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:"

     

  • lukon100lukon100 Posts: 845
    May 2022 edited May 2022

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    @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.

    Post edited by lukon100 on May 2022
  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,227
    May 2022

    lukon100 said:

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    @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.

    1. Right click on the bottom boundary of the 3d viewport, and select Horizontal Split. Drag it up a little bit.
    2. Now go to the drop down on the new window's upper left corner, and select "Text Editor" or hit Shift-F11.
    3. Click "Open" and navigate to the script.
    4. Make sure your object is selected, and in object mode.
    5. Click the triangle pointing to the right to execute the script.

    It'll be left in edit mode, with your vertices of interest selected.

     

  • lukon100lukon100 Posts: 845
    May 2022

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    @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.

    1. Right click on the bottom boundary of the 3d viewport, and select Horizontal Split. Drag it up a little bit.
    2. Now go to the drop down on the new window's upper left corner, and select "Text Editor" or hit Shift-F11.
    3. Click "Open" and navigate to the script.
    4. Make sure your object is selected, and in object mode.
    5. Click the triangle pointing to the right to execute the script.

    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!

  • TheMysteryIsThePointTheMysteryIsThePoint Posts: 3,227
    May 2022

    lukon100 said:

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    lukon100 said:

    TheMysteryIsThePoint said:

    @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.

    1. Right click on the bottom boundary of the 3d viewport, and select Horizontal Split. Drag it up a little bit.
    2. Now go to the drop down on the new window's upper left corner, and select "Text Editor" or hit Shift-F11.
    3. Click "Open" and navigate to the script.
    4. Make sure your object is selected, and in object mode.
    5. Click the triangle pointing to the right to execute the script.

    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 :)

Sign In or Register to comment.
Adding to Cart…

Daz 3D is part of Tafi

Connect

DAZ Productions, Inc.
7533 S Center View Ct #4664
West Jordan, UT 84084

HELP

Contact Us

Tutorials

Help Center

Sell Your 3D Content

Affiliate Program

Documentation Center

Open Source

Consent Preferences

JOIN DAZ

Memberships

Blog

About Us

Press

Careers

Bridges

Community

In the Studio

Gallery

Forum

DAZ STORE

Shop

Freebies

Published Artists

Licensing Agreement | Terms of Service | Privacy Policy | EULA

© 2025 Daz Productions Inc. All Rights Reserved.