Multi level skinning

I just wanted to share, for any of the users who does not know this, that you can have multiple skinClusters on a “single” mesh. Doing a normal skinning, maya takes the .outmesh of your mesh’s shapeNode and feeds it into the skinCluster node. Then makes a copy of the shapeNode and feeds the result of the skinning into the new shapeNodes .inMesh. Then intermediateObject is turned on, on the original shapeNode, thus only the deformed shape is displayed. If you turn intermediateObject on for the deformed shape and off for the original, you will be able to skin that, and have that skinning evaluate before the skinCluster created first..

That way you can have multiple layers of skinning. As many as you want. This takes a little bit of planning and you have to know what you are doing, especialy to avoid double transformations. However when combined with the bindPreMatrix trick discussed in an earlier topic, you can achieve having more than a combined value of 1, on any given vertex/cv., but without double transformation. This is great for areas where you have weight fighting. Say, that you want two influences to affect an area of the mesh drasticaly, but can’t due to normalization/double transformations, this could help you out. But beware of the deformation order, especialy if you character scales.

You could also do this by skinning two diferent meshes and then assigning one as a blendShape to the other or by connecting the .outmesh of one skinned mesh, into the shapeNode of the other, the one that’s before the skinCluster node.

Thanks to Kustaa for first putting me onto this. I hope it’s ok that I share! (Gotta keep the blog going..)

I have lots of exiting stuff going on, that I wan’t to write about, I’m just really really busy right now. Some of it also need to tested out a bit beforehand.



5 thoughts on “Multi level skinning”

  1. update cool 🙂
    I’ve actually used that technique on the setup of a prop (the blendShape technique), I’ve first read about it on a post over at cgtalk, john hoover even made a script for it I think..could be intersted to take it maybe).It was pretty cool because I needed a skin to be apply at a certain shape of my object, and another at another shape, it turn out just fine, couldn’t have done it overwise I think.
    Although i’m not sure I follow with the bindPreMatrix and double transform, any exemple in mind?.

    good to see the blog alive.


  2. Yeah, one example.

    Basicaly anywhere that you want to have weighting that is more(!) than 1, when adding together the influences, but avoid double transformations.
    Let’s say the that you have character, with a design that makes it so that you want the clavicle weights to be quite high and have a nice falloff. But for the points above and below the arm, you also need high influence from neck/head joints and from backjoints. You may encounter “weights fighting”.

    Here multiple skin clusters can be nice.

    You can skin the whole char exept the clavicle and whole arm on one mesh.

    On another mesh evaluating after the first skinnig, you can then skin the clav and whole arm. (You need some kind of root ifluence joint also)

    Make it so that the joints of the second skinning (clav/arms) are moved around by the joints in the first skinning (rest of body). Make hierarchy and bindPreMatrix connections to the arm skinning, so that it follows the first skinning/joints, but without doing any kind of deformation, unless the clav/arm joints are transformed themselves.

    Does that make sense? I’m sure you could do this an easier way. With some clusters on top of skinning for instance.


  3. seems very complicated, but i guess it should work, would not do it myself ’cause if you hit problem it can become quite hard to find where the trouble comes from.Also i’m having lot of problem implementing the bindPreMatrix so I don’t know.

    anyway it’s really a nice method, that is worth taking a look at.

    thanks for sharing once again

  4. one other use for multiple skinclusters is facial setup. if u want to have overlapping actions, instead of using clusters(that are suprisingly slow) u can use skinclusters on top of each other. thats pretty straightforward to setup and even easy to track the problems.

Leave a Reply

Your email address will not be published.