Page MenuHome

vertex groups names shifted
Closed, ArchivedPublic

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 750 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.91.0, branch: master, commit date: 2020-11-25 08:34, hash: rB0f45cab862b8
Worked: (newest version of Blender that worked as expected)

Short description of error
After I had finished weight painting the lower half of my vertex groups shifted by one. For example the bone named finger3.L now had the weights that used to be associated with finger2.L which now had the weights which used to be associated with finger1.L. Looks like each vertex group in the lower half is describing the weights for the vertex group name above it in the list.

Exact steps for others to reproduce the error
What I suspect happened is that it was named correctly then I inserted some funky vertex group between the functional half and the disfunctional half then hit revert and it counted the vertex groups as though that funky vertex group were still there but it wasn't. But I can't seem to reproduce it. Might have had something to do with the vertex weight mix modifier because it was around the time I was using that. Seems like a stretch though. Or maybe I had a vertex group with the same name in before and after reverting but they were in different locations and has mismatching internal vertex group IDs or something.

Not sure how much this file will help since I suspect the problem has to do with what state it was in before I hit revert but here you go:


P.S. I accidentally attached a wrong file that was huge I deleted the number hoping that dereferencing it would delete it from your servers

Event Timeline

I was able to fix it with this code:

v_groups = bpy.context.active_object.vertex_groups
for i in range (len(v_groups) - 1, 15, -1):
     v_groups[i].name =  v_groups[i - 1].name

v_groups = bpy.context.active_object.vertex_groups
for i in range (len(v_groups) - 1, 15, -1):
     if v_groups[i].name[len(v_groups[i].name) -4:] == ".001":
          v_groups[i].name = v_groups[i].name[:len(v_groups[i].name) - 4]

but thats hardly a permanent solution

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from User.Apr 16 2021, 11:23 AM

then I inserted some funky vertex group between the functional half and the disfunctional half then hit revert and it counted the vertex groups as though that funky vertex group were still there but it wasn't. But I can't seem to reproduce it.

Hm.

Might have had something to do with the vertex weight mix modifier because it was around the time I was using that. Seems like a stretch though. Or maybe I had a vertex group with the same name in before and after reverting but they were in different locations and has mismatching internal vertex group IDs or something.

Please dont give up and try to dig some more to come up with a way to reproduce this problem.
Without a simple example .blend file with such reproduction steps, this is going to be too time consuming to track down [so chances that this gets fixed are low], with them though, chances are high this will see a fix.

Philipp Oeser (lichtwerk) closed this task as Archived.May 3 2021, 6:16 PM

No activity for more than a week. As per the tracker policy we assume the issue is gone and can be closed.

Thanks again for the report. If the problem persists please open a new report with the required information.