General Skinning Tips

Every now and then I have one of those “holy crap, I wish I’d found this sooner”
moments. Recently I’ve had a number of these related to the skin data mesh
that the skin tools in Max creates.

Tip#1:

The skin data mesh can be fit to another mesh…the trick is to get joints and
areas that have several blend weights to match up as best you can.
Once you have the skin data mesh pulled into the new shape, you may need
to mess with the tolerance to get things “happy”.

Tip#2:

You can meshsmooth the skin data mesh to get interpolated blends. The
weight data is stored like UV’s on data channels. The bone to channel info
is stored in the user properties.

Also for reusing skin weights, or doing LOD’s skin wrap is a life saver. I recommend face deformation over vertex as it gives me better results more often than not.

I wrote a script that will take a Skin Wrap and create an instanced skin modifier of the object is was skin wrapped to. This has allowed me to do lots of things, especially copy and paste weights, because I can have both objects active at the same time. The concept is very simple and you’d probably be better off rewriting the script to suit your environment.

One thing I would encourage any grunt Technical Animator/Artist to do is write your own ‘Weight Tool’. Max’s default weight tool is great, but you will probably be doing lots of weighting until you get into those Lead jobs where your juniors skin (can you write Excel macros in MaxScript??). Maya doesn’t even have a default weight tool so this is even more important for you MEL guys.

Creating your own weight tool has two main benefits: a tool for a customized workflow, exactly for how you like to work. No useless buttons and every button/macro you need is there. Second, it will encourage you to create new Skin tools instead of take the long way around. My Skin Tool has lots of macros I’ve written, and instead of each needing its own UI button or hotkey, I can just integrate it with my Skin tool (I’ve written a Replace Weights for a Bone macro, a Lock Weight(s) macro, some mass copy-paste, grow and paste, and more. My UI has a spot for a custom grow/shrink weight value, etc. Customize it how you want!). It saves tremendous time and energy over the course of even a single project.

The Skin Utilities extracted mesh can also be scaled -1 on the X, delete half, and you can use it to Mirror if the Max mirroring isn’t working correctly or not giving you good results (or if you have a very asymmetrical character, you can adjust the mesh size). You just need to match the bones properly.

BTW the Skin Modifier mirroring is based on bone envelopes- if you have two bones sitting on top of each other (such as twist bones) make sure their envelopes are different, as much as possible, or you will get some strange results from mirroring (actually this was the reason I initially wrote my bone weight replacer…). Restarting Max can also help if your Bones/Envelopes don’t seem to find mirrored versions.

Yes indeed, this is one of the first things I came across when skinning some meshes recently in Maya. A lot of the tools I had thought were standard (from Max experience) don’t even exist in Maya. Either that, or they exist in a poorly-implemented manner, as with much of Maya’s default tools.

I’ll be looking at writing some custom skinning tools in MEL soon, mainly just to have really streamlined settings pared down to just what we need, with presets for various things.

One thing I found to be very weird with Maya’s Paint Weights tool, is that if you have a bunch of separate objects with open geometry borders selected, and Paint Weights on all of them, it works fine, but if you Combine those objects without merging the verts at the borders, Paint Weights will not paint over the geometry seam. It clearly has the ability, since it works fine when they’re separate, but as soon as it’s a single object, you lose the ability to paint over geometry borders. Really odd.

Unfortunately I don’t really have any skinning tips for now, since I don’t tend to do much at work, and I haven’t done any hardcore rigging/skinning at home for a while. Max’s little “Weight Tool” floater window is really nice though, just a bunch of very useful settings all in one window, without all the chaff of settings game artists don’t tend to use.

Another thing that you can do with the Weight mesh in Max is cut and piece off and one use that part. For instance you have a character where one hard has mutated and it larger. Skin the hand on one side, create a skin mesh mirror it to the other side, shape it to fit and then grab the weights back off of it.

Another one that people have a hard time with is mirroring weights on characters that are not quite symmetrical, use the mirror selected verts only on characters like this and do the character in small parts as you go. Each time check if both right and left verts are being found and adjust to suite.

If you are having troubles getting the mirror to work check that you don’t have a fine on on one side of the rig and not the other as it uses the volume of the bone to fine the other side.

[QUOTE=Rob Galanakis;231]
BTW the Skin Modifier mirroring is based on bone envelopes- if you have two bones sitting on top of each other (such as twist bones) make sure their envelopes are different, as much as possible, or you will get some strange results from mirroring (actually this was the reason I initially wrote my bone weight replacer…). Restarting Max can also help if your Bones/Envelopes don’t seem to find mirrored versions.[/QUOTE]

This is among one of the most frustrating things with Skin, especially in the root/pelvis area. We’ve got extra bones in the same space, so mirroring never puts the vert weights to the proper bone (in my case, I want it to be the pelvis). For the same reason as you I had to create a replace bone weights tool.

[QUOTE=pen;254]Another one that people have a hard time with is mirroring weights on characters that are not quite symmetrical, use the mirror selected verts only on characters like this and do the character in small parts as you go. Each time check if both right and left verts are being found and adjust to suite.

