Hey, just wanted to post a solution to a weird problem I had with Maya’s skin weights in case it happens to anyone else. Maybe someone knows what happened cause this is the first time Maya acted like this for me.
I finished skinning a character a few days ago and when I opened the scene today and moved the controls around everything looked just like it should, but when I looked at the skin weights either by using the Paint Skin Weights tool or selecting vertices and looking in the Component Editor, Maya said vertices were being influenced by the incorrect joints.
So as a test to try to figure out what was going on, I created an influence joint and painted the entire leg to be 100% influenced by the new joint. Then I moved the influence joint around and only a handful of the vertices on the leg were moving and other random parts of the character I didn’t paint were being influenced.
I also grabbed 3 vertices on the body and told them to be 100% influenced by the head joint. Then I moved the head joint around and only 2 out of the 3 vertices were moving.
After trying many things I ended up fixing it by duplicating the skinned geometry and binding the newly duplicated model to the bind joints, then I used the Copy Skin Weights tool to transfer the weights from the old geometry to the new geometry and everything returned back to normal.
It sounds like some of the influences were locked or the skin cluster had some strange issues with maintain max influence and your joint count was low for the max infl.
or you were using post instead of interactive normalization on the skin cluster.
I have run into this same problem before, I’m not sure if my cause is the same as yours, but it yielded those same kind of results.
After the skin bind and weighting are done if anything happens to re-order the verts on your mesh, for example deleting a few verts, the skinCluster information will get all sorts of confused about what weights are on which verts even though the deformation isn’t affected, so when you pose the rig around it looks like it should, but if you look at the weighting it’s a mess. I suspect that internally the skinCluster understands which verts it was originally bound to so it’s able to keep the weighting on the correct verts even though the numbering is mis-matched. But once you add a new joint into the mix, or try to adjust the weighting, it doesn’t know how to solve the mis-matched numbering between the original verts and the new vert order.
I just did a quick test on this and have the same results that you’re finding by binding a mesh, deleteing a few verts, and then adding a new joint to it. So I would suspect something happened to the mesh after the initial binding that caused it’s verts to be re-numbered.
Thanks for the replies. I checked for locked joints and the skinCluster was set to Interactive. I always wondered why you’d ever set Normalize Weights to None or Post? I don’t think I uncheck Maintain Max Influences when I did the smooth bind so I thought that might have messed with it too but wasn’t sure.
That’s interesting about deleting the vertices. Didn’t think about that. Maybe I accidentally deleted a vertex or did an operation that reordered the vertices.
I just checked the old file. The model has a deleteComponent1 node in the inputs!!