I just discovered that one of the things that can break max influences is mirroring skin weights. Totally lame, Maya. I wrote a script to diagnose where the problem areas are:
global proc checkMaxSkinInfluences(string $mesh, int $maxInfluences)
{
select -cl;
string $skinCluster = `findRelatedSkinCluster $mesh`;
if($skinCluster == "") error ("checkSkinInfluences: can't find skinCluster connected to '" + $mesh + "'.
");
int $verts[] = `polyEvaluate -v $mesh`;
int $count;
int $i;
for($i=0;$i<($verts[0]+1);$i++)
{
float $inf[] = `skinPercent -query -value $skinCluster ($mesh + ".vtx[" + $i + "]")`;
float $activeInf[] = {};
int $j;
for($j=0;$j<size($inf);$j++)
{
if($inf[$j]>0) $activeInf[size($activeInf)] = $inf[$j];
}
if(size($activeInf) > $maxInfluences)
{
select -add ($mesh + ".vtx["+$i+"]");
$count++;
}
}
if($count > 0) warning ("More than " + $maxInfluences + " influences for " + $count + " verts on " + $mesh + "
");
else print ("Found no verts with more than " + $maxInfluences + " on " + $mesh + "
");
}
Once this is run if there are any problems it will select the offending verts. Prune Small Weights at about 0.001 clears up most of it. And if you have skinCluster -maximumInfluences turned on then when you set the lower influence verts to zero in the Component Editor it pops back to the correct number of influences. I like to do this part manually so I can see how it affects the skin because anything above the Prune threshold is potentially noticable.
Sounds like a legit bug to me. I’m going to submit a bug report to Autodesk.
-David