Ideally you want to create a proper UV layout for your models, and delete all the history, before you rig it. In the unfortunate but not uncommon circumstance that you realize you spend hours weightpainting on a model that has the UVs not properly laid out yet but should, these steps can help you.
(The title of this post is slightly misleading as you in fact transfer the painted weights)
Step 1 – Get a clean, unbound version of your model
If you cannot find the version of your model from before you bound it to skeleton, you need to create a clean, unbound version. If you have a clean version, you may skip this step.
- Out of an abundance of caution, save your scene with the rigged model under a different name (MyModelRigged_BackUp.mb for instance)
- Make sure your rig / model is in bindpose (undeformed)
- Select the bound mesh and delete all the history on it. Yes, including the deformer history, killing all rigging and blendshapes
- With the mesh selected, choose: File > Export to export just the mesh of your model
- Through File > Open open up the file you just exported your model to. DO NOT save the file you just deleted the history in.
Step 2 – Lay out the UVs
- In this clean file, create a perfect UV layout.
- When done, you again delete all the history on your model
- Save the file (using incremented versions is always a good idea)
Step 3 – Transfer the Painted Weights
You need to bind the new model, which has the UV’s laid out, to the same skeleton and transfer the weights you painted onto that model. You will delete the one you did the weightpainting on
- Open up the scene with the rigged model
- Import the model with good UV layout
- If your rig uses blendshapes, apply the same blendshapes to the imported mesh.
- Bind the imported model to the same joints the other mesh is bound to. A simple smooth bind is fine.
- Select the mesh with the correctly painted weights, and shift select the newly bound mesh (the one with the good UV’s)
- Since they are on top of each other, Control or Option selecting in the outliner is probably easier.
- Copy the skin weights (Rigging > Skin > [Weight Maps] Copy Skin Weights)
- You can hide and eventually delete the orginaly weight painted mesh
Done!
Needless to say you may not move your model during the process, right?