Tips for binding\painting weights


#1

Hi Guys ,

I am having trouble understanding the process of binding and I would like to hear how you guys work.

I have a model that is a single poly geometry , around 4000 poly’s.

now when binding this model , would it be easier to copy it , rip it to pieces , bind the individual parts to a skeleton and than have that wrap deform the original geometry?

cause when its one piece , the weights seem to get messed up no matter how much I correct. Ie: I paint weights for 3 hours than I move the neck joint and the butt of the model moves , etc.

Also , how do you keep the volume in the hip area when you move the leg sideways? I get geometry pinching in no matter what I do , should I add clusters in that area and create set driven key relationships with the hip bone?

Sorry for the long post and thanks in advance to everyone who shares their workflow and\or any tips&tricks.

Ali


#2

Yeah the wrap deform way might work alright for you. SDK with clusters would certainly help in some areas. Since yours is fairly low poly, using the component editor should help too. Are you using rigid or smooth bind?? I’m with you too, I hate to weight painting. A few things you should keep in mind when painting, considering you used smooth bind. Never sutract weight, always add it. Work from the fingers into the body, and from the toes into the body. To be honest with you one day I got real tired of painting weights. So I did some experimenting and have came up with some rigging and skinning techniques that relieve you from painting weights. I’m not saying that I created these techniques but I’ve never seen anyone else do it the way I do. And they may not work on all character types. In some cases it may just be easier to paint the weight and be done with it, but if you have a character thats constantly going through changes (geometry, rigging, etc) I think my techniques work really well (cause if I had to repaint weights everytimes I rebound the skin I would have killed myself a long time ago) Without going into too much detail since some of the techniques get pretty complicated heres some ideas. Bone placement is the most important. If the skin is colapsing in a certain area try adjusting the placement of the bones. Sometimes adding another joint close to the collapsing area can help as well. I try to get the best deformations I possibly can first with just bone placement. Also the default pose your character is in can make a big difference. I try to make the pose as relaxed as possible but make sure there is enough distance between the different body parts so that I’m not getting any unwanted influence( arms bones influencing the torso, etc)There is one other thing that is the biggest help, I think. Its based on this tutorial:

http://www.cane-toad.com/tuteRig_Shoulder.htm

But I’ve kinda taken the concept to another level. Basically I use joint rotation to drive the movement of other bones rotation and translation to cause the skin to kind of slide around which improves deformations and causes more realistic movement. Lastly I use influence objects for anyother problem areas. Like I said its a lot of work on the rigging end that may or may not be worth it.


#3

Thanks a lot man!


#4

Sheep,

Also, certain rigging techniques can help as well. For instance, creating two bones for the forearm (ulna/radius setup) instead of one gives you more joints to weight the skin to. If you’re not too concerned about extra joints, I would just place them where I need them. Especially in the buttocks area. That always collapse when I pull the legs on my characters back.

Sometimes, I’ll put the characters in an extreme pose and open up the component editor with the problem CVs selected. This way, I can tweak out the form using the C-editor. Seeing how you have a fairly low poly character, I wouldn’t want to paint the weights. Tho more intuitive, its not quite precise.

Ultimately, there’s no easy way of weighting the skin. Unless you want to experiment with dynamic skin using rigid bodies for muscle/bones and sofbodies for the skin. No need to paint weights there, but you have to model the infrastructure of your character and deal with Maya’s dynamic system.

Look me up on MSN (my email in the sig). I’ll be glad to help out. If you don’t believe me ask Kmp3d.

peace,

Lu


#5

Hi

