Ok yeah I can reproduce this. mGear skinCopy() seems to have some new problems in Maya 2022. The code hasn’t changed.
It is a very long-standing issue/bug for several years in Maya that you can’t use Maya’s “Skin Copy Weights” from a poly transform to a Nurbs transform. It worked many many years ago.
The workaround is that you have to copy directly to the Nurbs CVs. You can do this now and it will work. (Python makes this kind of multi-component transfer a lot easier than trying to select in viewport.)
For example in Pymel, here I just add .cv to the target, if it’s a Nurbs object:
import pymel.core as pm
# Select TARGETS first, and SOURCE last.
source = pm.selected()[-1]
targets = pm.selected()[0:-1]
for target in targets:
shapeType = pm.nodeType(target.getShape())
if shapeType in ["nurbsSurface", "nurbsCurve"]:
pm.copySkinWeights(source, target.cv, noMirror=True, surfaceAssociation='closestPoint', ia=['oneToOne','name'])
else:
pm.copySkinWeights(source, target, noMirror=True, surfaceAssociation='closestPoint', ia=['oneToOne','name'])
mGear’s skinCopy() didn’t have this problem. But now it acts exactly the same. But only in Maya 2022. It still works fine in Maya 2020.
But in Maya 2020 (and 2019, 2018, all the way back to 2016 or 2015 or more) Maya’s Copy Skin Weights is still broken, if you transfer to a Nurbs transform.
I’m not sure if it’s possible to find a combination of *args that would work properly. Or if the skinCopy() function will need to check for Nurbs surfaces, and copy to the CVs directly. I’m not 100% sure why mGear’s function was working correctly before. Ultimately, it’s just using pm.copySkinWeights() too.