PDA

View Full Version : transfering skin weights


jason108
05-20-2008, 06:15 AM
I have 10 charcters with the same mesh(vert numbering) but different proportions. I wanted to transfer one weight map to another.

I've tried maya export/import with no luck

I've tried cometTransferWeights.mel but can't figure it out

also can't get dora skinWeights import.mel to work

I'm on a mac using maya 2008.

anyone successfully transfered weights from one character to another with the same mesh?

thanks
Jason

Buexe
05-20-2008, 08:38 AM
anyone successfully transfered weights from one character to another with the same mesh?
Yes and it is actually no big deal. I guess you could do that with the Maya built-in skin ex-importer. To make this happen, you need to understand that it takes your UVs to write out image files with grey values representing your weights. Make sure that you have a UV set that is in the 0 to 1 space (UV) AND is not overlapping. Make sure all your characters have the EXACT same UV set for this task ( create a new one if necessary). If your point count AND order are the same, you can transfer UV sets btween characters. Now export the skinning you like and import it on you other meshes. Make sure you have already skinCluster nodes on them with the influences Maya needs ( exact joint names ). If the names are different edit the text file that Maya wrote to disk when you exported the skinWeight images.
I hope this helps
Buexe

Matt Leishman
05-20-2008, 04:05 PM
anyone successfully transfered weights from one character to another with the same mesh?

thanks
Jason

Just last night I had success in fact, I'm running maya 8.5.

Although I'm not using any of the scripts or techniques you listed. If indeed your models are the same, and the only difference is proportions and not vert count/numbering, and the joints correspond in name and number from one rig to the other, then select the skinned mesh, shift select the mesh you want to apply the skin weights onto (make sure that you've at least initially run a smooth bind on the second mesh) and:

Skin > Edit Smooth Skin > Copy Skin Weights

That works for me every time. No need to write out skin weight maps or anything.

Buexe
05-20-2008, 04:12 PM
Skin > Edit Smooth Skin > Copy Skin Weights
Very true, I forgot about that option : )

jason108
05-20-2008, 05:29 PM
thanks I'll give these a try.

Does the copy weights technique require the same uv too?

thanks
Jason

Buexe
05-20-2008, 07:13 PM
open the option box, there are a few choices

Soulcialism
05-20-2008, 07:34 PM
i'd say try maya's copy first... if that doesn't work, comet save weights is easy to use (use cometSaveWeights, not cometTransferWeights).

open the gui, select the mesh you are trying to save out, and click the <<< box next to the skincluster field. that will fill in the box. choose export filename, then select all the vertices of the model and hit save weights.

it'll write out a text file...

then when you load them back in, on the target mesh, again make sure you choose the right skincluster and then select all the target vertices, and load by "pt order" option

it takes a copule minutes to load up (depending on mesh density of the model in question), but it will eventually load them up and it has always worked really well for me.

Buexe
05-20-2008, 09:46 PM
But doing this old-school-map-import thing looks really cool : )

Soulcialism
05-20-2008, 09:48 PM
it also writes out 1 map per influence, haha. so i guess if you have a full skeleton and a few hundred meg to waste... sure why not!

i'm kinda more into numbers personally... greyscale maps just seem like they're asking for errors :o

Buexe
05-20-2008, 10:13 PM
I like this method ( reminds me of 5th Element ) and it can be much faster than those MEL importers on bigger meshes. Due to floating point issues the MEL route is not 100% accurate either.

refract
05-22-2008, 06:16 AM
I do this all day long. Use Copy weights.

[open mesh, import skeleton, bind mesh to skeleton {use the same bones}, then import the good skinned rig, and copy weights ... at frame zero from one to another.] and delete your imported one after you are done.. period

All the other methods are a waste of time and uv's are not an issue.

Tastro
07-15-2008, 12:53 PM
How would you copy or transfer weighting between characters with different poly count and proportions?

Buexe
07-15-2008, 02:10 PM
How would you copy or transfer weighting between characters with different poly count and proportions?

if they have the same uv layout you can try the export/import of skin weights

NolanSW
07-16-2008, 03:05 AM
How would you copy or transfer weighting between characters with different poly count and proportions?

Actually uv's are still not an issue. Back when I was working in games with even Maya 7 the modeler would make a rough model with NO uv's. This way I can rig and skin while he was working on UV's and texture. He also broke up the model into separate parts so if topology changed on one section, the weights weren't hosed for that part. Once he was done with the final mesh, I imported it in, skinned to the same skeleton and copy skin weights over to each part. If the part changed topology the smooth copy wieghts does a smooth interpolation so the vert will get some weight but will have to modified. If it's all one mesh then you can copy weights at the component level which is my preferred technique than just selecting at the object level. Select one mesh, go into component mode, select the verts and then shift select the new mesh's components and then do a copy smooth skin weights.

I had wrote my own copy skin wieghts script at some point that would select all the verts on each mesh which yielded much better results then just selecting each mesh. You would notice the difference in how it works if you ever had a joint that sits on top of another joint and the other mesh didn't pick up the wieght. I use the same selecting technique for mirroring weights and has not failed me.

CGTalk Moderation
07-16-2008, 03:05 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.