[Maya] Skin Cluster Normalization Problem

Hello,

I have vertices which seem to refuse to be normalized. I’m skinning a torso at the moment and the vertices in question are being influenced by the clavicle which I don’t want, I checked the influence objects using skinPercent command and the clavicle is not listed among them (and neither are any of its children), the total summed weight of the influence objects which were listed is 1, weight normalization is set to interactive. I’ve tried to adjust the vertex weight using painting tools and the component editor which has had no effect.

-Harry

No chance it’s part of the arm doing the influence instead of the clav? if the weights sum to 1 normalization does not seem to be the problem

I’ve checked that, none of the children of the clavicle’s children are returned when I use skinPercent command to query the influence objects. The only thing I can think could be causing problems is that I’ve created a crude script to copy a vertex from one skin cluster and paste it on to a mesh with a different skin cluster and to do this I’ve been using skinPercent with pruning and normalization set to false, but then I’ve been turning it on again.

Now, I said it was crude:


theSel = cmds.ls(sl=True)
for theVert in theSel:
	cmds.skinPercent("skinCluster4", theVert, pruneWeights=100, normalize=False)
        # theValueList is a list containing tuples of the form (joint, value)
	cmds.skinPercent("skinCluster4", theVert, tv=theValueList)
	cmds.skinPercent("skinCluster4", theVert, normalize=True)

None of the influences have Hold Weights set to True do they? We ran into something like this awhile back where somehow a bunch of verts were randomly set to hold, it drove us absolutely bonkers.

None of my influence objects are locked and I don’t have any hold weights set to true. If I select the skinCluster and press the Update Weights button in the Attribute Editor it changes the area that’s causing me problems, but it looks as bad as an initial bind which is really frustrating.

have you checked in the component editor if the total value is below or over 1.0? this is a weird bug that might happen some time with switching between normalisation options, if it is; just edit the total value to be 1.0 again and you might need to repaint

I’ve checked the component editor, all the weights add up to 1 and there are 0 values for the clavicle and its children. I’m always cautious when claiming something is a bug, but I think this one might be, specifically turning normalize on and off via script is what’s causing the problem.

Any chance the object is double skinned?

I figured out what the problem is, I have a deleteComponent node above my skinCluster in my input list, but I don’t quite understand why this would lock seemingly random part of my mesh. I think I’ll just have to start again and delete the section of my mesh before applying skin.

Can you do delete non-deformer history?

Yes, that works, thank you very much for your help. Any idea why having a deleteComponent above skinCluster would lock the weights on some of my vertices?

Maya is always goofy about history that changes topology. And deleteComponent is a prime example of that.

Yeah, when there is something that has moved topology around, the vert-IDs can get rearranged.

Which can cause all kinds of things to go haywire, skinning and blendshapes are the two that I end up having to deal with the most.

Glad you got it figured out though!

I know that applying a skinCluster and then deleting a portion of the mesh on a node which is below skinCluster in the inputs list would change the vertex count and probably the vertex ID’s which could cause problems, but I don’t know why it should cause problems if I delete polygons above skinCluster, you’d think the mesh information would be passed up and then acted upon by the deleteComponent node.

But anyway, I’m glad I’ve figured what the problem was and solution is. Thanks again!