If you are having troubles getting the mirror to work check that you don’t have a fine on on one side of the rig and not the other as it uses the volume of the bone to fine the other side.[/QUOTE]

One thing I’ve toyed with in this situation is:

  1. copy the mesh
  2. take the cleaner side, detach it and mirror it
  3. copy the original mesh again
  4. snap the verts on the copy from #3 and snapping them to the mirror from #2 as best i can
  5. vert weight the mesh from #3
  6. copy these vert weights to my original rig

This really only works when the mesh is not overly asymmetrical. I’ve always wanted to write a tool that would automate the above process, but that gets tricky in that you trust the vert distances to be just right to work.

Hi everyone,
Here is a nice trick that I use to speed up my skinning (in 3ds max).
When I start a new character rig, I take a few minutes looking at the character,
and isolating the main geometry parts. I detach every extra detail like buttons, belts, collars etc, a jacket over a shirt or even a shirt over a naked body.
For parts that have thickness like a shirt for instance I tend to delete the interior part and use ‘shell’ modifier above the skin modifier to reduce the number of weighting I need to do and to avoid self intersections.
After I’ve isolated the main geometry I make sure it is perfectly symmetrical.
If not I make a copy and use ‘symetry’ modifier to make it so.
I attach everything into a one mesh and start working on the skin.
when I finish, I use skin wrap and it’s ‘turn to skin’ button or skin utils to apply my skin data to the asymmetrical detailed character.
Hope I was clear enough, if not, let me know.

Cheers,
Matan.

I’m currently investigating a copy and paste by selection for Max. A direct copy and paste with mirroring is easy, but I’m looking at selecting a source vert and target vert, then having a falloff - copy and paste X verts around this area based on travelling along the edges.

Try the Paste-Pos, and adjust the tolerance. You can access this from the Weight Tool.

Good thread. Lots of interesting stuff.

To be honest Skin Wrap was the biggest time saver in our last (very short) project. We had about 35 characters, but most of them were based on modified versions of the same two characters (same people in different costumes). Skin Wrap made short work of setting up the skinning at least for the basics.

I’d already made and skinned nude versions of the characters (well they were wearing swimming trunks) before we went on and made all the variations and that skinning made a great start for all the others.

Skin Tools sorts out most of the rest. I honestly haven’t needed to find any scripts for skinning for the last couple of projects.

I like the tip of adding shell above skinning to add thickness easily. I’ve done something like that before. I had a hat for a character (rendered, not for game use) that was low poly, and then symmetried, mapped, shelled and turbosmoothed. Made a complex shape very easy to handle. It didn’t need skinning but I might have done that below the shell had I needed to.

[QUOTE=pen;254]Another one that people have a hard time with is mirroring weights on characters that are not quite symmetrical, use the mirror selected verts only on characters like this and do the character in small parts as you go. Each time check if both right and left verts are being found and adjust to suite.

If you are having troubles getting the mirror to work check that you don’t have a fine on on one side of the rig and not the other as it uses the volume of the bone to fine the other side.[/QUOTE]
This is a great tip that I use all the time. Can solve a ton of headaches on asymmetrical meshes.

Great tips!

Unfortunately we’ve never really got the built in skin mirroring in max to work as well as it should. We’re using a mix of biped and custom bones which can share the same volumes, and all too often Max won’t paste the correct bones. It has a prepensity to paste Pelvis weights onto the Char bone instead.

I wrote a little script that pulled the exact weights per bone id from a vert, then pastes them onto another vert (with the option to mirror).

Hey guys,

I’m relativley new to technical art, however I find it very satisfying, and want to get better (dare I say it, the best! :wink:)

I need to know where to focus my skills basically, and skinning is obviously going to be one of them.

My question is:

When skinning a character, lets say for example the upper arm, how much influence do you allow over other areas of the body? i.e. should the arm carry influence up into the shoulder area, or should the influence of the bone stay as close to the position of the bone as possible?

I hope that question is clear (as british water) and any advice would be greatly appreciated.

PS. Big thanks to Paul Neale, your tutorials and scripts have come in extremely handy, and I advise anyone who’s new to character TD to check his site :cool:

Adam

I’m curious about your Lock weights script. That is the one thing i miss about using maya it has a good lock bone weights for isolated painting.

i have a problem

when skinning weights on a polygon, the last bone weight does not get properly distributed.

My question is what is the method of skinning in maya that will give me a desirable result. i.e.

how is it possible to bind weights from bone to vertices, without any problem.

Brgds,

Brijesh

could you be a little more specific? It’s a little vague for me to give you a good answer. :):

some one wnet and wrote a max like weight tool for maya…

http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/max-skinning-weight-tool-for-maya--2

have not tried it yet but might help the guys jumping back and forth.

Hey guys, I have written a Tool for maya similair to the Weight Tool in MAX. It even as the paste selected vert to opposite… Check this out

http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/max-skinning-weight-tool-for-maya--2

:):