This script provides a temporary, unofficial work-around to accomplish the task of weights transfer. This procedure uses Maya's native "copySkinWeights" command to transfer individual layers one at a time, and does the same to transfer masks separately. The benefit of this approach is that we can take advantage of already existing functionality (e.g. copy by closest point, uvs, name, closest joint, label, etc.)
Important Note: The script assumes that you already have ngSkinTools installed. It uses the ngSkinTools API and other UI elements from ngSkinTools. Link to ngSkinTools download - https://www.ngskintools.com/downloads
To Install -
To Use -
The tool works in the same way as Maya's default Copy Skin Weights tool:
- Select source mesh, shift-select destination mesh (ensure that both meshes already have skin clusters with the necessary joints, and have skin layers initialized.)
- Set options for surface association and influence association.
- Copy! (Wait a few minutes depending on the number of layers & influences involved.)
One limitation at the moment is that layer transparency will not work. (Use "Edit -> Convert Transparency to Mask")
Maya will print a number of warning messages, but they don't seem to break anything (yet...) It has been working fine on my rigs. I usually use "closestPoint" for surface association, and "name" or "closestJoint" for influence association.
I have not tested all the options thoroughly, so do let me know if you run into any errors.