Different bind mappings on a same object (Skinning)


#1

Hey,

Is it possible to select vertices on an object to have them use different types of binding methods?
(for example an heat map for the arm, geodesic voxel for the arm and then maybe closest distance for the head)

This could make the skinning go much faster, and I know that this is possible for heat map/geodesic voxel on 3DS MAX but it doesn’t seem like Maya can do that.

Thanks for your time ;-0


#2

You could duplicate the mesh and split into each limb, then skin each with your preferred method, then finally select all of the new meshes and run a ‘polyUniteSkinned’ command to combine the skinning to one mesh then copy the skinning from that to your original mesh.

Frankly though I don’t think this would be all that useful in practice, I’ve never found the results of -any- auto-skinning system are that useful unless you’re skinning a very simple mesh. We’ve yet to see an auto-skinner that has any knowledge of anatomy and that’s what really counts for a decent skinning result IMO :slight_smile:

I find I get better results in less time when I just dive in and block in the weights and then refine. I use ngSkin tools exclusively, (not the native tools) which I find is much faster.

Cheers,
Brian


#3

Thanks, I’ll try ngSkinTools out :wink:


#4

+10 for ngSkinTools

In fact I have used ngSkinTools to combine several different auto-skins a bit like you asked in your question.

You can start with a skinned mesh using any of the native skinning method. Then open ngSkinTools and export the layer weights to a json file. Start again with an unskinned mesh and repeat the process with one of the other method. Open ngSkinTools. Export layer weights.

Then you can reimport those saved layer weights, keeping the existing layers. So you end up with all the different skinning methods as layers. Now you can paint layer masks (photoshop style).

Its an interesting excercise and can be useful for comparing different weightings, by toggling layers on and off. But I tend to agree with Brian, and usually just manually paint the layers weights and masks starting with a fairly rigid weighting. Then use ngSkinTools softSelect and relax to finish off.

David


#5

Been using ngSkinTools and it’s really fantastic ;0 Thanks for pointing it out to me!

I’ve been wondering about how to go and paint skin weights on intersecting geometry, I’m trying to skin a coat but I can’t reach some vertex easily, and so I thought I could just hide parts of the geometry but the paint tool still affects the hidden geometry. Is there a way to hide geometry and that the paint tool won’t affect that geometry?

A few pictures explain it better:
Here’s the coat: http://i.imgur.com/P89Blk2.png
Here, I’m trying to paint weights on the bottom part of the hood : http://i.imgur.com/xS7URLR.png
but you can see that the paint tool is on the invisible geometry.

Thanks again for your help guys, really saved me a ton of time already :wink:


#6

Interested to hear how David handles that if he replies again but what I found myself doing a lot on a job last year where the characters had some pretty elaborate costumes was to duplicate the meshes and split off the costume parts and skin them separately, usually I’d start with the biggest simplest parts first and often copy skinning from the ‘underneath’ parts to the outer parts as a starting point.

Then I’d polyUniteSkinned the different pieces once the skinning was done and copy the skinning from this new combined mesh back to the original mesh. A bit more work splitting up meshes initially but made the skinning very simple generally so it worked for me.

Cheers,
Brian


#7

I’ve done your way of skinning and it worked like a charm, polyUniteSkinned is really useful :wink:

I now find myself in a really annoying situation, I probably should make another post about this but maybe you can help me once more: basically when I’m animating Maya freezes completely (without crashing) and it makes the whole experience really frustrating. I’ve tried going back to previous versions of my character but the tricky part here is that I really can’t just restart everything I’ve done just because it freezes on me.
I tried deleting history of a maximum number of objects (non-deformer history) in my scene but it still freezes frequently. It only happens when animating, meaning that if I just rotate/translate my controllers without having set any keyframes it won’t freeze but as soon as I put one or several it will happen sooner or later.

I know it’s very vague but maybe you’ve had similar experiences in the past.
It’s only my first character so I can’t say that I’m familiar with Maya but I know that’s not supposed to happen ;). Maybe my rig is poorly done and it results in freezing? (it’s also the first time I rig)
I’ve deleted the ngSkinTools node that was linked to the skinCluster and that wasn’t the problem either.

I’ve uploaded 2 videos with the same thing happening so you can see what I’m talking about: https://drive.google.com/file/d/0B7SRXWCJcuQtRjVBTGdsWWk4Sk0/view (zoomed in)
https://drive.google.com/open?id=0Bxgy87mb-aI4b0poNXVXUGZhRms (zoomed out)

Here’s also the file if you got some time to check it out:
https://drive.google.com/open?id=0Bxgy87mb-aI4WXIwUkVHSEhlWGc

EDIT: I’ve got this error:
“OpenCL Error: CL_OUT_OF_RESOURCES error executing clFlush on GeForce GTX 980 (Device 0).” in the output window of Maya.

EDIT2: Well nevermind, it’s something specific to my computer ^^. I’ll try and figure it out on my own.


#8

Yes, much the same as you here too. It would be a great feature if painting would ignore hidden faces but I have not found a way to do that.

I’d just add that for detailed costumes (actually for most things) I usually create a simple low res single layer version of my mesh, as simple as possible with only enough detail to hold the deformation. I do 95% of my weight painting on that and then copy the weights to the actual mesh. The way weights are interpolated when going to the high res mesh usually works nicely. And if it doesnt a little relaxing after the copy is usually enough to deal with it.

David


#9

Thanks! Good to know as I’ve sometimes wondered was I taking a long route…It works pretty well though in my experience.

Cheers,
Brian


#10

concerning the intersecting problem for painting weights (if i correctly understand the problem).

If you use the viewport “isolate select” rather than the classic hide “h” it should work, and the paint brush will only affect the visible faces.


#11

Thanks Onouri it works ;), the shortcut is “CTRL+1” to toggle isolate btw.