Copying skin weights from one mesh to another



this maybe a simple one. But i couldn’t find exactly the answer i was looking for elsewhere.

I basically have to identical meshes both smooth bound with identical skeletons, one has painted skin weights. The only difference is the joint names/numberings dont match, but the hierarchies are exactly the same.

i was wondering if anyone knew a way to copy over the skin weights to the other mesh when the joint numbers need to be matching.



If you’re using 3DS Max, you could simply export out an env file from the source skin modifier, and then load this env file unto the skin modifier of the target mesh. The “Load Envelopes” dialog should match bones by index (skin modifier index) by default. I believe the vert IDs of the two meshes in question would need to line up for this method to work. If your vert IDs have change, try the above process with the “Load Vertices By Index” checkbox unchecked.

On the other hand if bone hierarchy is the only method you have to match bones between the two meshes and you want to automate the process of bone re-mapping, you’ll likely have to come up with a custom solution using MAXScript etc.

Otherwise, I believe that both the env load dialog and the Skin Utilities tool allow you to manually re-map bones.


oops, sorry i forgot to mention, im using maya 2017. maybe similar problem though?



Is there any reason why you couldn’t just rename the identical skeleton to match what you want to copy from? Even if you did this temporarily?
If you do then you could just use my “skinTo” function from here:


Oh just select the source mesh, then shift select target mesh and go to Skin > Copy Skin Weights :slight_smile:


Personally i use ngSkinTools now for pretty much all my skinning in Maya. I cant recommend it enough.
Its got a very robust Skin load and save system using Json files. (It also allows remapping to different joint names on the skeleton.)