As your character is kinda low poly (around the Half-Life 2 mark?you should be ble to get pretty good deformations using only smooth skinning. As long as your charcter doesn’t need to do anything too wild. Id definetly recommend using the Component Editor. Some people work in this all the time and don’t touch the paintweights tool.

Check out threads by Jason on how he explains multiple rig setups using a bind rig and control rig. The bind rig includes the extra forearm and bicep joints. I also add an extra joint to the top of the leg to smooth out the twisting. Don’t know if anybody else does that but it worked pretty well for me. Its a similar method to the cane-toad tutorial.

This wrap method just seems like a huge pain and im reluctant to use it but if if gives you results then go for it.

Oh, and don’t forget to lock your weight after you’ve adjusted them. Also, set maximum influences in your smooth bind options to 3. Having it higher might explain why bending the neck deforms the butt of your character.

Hope this helps


#6

Other random binding tips:

-Definately set the # of influences to 3. 5 just casuses troubles.

-Bind to selected joints, not complete skeleton. It takes a few more seconds, but it ensures you arent wiegting to bone tips’

-Lock out weighs as you finish weighting bones. This makes sure you dont add influence when you “smooth weights”

-Influence objects are great. Use set driven keys to set them up nicely.

-Mirror weights is very useful. Make sure you’re in bind pose first.

-If you find after you have set up your rig that you need to adjust weights, yet cant achieve bind pose due to constraints etc, do a Modify>Evaluate Nodes>Evaluate none. this temporarily disables all of the rigging that is restricting you from getting into bind pose.

-Learn about gimbal lock and rotation orders before you rig.

-The jsOrientJointUI toll is incredibly cool. I dont know how I ever rigged without it beofre. saves tons of time and fixes the bones’ orientation quite nicely.

-When mirroring joints, use the “Replacement Names” option.

Thats all I can think off the top of my head at the moment. Good luck…!

:thumbsup:

Mike R


#7

All great tips Rhonedog.

I use a different approach.

I try to bind entire skeleton since most of my models are all one piece. I set the max value to around 4 or 5 so that the variation is legible. But I’m a little color blind so I don’t see very well when it comes to shades of gray.

When I paint weights, I work from the out in, and as a big helper I will make my back ground black and turn off Show Wire frame in the display option of the Paint Weights Tool option box. That way I see exactly what I paint and were I paint. So I don’t get any surprises about the neck moving when I try to paint the elbow, or accidentally touch the chin with the brush.

If the weight is in a different place then were it needs to be I flood with a remove value of 0, then I add what I need hold the weight to that particular joint and move on.

:wavey:


#8

I used to have problems where I’d move say, the arm up and the face would move with it. Then I’d go back to the face and try replacing the whole face with a value of 0 (not right since weight gets assigned elsewhere :annoyed: )

I finally got to using the component editor which makes finding those 0.001 weighted verts much easier. And as was mentioned before, don’t subtract weights, make sure to add them.

Another trick for the small weights problem is the Prune Small Weights tool. Skin > Edit Smooth Skin > Prune Small Weights

It removes weights below a certain value and replaces them (randomly more or less, so sometimes there’s still tweaking) on the joints with more influence. And you can change the prune value of course. Just make sure that hold weights isn’t toggled on the culprit joints or you’ll see no difference :wink:

My workflow is much like Rhonedog’s I think. Select all the joints I need and smooth bind to selected joints with max influences around 3. I tend to go bottom up, but toes / fingers into the body sounds like a better approach. And also, Mirror Weights gets used a lot, that’s a great tool.

For testing / troubleshooting I key a brief animation to scrub through. It helps a lot when you’re watching a row in the knee collapse, but in that pose you can’t select the verts, and when you move back to default you don’t remember which row it was. Not that I’ve um, ever done that before… :smiley:

Good Luck :thumbsup:


#9

If I would forget which vertex I wanted to edit (of course this has never happened to me neither) I would edit them in the deformed pose, this way the result is seen right away.
And my tactic usually is to flood the whole mesh with a value of one on the root and paint everything from scratch, so I know that the hands will not influence my hip even to the smallest amount.
my 2cent


#10

Lots of great tips here…really good stuff… :smiley:

Here’s my workflow method:

Usually when I am working with a character, it is usually at least 80K polys or higher. That being said, I have a considerable amount of work trying to keep each vertice weighted exactly how I want all the time. First off, like rhonedog pointed out, your maximum influences is important. You must be aware that each vertice must have a value of 1 divided into a maximum number of influences you define for it. Personally, I don’t ever use more than 3 when binding. I also do bind to selected joints, using closest distance, rather than closest joint.

Here’s how often I use the component editor: never
I paint everything. I work one joint at a time, from the root to the tip. Each joint gets a pass of paint, a pass of weight removal, and several smooth passes, then I move onto the next joint and continue. I don’t go back, I just do them one at a time. I call this a “pass” when all the joints are done. I usually end up doing 2-3 good passes (2-3 hours per pass) before a skin is finished. I use very few tools, instead, I rely on tricks I have learned through the experience of painting.

Every stroke changes a vert’s weight to a joint. You have to account for this weight somehow. Think of where that weight might have possibly moved, then logically decide how you’re going to defeat the system and apply your weighting.

Instead of replacing with a value of .2, replace with a value of 1 close to the area you want the .2 influence, then smooth.

One last thing…animate the joints and set hotkeys for getting to the smooth paint options box (will help you speed up). This way you can hit a few buttons, scroll in the timeslider, and continue painting without even noticing.

Weighting is a confusing process…you just have to be patient. :slight_smile:

Regards,

Joe

:wavey:


#11

Hi guys-

In case anyone´s interested, yesterday I updated a script that I had done about a year ago, which helps a lot in weight painting. It creates a UI with sliders for selected object attributes. This way you don´t have to keep going back to the channel box and adjusting joint rotations- you can simply leave this window open and interactively rotate your joints while you are painting the weights. At the bottom of the UI there is also a “refresh” button which simply loads in the same attributes for the currently selected object(s)- a big time saver.

Anyway, I find this little tool quite a helper and maybe you guys will like it as well. If you´re interested, it can be downloaded from my website under the MEL scripts section.

:beer:
David


#12

What I miss most when smoth skinning is the joint lattice flexors from rigid binding. Has anyone come up with a nice idea how2 to simulate them on smooth skins?
TIA
buexe


#13

that sounds like a great tool dwalden…!

Personally, I set keys on all of the bones I want to test, and just scrub the time slider to see how the deformations are looking. Its a trick thts worked for me since Softimage 3.8.

Good tip with the component editor. Im just starting to get into using that as part of my method. Very handy for finding those subtle weights you may miss.

Mike R


#14

What I miss most when smoth skinning is the joint lattice flexors from rigid binding. Has anyone come up with a nice idea how2 to simulate them on smooth skins?

Well, you just select the vertices around the joint that you want to deform better, and add a lattice to them. Them remove these vertices from the skin cluster in the “deformer sets” Relationship Editor. Then you can use SDK to deform the lattice better. You might have already known all this though…

:beer:
-david


#15

oops, sorry, forgot to add above that you should (obviously) bind the lattice to the deformation skeleton…

-d


#16

yo dwalden74, The thing is that I usually bind my skins in a halfway bend pose, and i think that this lattice thing works with straight bones. Im right now skinning a character and I came up with a strategy that so far gives nice results around the knees, shoulders and elbows (its a cartoon character though):

  1. Copy the elbow (or whatever) joint and pointConstraint it to the elbow joint
  2. orient constraint the new joint to the elbow and the parent of it, so that the new one rotates half way of the elbow
  3. paint some delicious weights on it (add it to your skin of course)
  4. Watch some nice elbow flex

I think the advantage of this is that it actually rotates the vertices at the joint, whereas the standard interpolation of smooth skinning just is just positional/linear.
Cheers
buexe


#17

Hi

Good to hear people’s different approaches. After reading DC’s thread i may have-to take a look at the paint weights tool again.

Both approaches achieve the same thing in different ways. One being more visual the other being more technical. Still, never had to work with an 80k mesh. I imagine the paint weight tool makes more sense when working with such a dense mesh. However, for low-poly skinning i still think the component editor works out quicker.

Any thoughts?

dwalden74 -nice script BTW. Should prove very useful.

Cheers


#18

David W:

Just tried your scripts out on a test file…Magnificent :wink:

Definiteley a folder for the ol’ toolbox; thanks for that!

Atwooki


#19

I am glad to see everyone participate in this thread. Thank a lot for the info guys.

Making it a Sticky for now.


#20

Problems painting weights? Man, you fool! What’s wrong with the butt moving when you move your neck? Since your butt is connected to your neck, it should move… :open_mouth:

Just keeding! But you knew that.

Start simply. Decrease the number of Max Influences to around 3. I like to start with a dropoff rate of around 3 as well.

I’ll hit you up later tonight or tomorrow to see what your exact problems are.

One thing you should never have to do is lock your weights or use influence objects. Man, I hate both of those. Both are evil. Maya’s Influence Objects deformer is so damned slow. Kills me. Cluster action is the way to go there, but you already know my love for those little "C"s.

Anyway, back to work.

Alec