View Full Version : Tips for binding\painting weights
SheepFactory 09-16-2003, 09:14 AM 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
|
|
kmp3d
09-16-2003, 03:21 PM
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.
SheepFactory
09-16-2003, 05:33 PM
Thanks a lot man!
ntmonkey
09-16-2003, 06:40 PM
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
SaucyJack
09-16-2003, 08:15 PM
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
MikeRhone
09-16-2003, 09:24 PM
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
nottoshabi
09-17-2003, 05:07 AM
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:
jHromika
09-17-2003, 09:04 PM
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 ;)
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... :D
Good Luck :thumbsup:
Buexe
09-17-2003, 09:13 PM
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
Lots of great tips here...really good stuff.... :D
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. :)
Regards,
Joe
:wavey:
dwalden74
09-18-2003, 09:31 AM
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
Buexe
09-18-2003, 11:05 AM
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
MikeRhone
09-18-2003, 12:27 PM
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
dwalden74
09-18-2003, 03:11 PM
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
dwalden74
09-18-2003, 06:37 PM
oops, sorry, forgot to add above that you should (obviously) bind the lattice to the deformation skeleton...
-d
Buexe
09-18-2003, 06:44 PM
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. I`m right now skinning a character and I came up with a strategy that so far gives nice results around the knees, shoulders and elbows (it`s 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
SaucyJack
09-18-2003, 08:16 PM
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
Atwooki
09-18-2003, 08:40 PM
David W:
Just tried your scripts out on a test file.....Magnificent ;)
Definiteley a folder for the ol' toolbox; thanks for that!
Atwooki
SheepFactory
09-18-2003, 11:29 PM
I am glad to see everyone participate in this thread. Thank a lot for the info guys.
Making it a Sticky for now.
ACFred
09-19-2003, 04:42 AM
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..... :O
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
MikeRhone
09-19-2003, 05:04 AM
Alec is anti-influence object?
I'll get plums deep into clusters now. :thumbsup:
Mike
ACFred
09-19-2003, 05:29 AM
1000 ways to skin a cat (1003, if you ask my chum from grade-school).
Some people are die-hard Influence Object folks. I'm not saying it's bad, I just don't like it and it doesn't fit into my workflow.
Do what gets you the best deformations, Rhone, since that's the main concern in the end.
Alec
MikeRhone
09-19-2003, 07:01 AM
Well, I'm still getting into the deep TD stuff, so I need to try everything. Im still pretty much anti-rigid binding unless there is an OBVIOUS reason to go for it. I saw an awesome facial rig with cluster recently, so Im hoping to copy... nay IMPROVE on it in the near future. :)
I still have your demo on my HD ;) Inspirational for working on my own TD reel.
M Rhone
Buexe
09-19-2003, 07:34 AM
I prefer joints to clusters since you can set the joint orientation whereas the clusters axis are always world-aligned, which makes it harder to transform them in a way I want them. Or has anyone a good hint how to overcome this ?
buexe
dwalden74
09-19-2003, 08:31 AM
Just tried your scripts out on a test file.....Magnificent
Glad you liked it. I forgot to mention, the name of the tool is dwFastChannelSliders.mel, towards the bottom of my MEL Scripts page.
:beer:
David
ACFred
09-19-2003, 03:52 PM
Beuxe, clusters can be oriented just like anything else. You may think it's stuck on the world orientation because whenever you create a cluster it starts out with it's orientation similar to that of the world and then, when you try to move it around, of course the geometry will follow. The trick is to use the bindState flag to reset the cluster once you have it's orientation set the way you want.
Here is the description of bindState from the docs:
"Specifying this flag adds in a compensation to ensure the clustered objects preserve their spatial position when clustered..."
Another way to do this is to create an empty cluster, create a transform above it, orient the transform the way you want it, freeze transforms on the cluster, and then go into the Paint Set Membership Tool to populate your cluster after orientation. Either way should work.
Alec
Buexe
09-19-2003, 04:43 PM
Alright! This -bs flag is not BS @ all!
Wow, I become smarter every day, where will this end?
Thanks ACFred
buexe
alesmav
09-20-2003, 03:37 PM
Hey!
Wow, that's really a ton of advices... Anyhow, here a few kilos more:
I recently discovered that clusters are actually more usefull for face rigging than blendshapes. Blenshapes are just so linear.I also prefer clusters over joints (for face rigging). The reason for this is you have much more control over what vertices are influenced by the cluster. Imagine you define what part of the face has a certain muscle underneath the skin. You select all vertices in that area and just paint the cluster values without the fear of painting lets say over the vertices at the back of the head (like with joints). And to make the whole thing even better, offset the cluster pivot point, and voila!, rotating the you get nice arc movement of a muscle. And if on top of that you still ned to make some adjustments to the expression - go for the blendshapes.
The other thing I found absolutely fantastic when modeling, texturing, binding is the PolyConnect plugin (highend3d). I'm sure most of you know about this tool, but has anybody actually used it from modeling right to the animation phase? Here are those fantastic aspects of the plugin:
-you make a low poly mesh (or a cage) and the plugin creates a high res version in which you can change the density any time you want
for example: you have all you animation done, and then you find out the whole thing is too low res for a film output. Plam, plam, you insert a higher subdivision value - smooth edges suddenly appear :)
-The UV information gets automatically transferred from low to high poly version. Moving UV's in texture editor has never been so refreshing
-When binding, you again only have to deal with low poly version
Now the Smoth skin weight painting has never been so refreshing :)
-Finally, when animating, you simply hide the layer with a high res version and voila, you have a real time movement. No need for cutting the whole mesh into pieces and parenting those pieces to the bones.
Isn't that great. During the whole proces you don't have to touch a high poly version a SINGLE TIME!!!
Please share your experiece and tell if this superb plugin has any glitches, cos I just couldn't find any. Has anyone else gone through the whole proces using it? Strange people really don't talk much about polyConnect.
ALES
nottoshabi
09-20-2003, 05:09 PM
Wow good thread...:eek:
So much information so little time to experiment...:annoyed:
kmp3d
09-20-2003, 08:48 PM
alesmav, yeah I think Poly Connect is the same thing as CPS. I love CPS I use it all the time it has a great tool set. It does the exact same things as everything you listed. And it has a cool little floating gui with a ton of other tools and options. In any case when dealing with skinning you should always bind to a low rez control cage and use that to drive the higher rez geometry. Which CPS makes this very easy as alesmav noted. Other than that there are other ways to drive a high rez mesh with a low rez control cage. Of course the wrap deform method also works but calculates slower than a direct connection like CPS. If your dealing with a nurbs character the wrap method is probably your best choice. Theres no way I would ever want to try to weight a high rez mesh, thats just plain crazy. Using the control cage method and a little bit of creative rigging its completely possible to get away with no weight painting at all.
Buexe
09-21-2003, 12:32 PM
yo alesmav: We are using clusters AND blendshapes for facial rigs in our studio, it`s the combination that makes the best out of both methods. Sometimes the directors want that certain expression and than blendshapes are the way to go, but you are right that the linear interpolation of blendshapes is not always the most beautiful animation, so to get a little "noise" or whatever one may call it we use the clusters.
And rigging hiRes characters is something that I wouldn`t wann do, since nice deformation can get really difficult. There are a couple of ways to achieve a hiRes Geometry. We just smoothPoly the whole thing when it comes to rendering.
Anyway, I don`t know if you desparate weight painting imps out there have noticed that with the help of some nice cgTalk folk I have put together a script which will copy the weighting amongst vertices. I actually don`t know if there are already script s that do this. If you wann try it download the attached file rename it to *.mel" source the script, select the vertex from which you wanna copy the weights, then shift select the vertices where you want the weights to be copied and it "should" actually copy them, and it "should" even copy them between different polyMeshes. And maybe it works even on Nurbs ? Who knows..
Good luck
buexe
http://www.cgtalk.com/attachment.php?s=&postid=840531
SaucyJack
09-21-2003, 01:46 PM
Hi
Do you people use clusters for muscle deformation (bulging biceps etc) or just to tweak the loss of volume when joints bend such as at knees and elbows?
Also, if clusters are all that some people use then how many would a typical? character use?
Thanx in advance
alesmav
09-21-2003, 05:40 PM
Hey Jack!
Clusters are my favourite method for rigging the face, but as far as other body muscles are concerned, I believe influence objects are largely used.
ALES
Atwooki
09-21-2003, 07:19 PM
kpms:
its completely possible to get away with no weight painting at all
Maybe with a few influence objects here an' there also?
Atwooki
ACFred
09-21-2003, 08:12 PM
SaucyJack,
I use clusters to do things like muscle bulges as well. It's super easy, with predictable results. I usually put a multiplyDivide node between the rotation of a joint -- say an elbow for the bicep bulge -- and one of the translation values of the cluster. Using the multiplyDivide node in between also allows me to have a script that can be reused on characters of differing size with just a minor adjustment to a multiplication value.
Others use driven keys for it, and that works, too. It's just a preference thing.
Again, I choose the clusters over Influence Objects because there is a tiny hit to the interactivity of a character, as opposed to my experience with the Influence Objects, which seem to really slow down characters.
That's it.
Alec
kmp3d
09-21-2003, 09:48 PM
Originally posted by Atwooki
kpms:
Maybe with a few influence objects here an' there also?
Atwooki
yeah I use influence objects last when skinning. I try to get the best possible deformations with just bone placement and no weight painting. But at the moment I'm working on a character and so far all I have is bones in it and my deformations are almost perfect and I haven't painted any weights on it at all. I am binding to a low rez control cage which makes the process much easier though. I also run a script called smoothflood which goes through and smooths all joints and influence objects at the same time. The only probelm I usually have when binding is the transition of weight between joints is a little rough so I run the smoothflood and it really helps to smooth out deformations. Also connecting certain joints rotations to drive other joints rotations and translations helps greatly by creating more realistic movements (especially in the shoulder area). By using some mult/divide nodes controlling the driven bones you can fake a lot of realistic muscle movement. But again it requires a lot more time in the rigging phase. It may not be worth your time if its easier to paint the weight. For me personally, weight painting is the bane of my existence and I do everthing I can avoid it.
SaucyJack
09-23-2003, 07:06 PM
Hey
Just discovered this link which contains some pretty interesting stuff regarding charcter set-up and skinning. Covers a lot of the stuff discussed in this thread and then some. My eyes have only just stopped spinning at the complexity of it all.
Link (http://staff.ci.qut.edu.au/~barkerc/Final%20PAN%20website/panindex.htm)
:)
Buexe
09-25-2003, 01:02 PM
Hey I just discovered a nice flag for smooth skinning. Many mel folks will probably know it but maybe it is helpful to those who just want to add another influence and somehow they don`t manage to reach the bindPose (I know there are ways to do it, anyway).
mel command:
skinCLuster -e -ignoreBindPose putHereYOurSkinClusterName;
From now on Maya will not stop you from adding influences if you are in bindPose or not, just be careful though.
BTW I still didn`t get that cluster orientation issue, I tried to get an oriented cluster, but was only succesful with absolute ones. When I tried the same with relative clusters it didn`t work. If anyone has a good hint I`ll be most thanksful (come on ACFred,pleeaassseee!!!! )
cheers
buexe
Buexe
09-25-2003, 01:03 PM
-e correct spelling is skinCluster not skinCLuster, sorry!
Hey, nice discussion here....
Sorry bother you since I don't feel capable yet to discuss which method to use: I'm stucked with Paint Weights tool, and I didn't try other else yet.
I think my case is simple. When I try to add influence to a joint with my Paint Weights Tool, it simply don't show up in the scene view. For example: I set the tool to add, and Value to 1. If I would click the flood the button, then my whole character should turn white, right? But it doesn't....it only show up when I cancel the selection and reselect it again. It's like some sort of refreshing problem...
I imagine this could be a problem of limited hardware capability provided by my graphic card (which is a Fire GL2). Is that correct?
Is there anybody out here who have experienced problems like mine?
Thank you all.
magilla
10-08-2003, 04:57 AM
Two invaluable scripts I use constantly whilst weighting:
select bones, then mesh, then:
newSkinCluster "-toSelectedBones -ibp -mi 3 -dr 10";
I use this when I'm importing weights from other chars or I need to tweak bone positions and rebind
--
and
--
http://www.highend3d.com/maya/mel/?section=animation#729
the second being "fixWeight.mel" which lets you tweak verts and move, sew, cut UVs and then nuke the history whilst maintaining the weighting.
Is there a quick way to select the bone/influence object in the workspace as opposed to resorting back to hunting through the tiny scroll window in the paint weights dialogue box?:annoyed:
--magilla
nottoshabi
10-08-2003, 05:47 PM
Originally posted by magilla
Is there a quick way to select the bone/influence object in the workspace as opposed to resorting back to hunting through the tiny scroll window in the paint weights dialogue box?:annoyed:
--magilla
You can right click on the joint in the workspace and select it for weight painting....
:wavey:
magilla
10-09-2003, 01:08 AM
that doesn't work - this hint is in the dialogue box, but I've never understood it.
if you select the bone via right click - it opens the attribute window for that bone, but the selected bone for painting in the weight paints dialogue box doesn't change.
--magilla
dwalden74
10-09-2003, 07:39 AM
that doesn't work - this hint is in the dialogue box, but I've never understood it
Sure it works and it´s great. I use that all the time.
:beer:
David
magilla
10-10-2003, 12:05 AM
hey, you're right - it works in 5.0, but I don't get the same result in 4.0!!:surprised - which is what I use at work.
--magilla
vincenTloh
11-04-2003, 02:02 AM
i having 1 problem in paint skin weight. my model is in 1 meshes.
i had bind the model (smooth bind). Setup complete.
But i dunno how to transfer the weight in the right to the laft. U guys mention about "mirror skin weight" , will this tool fix my problem, i hav tried mirror skin weight, but i donno the right way 2 use it i guess, coz i kept having undesired outcome. Can u expert out there teach me how to fix this problem, ITs KILLING ME!!
Thanku.
lildragon
11-20-2003, 01:55 AM
Originally posted by magilla
hey, you're right - it works in 5.0, but I don't get the same result in 4.0!!:surprised - which is what I use at work.
--magilla
You must enable the paint weights tool first before you do it, I use it in both 4 and 5 at work, handy...
-lild
magilla
11-20-2003, 02:49 AM
three things that help.... turn on the $%@#&* layer with the bones in it, "show bones" in the panel menu and crank the joint size to maximum......
now it works - doh!
thank you
--magilla
fr3drik
11-29-2003, 05:35 PM
Anyone have any in-depth and thorough tutorial links laying around on weight painting methods?
EDIT: I ended up using blendshapes in combination with driven keys. I create driven keys between a blendshape and a joint. Works like a charm and I have very good control of what is happening. Super-easy to make muscle flex etc...
Laa-Yosh
12-02-2003, 02:19 PM
Another idea for mixing smooth skinning and flexors: create sets from your model's vertices for the parts you want to have different skinning on. Ie. Torso set for smooth skinning, Left Leg set for rigid skinnig. Then select the set members, proper bones and assign one of the bindings.
In our practice, Rigid bind and Flexors work pretty well for all limbs, whereas Smooth bind is better for the shoulders, torso, neck and hip area. You can also use driven keys on the elbow/knee flexor points to finetune your deformations - pretty quick and effective way to do the skinning.
By the way, the problem with skinning to joints is that this method cannot maintain the body's volume. You get a "plastic tube" effect on most joints and the torso, which is pretty hard to fix, even with clever weighting. This is because the skinning only applies rotations to the vertices, using the joint as a pivot - whereas the skin does move all around, inside and outside, as muscles flex and slide under it. Try binding a fat character - it's belly will miracously disappear as he bends forward, and expand as he leans back...
IMHO, there are 3 main approaches to fix this problem:
- full muscle simulation, as seen on the LOTR trolls and Gollum
- joint rotation driven blendshapes, as seen on the Hulk
- joint rotation driven clusters, as seen on the Pan character (see link in a previous post)
Wrap deformers are just an extension/simplification to this as you still have to use some advanced methods on the wrap object itself.
And I haven't really managed to get proper behaviour from influence objects, and using many extra bones or muscle bones doesn't really help either, as your time spent on weight painting will only increase...
dwalden74
12-03-2003, 06:08 PM
kmp3d-
yeah I use influence objects last when skinning. I try to get the best possible deformations with just bone placement and no weight painting. But at the moment I'm working on a character and so far all I have is bones in it and my deformations are almost perfect and I haven't painted any weights on it at all
I´d love to know how you´re doing this. This topic came up recently when I was discussing weight painting with a friend of mine who´s an XSI user. He claims that in XSI he does virtually no weight painting, thanks to the bounding volume tools that are part of XSI´s skinning tools. I´m still a bit incredulous though...
You said you use influence objects last. That means that you´ve already added additional skinning joints to your skeleton before you bind? (Which for me would be the equivalent of adding INF objs anyway.) This isn´t really clear, especially given the fact that adding extra "binding" joints is certainly necessary to get good deformations. Unless you´ve got some secret weapon up your sleave? :) But from your posts it sounded like through proper joint-placement alone you were able to circumvent the agonizing weight-painting process.
Maybe you could elaborate a little more on what exactly you´re doing so I could understand this better. I also hate weight painting, but sadly have no weapon against it.
cheers-
David
PS: Hats off to the guy who mentioned the cluster "-bs" flag. It´s a beauty!
magilla
12-03-2003, 09:32 PM
Messiah:animate makes the same claims, but to my (inexperienced) efforts I couldn't tell the difference between default Messiah weights and default Maya weights - the only advantage is that Messiah weights update automatically if you reposition bones or change mesh.
It seems that if you don't want to paint weights there are many alternatives, but it's just as much work. The only advantage is that the reiterative process of binding/rigging a character is somewhat easier if you can avoid painting weights. I was reading some threads on Stahlberg's chars and he mentioned he never paints weights and compensates with sdk blendshapes on joint deformations.
I like the idea of rigid bind and smooth bind combinations - I didn't know you could do that on the same mesh!
--magilla
Dargon
12-03-2003, 09:37 PM
I don't know if anybody posted this tip earlier, but this is a small tip that saves a lot of time weighting for multipart models.
When I skin them, I individually select only the joints that will affect the given geometry. (like the lower arm joint, wrist an all finger joints to skin a glove)
This way, you can greatly reduce the chance of having skin bind to totally inappropriate joints, and when you go to paint wieghts, you'll have a fairly small list of joints to choose from. It also will run faster.
f3rry
12-03-2003, 10:50 PM
OK,
What's your favorite setup for Smooth Bind?
I run Complete Joint, Closest distance, 3 Max influence and high drop off.
I have been practising Antropus way rigging the face but my setup didn't work at all....
The default setting even worse.....
dwalden74
12-04-2003, 07:08 AM
but to my (inexperienced) efforts I couldn't tell the difference between default Messiah weights and default Maya weights - the only advantage is that Messiah weights update automatically if you reposition bones or change mesh.
Magilla-
Having the weights update when you reposition the bones *is* a useful feature, but it still will not free you from having to paint weights to fix bad deformations or collapsing geometry. That´s just not enough. Unless, of course, you´re working with many extra "skinning" joints parented into your hierarchy. This is the only way in which joints alone would be enough, but it requires much time spent in weighting.
I was reading some threads on Stahlberg's chars and he mentioned he never paints weights and compensates with sdk blendshapes on joint deformations.
I think I would almost prefer weight painting... ;)
kmp3d
12-05-2003, 05:01 PM
I´d love to know how you´re doing this. This topic came up recently when I was discussing weight painting with a friend of mine who´s an XSI user. He claims that in XSI he does virtually no weight painting, thanks to the bounding volume tools that are part of XSI´s skinning tools. I´m still a bit incredulous though...
It works believe me...... but there is a lot of factors that play into it, that will depend on how well it works.... or doesn't. First off what is the default pose of the character, I get the best results when the character is at a somewhat relaxed pose. Arms down at a 45 degree angle, fingers spread, feet shoulder width apart. I know you can't always control what the default pose is going to be but all is not lost. Next, I guess this is obvious, always bind to a low rez control cage, that drives a higher rez mesh through wrap deform or some kind of connection. Then I start building the skeleton, you pretty much hit it on the head, I use extra skinning joints since they are nothing more than Inf Obj. Of course extra bicep and forearm joints. Build complete rib structure. And create your leg joints. At this point I usually bind and start moving the skeleton around. " Ohh that deforms really badly, but if I move those joints there, and add a few more here where its collapsing.... (unbind, add the joints, rebind) hey, thats a lot better" But it seems to me joint placement is everything, I always try to move a joints around to get the best results before I start adding joints. Usually I end up with the problem that there is not a smooth transition of weight between neighboring joints. Thats where I use a script I got off of Highend3d that will go through and smooth every joint and inf obj all at once.... good stuff. That usually smooths out the weight transistions between joints. Basically I keep unbinding make changes and then rebind and test until everything looks pretty good. Then I after I create my rig controls I use their movement to drive the movement of certain joints that are in bad deforming areas, but this is only after I'm sure joint placement won't fix it. No secret weapon here just a lot of testing, unbinding, tweaking, and then rebind. Then after that finally Influence Objects. I remember in a thread somewhere(I can't seem to find it) our mod Jason S. said that the best rigs require no weight painting. I'm not saying that my rigs are anywhere close to his level of quality, but because he said it, I knew it was possible. Now is all the trouble worth it??? If you can more easily paint the weight.... then I say paint it. But if you plan unbinding a lot I say its worth the trouble. But again I avoid weight painting like the plague. I hope this makes things a little clearer, if theres anything else you want to know just ask, I'll be glad to answer.
He claims that in XSI he does virtually no weight painting, thanks to the bounding volume tools that are part of XSI´s skinning tools.
MMMM volume bounding tools.... I may have to switch XSI... :drool:
dwalden74
12-05-2003, 07:40 PM
Thanks for the reply- I might try this out.
Basically I keep unbinding make changes and then rebind and test until everything looks pretty good
Sounds like we maybe could script something together which might speed this process up...hmmm. Of course, the best would be if Alias implemented better skinning tools. Like being able to add joints even when we´re out of bind pose (`skinCluster -ibp` does not do this the way we would like), and something similar to XSI´s bounding volumes.
:beer:
David
kmp3d
12-05-2003, 08:01 PM
yeah I can see a how a bounding volume tools would be incredible. I've never seen them in use on XSI, how exactly do you utilize them. I'd imagine (in a maya implementation) that each joint has a bounding shape of sort that can moved, scaled, and rotated to control the distribution of the joints weight. And as well as controls on the shape that can be used to control dropoff and the smoothness of the weight transition. Almost like each joint has a customizable influence object built right in. Man..... would that not be the sweetest???? :bounce: If you got any ideas please share, I'm not the most experienced scripter but I'm learning. Feel free to email me or whatever.
SpiritWalker
12-07-2003, 06:47 PM
im 14 (soon 15) years old and from israel, im right now working on my first full character, i began doing the rigging to the character and i m working with the Paint Skin Weights Tool.
i know how to work with the tool but i do have some questions
please answer this question:
what does Replace,Add,Smooth and Sclae means? i know how to work with them but i dont really know the definition of each one.
second question is about the Mirror Skin Wheights option. can some1 plz explain to me how does it work? do i need to choose the same Vertices on both sides???? i tried to look ad the F1 help menue but i didnt understoon, if anyone could help me it will be great. im a beginner
im a beginner- i work about 5 months on Maya 4.5 but i dont work much because i have school and i need good grades and i have activities other then Maya. but i definitely know that 3D Animation is my future, i love it, cant get enough of it and every time i can i work on it, im addicted and i have motivation and a will.
anyway i really need help and i have been watching the amazing artists on this forum.
plz i need help
if you need any pictures of the model or anything just tell me and ill show the Model
(sorry for my english)
need help :cry:
AniMo
12-30-2003, 01:42 PM
nice thread : usefull :thumbsup:
i really would like to c some screenshots of your ideas using cluster vs influence and stuff :)
so we can better imagine what the real diffrent pros/con are for the individual styles
misterdi
12-31-2003, 06:32 AM
Originally posted by SpiritWalker
what does Replace,Add,Smooth and Sclae means? i know how to work with them but i dont really know the definition of each one.
Replace, will change the weight value to whatever value you set times the opacity.
Add, will add (value * opacity) to the existing weight value, if you set the value to negative value it will do substract instead of add.
Scale, will scale (or multiply) existing weight value, value larger then 1.0 will scale the weight value up, while value less than 1.0 will scale the weight value down.
Smooth, will distribute value to surrounding vertex/CVs, so it works like smudging the value around.
To get value larger than 1 or negative you might need to adjust Min/Max value, and to keep value between a certain range you can use clamp Lower/Upper.
Flood will flood the value to all vertex/CVs like bucket paint in paint apps.
Unfortunately you can not mask the vertex/CVs like in artisan with the weight painting.
Khaos
01-16-2004, 11:30 PM
Here's the Quote from Jason S.
The best skinning rigs need NO paint work, as the model can change quite often within a production.. and if you don't have to manually paint anything, it's much easier to swap in new geometry. The best thing to do is set up your skeleton so it works with minimal painting.. that means putting influence objects and bones close to the skin & setting up influence objects which can help parts stretch and stuff. :bowdown:
ammon
01-28-2004, 03:15 AM
but OMG I wish I'd have read some of this before I wasted so much time already : ) :wip:
magilla
01-29-2004, 09:39 PM
of course if you are working in games with a limited bone count...
We have manged to reduce the time spent weighting characters from up to a day (when we first started with Maya) to about 30 minutes, simply by modifying the mesh (edgeloops and vert placement) and the position of the bones within the mesh.
The techniques were not immediately apparent and sometimes contradict most of the info you read about modelling and rigging - the biggest issue we found was centreing the pivot in the mesh rather than pushing it to one side as you would do with a shoulder or elbow. This was also because we have to deal with multiple character meshes that all have to fit on the one rig, so a generic central position allowed greater variation in the mesh.
--magilla
AndersEgleus
02-05-2004, 10:18 AM
Quote by magilla:
the biggest issue we found was centreing the pivot in the mesh rather than pushing it to one side as you would do with a shoulder or elbow.
That makes a lot of sense. If you feel the tip of your elbow while rotating it, you will notice that it moves back and forth quite a bit, making it an inapropriate place to put a joint. The actual axis of rotation seems to go through two lumps on the end of the upper arm bone (humerus). I think the anatomical names of these lumps are medial and lateral epicondyle. (note: I have no formal anatomical education whatsoever, I just conclude this after studying my own elbow and consulting Sarah Simblet's Anatomy for the Artist).
Personally, my biggest problem with skinning is in the workflow of transfering weights between meshes. A.t.m I'm working on a low poly character, where the topology of the mesh is very dependant on joint deformations, so I keep having to change the topology when I skin and thus having to re-skin. Now, since my topology is skin-dependant, I don't want to start UVing seriously until I know my topology is right, and Maya's weight export relies on proper UVs. So I've made a preliminary UV mapping, just making sure the UVs don't overlap and are within the 0,0-1,1 UV space. But as soon as I make changes to my topology, I usually mess up the UVs. Quite a catch 22 there. Seems like your model and mapping has to be 100% finished before you even start skinning.
Anyway I really want a way to work more flexibly with modelling/UVing/skinning, where you don't have to take a sort of assembly line approach (1 model; 2 UVs; 3 skin weights), so I decided to start coding a weight exporter/importer that's more flexible (albeit slower) than the availible skin weight transfer scripts (Maya's UV-dependant one, which, to add to the drama, produces huge filesizes, and S.D. Serbos' and M. Bazhutkin's exporters which are quite limited in respect to topology and that you can only export/import for single skin clusters and whatnot).
The one I'm working on will be
*UV independent.
*Topology independent.
*Able to transfer weights form poly to Nurbs, Subd to poly objects and so forth.
The way it works is it only exports the world space coordinates of the control points (verts/CVs) and their weights. When importing, it checks which points in the export list are closest (world space-wise) to the "importee" point and averages the weights of the exported points around it.
I'm quite new to both Maya and Mel (I'm a Max/Maxscript native) so it's taking its time, but I should have a version up for testing next week. Also, I might have missed a feature or two in Maya, so if there's any way to get around the above problems before I do any (more) unnecessary work on the script, please let me know.
magilla
02-05-2004, 11:01 PM
I have mentioned this very problem (UV weightmapping being absolutely useless) to the Maya development people - obviously to no avail, because 5.0 still perserveres with this ridiculous method (can you tell I'm not a fan of weightmaps?). It makes me wonder why they bother asking our opinions if they pay no attention - We even had a tech rep out at our office who couldn't make it work properly. I think the problem is in the workflow - as Anders suggests - we always want to begin weighting and animating before doing final UVs.
Big Idea save weights mel (from highend) does exactly what you're proposing with saving world co-ords, it also gives the option to use vert number. i find that either the MB weightsave script or the Big Idea script will give you the results you need dependant on whether you change topology or influence objects.
--magilla
AndersEgleus
02-06-2004, 09:36 AM
Big Idea save weights mel (from highend) does exactly what you're proposing with saving world co-ords
:banghead:
Note to self: must remember to do better research before starting a script :hmm:
This is so typical! I just got some useful results from my script last night, only to find out today that I've been reinventing the wheel (well, that may be exagerating the significance of a weight exporter, but still).
Anyway, I think I'm gonna go ahead and finish it. I haven't tried Michael Comet's (Big Idea) script (don't know if it works for PC even), but I've browsed the source and it seems to work a little bit differently. For one, mine's not limited to one skin cluster. Secondly, mine doen't just match the closest point within threshold, but finds any number (set by the user) of exported points within the distance threshold and either averages their weights based on their distance from the selected point or averages their weights evenly or mixes between distance averaging and even averaging using a bias value. On the other hand, mine doesn't give the option to use any local space, only world space, but I might add that.
I'm also planning to do some kind of mirroring stuff, i.e. ignoring exported points on one side of the mirror axis, plus some kind of interactive export joint/import joint linking (in case the import joints have different names than the export joints), but not in this version.
Regarding weightmaps, I think they're supposed to be very useful when working with Nurbs, since Nurbs get proper UVs on creation, but a lot of users never touch Nurbs, especially for character stuff.
Thanks for the heads up about the Big Idea script.
magilla
02-08-2004, 10:02 PM
mirroring:drool:
I'll be looking forward to that...
--magilla
magilla
02-08-2004, 10:02 PM
mirroring:drool:
I'll be looking forward to that...
--magilla
AndersEgleus
02-11-2004, 01:48 PM
OK, I've finished a test version of the script.
Get it here (http://www.cgtalk.com/showthread.php?s=&threadid=122121).
Buexe
02-14-2004, 08:09 PM
hi guys and gals, have you ever thought while painting smooth skin weights with artisan that the influence object list is pretty short in the Tool options window? If this is the case I may have a useful hint for you (unless you already know it of course) how to make this (short) list loooonger.
The length of the Influence list is defined in a MEL file called artAttrSkinProperties.mel which should reside in your maya/scripts/others directory. To change the length of the list do the following:
1. make a backup of artAttrSkinProperties.mel !!!!!!!!!
1a. Read the notes on the top of the file (modify at your own risk!)
2. open it in your favourite text editor
3. change line no. 149 which should read something like:
frameLayout -l "Influence "
to
frameLayout -l "Influence " -h 800
this changes the height of the frameLayout in which the list resides
4. change line no. 66 which should read something like:
textScrollList -w 240 -nr 7 -ams false
to
textScrollList -w 240 -nr 56 -ams false
this actually changes the number of Rows displayed in the Influence object list.
5. save it and restart maya
6. check the list (you might have to make the values fit your screen/personal comfort, I use it on a 1600 * 1200 screen)
You should be doing this only if you feel comfortable and know what you are doing. Your Admin/coworkers might not like the idea either of changing standard MAYA scripts, so make sure you don`t get yourself in trouble.
cheers
(back in skinning biz)
buexe
Buexe
02-14-2004, 08:20 PM
edit to my last post:
3. This line is actually line no. 120 ( I claimed it to be no. 149)
frameLayout -l "Influence "
sorry about that : )
buexe
Stahlberg
05-28-2004, 04:46 PM
David Walden wrote:
I think I would almost prefer weight painting...
First, I'd be using Blendshapes for almost every joint anyway, with or without weight painting. I love it, it's the only tool that can give me the control and feedback I need in order to get in the Zone when sculpting. Clusters? Maybe, but would probably take about as long to set up, I guess it's a matter of taste.
Second, I do what kmp3d does, I skin and unskin a hundred times before a character is done, so I save a LOT of time if I can skip the weight-painting.
Third, if I did paint, it would probably be slightly different each time, and so probably screw up my Blendshapes (or whatever Clusters or Influences you prefer), and so require lots of additional tweaking for each new unskin-skin cycle.
kmp3d, hey I thought I was the only one doing it that way! :)
M.E.L.
05-28-2004, 04:51 PM
Originally posted by misterdi
Unfortunately you can not mask the vertex/CVs like in artisan with the weight painting.
Sure you can :)
go into component mode, select the vertices you wish to mask and go into the Paint Weights Toolbox. Select the joints you want to perform the weighting on and just use the flood tool.
You can add a flood amount of 0.01 to the entire cv cluster and then simply switch to a smooth value of 0.1 and just smooth out the masked cv's...
I swear by this method for all my weighting...it's a Godsend :buttrock: This also helps extremely for smoothing your entire model with a global smooth and getting rid of any kinks from other joints.
Cheers,
-shawn
Skinny Version 1.3 for Maya
With Skinny you can make Sets for all the body parts and area you want the paint individual.
That way you wouldn't affect other areas by mistake. As you know Maya have "normalize weight"- feature that change skin value, special while using the brush Smooth.
Body part Sets is the best way to skin huge amount of joints and influence objects. If you ever tried to skin a character with lots of joints + influence objects, you got hard time dealing with all of them. with body part Sets ( "IndexFinger", "LeftLeg", "Neck" ) you can work on selected joints without huge list of all the joints in the character
More Features:
-Smaller and faster Paint weight UI then Maya's
-Rotating Joints while skinning. Excellent feature for seen the skin in action without leaving the skinning process.
-List Joints by: alphabetical, By Hold , Graph order.
-Hold Joints & influence by: Selected or All
-Mirror weight, Prune Weight.
You can download it from Highend3d.com
http://www.highend3d.com/maya/mel/?section=artisan#2950
Or search "Skinny"
Stahlberg wrote:
I'd be using Blendshapes for almost every joint anyway, with or without weight painting. I love it, it's the only tool that can give me the control and feedback I need in order to get in the Zone when sculpting.
I find this appealing, especially as weight painting suddenly becomes somewhat of a non-issue. However I have found it very difficult to "sculpt" with any precision when the bone is rotated because the vertices local axes are in some wierd xyz-space.
Now I think I have found a partial work-around. I would be interested in comments, since I have only done limited testing.
Smooth bind meshA to the skeleton.
Rotate the joint as required.
Duplicate meshA (without history) - this is meshB.
Make a connection: meshA.outMesh --> meshB.inMesh
Edit the shape of meshB as required.
Return the joint to the bind angle.
MeshB will straighten out, and most likely look strange.
Duplicate meshB (without history) - this is meshC.
Create a blendshape for meshA with meshC as the target shape. The blendshape must be created with deformation-order="parallel" in the advanced tab.
Use driven keys to associate the joint rotation with the blendshape target amount (or do you guys use expressions for this?).
(You can delete meshB)
This method allows the sculpting of the blendshape target to be done much more easily. A limitation is that you cant interactively rotate the joint during the sculpting process.
So far I have been pleased with this work flow, but have yet to use it in a complex character rigging.
magilla
06-22-2004, 12:19 AM
That's a very cool method, it is a pity it is rather complex to setup for every joint. I have been using this (http://www.animagicnet.no/maya/bodyShape/) to do exactly the same thing - in a rather brute force way. It takes rather a long time to compute on heavy meshes, but works perfectly for low-poly (or sub-d) meshes.
btw - I never use expressions in character setup, if you use referencing the expressions don't work anymore since they are name based (and referencing changes the names of everything). Unless of course DW has made another magic mel that deals with this :) .
re: Bodyshape
Thanks Magilla. I just had a look at the website, and it looks like a great solution. Do you know if it works with maya 6 ? (I wont get a chance to try it myself for a while)
magilla
06-22-2004, 04:10 AM
no, it only works with 4 (haven't tried 6, but it doesn't work with 5). I make (import) my mesh and unrigged skeleton in 4, default weight/bind to skeleton, create all of the blendshapes and bring them back into 5 and connect the rig.
--magilla
sporadic
06-22-2004, 12:18 PM
There is a version of bodyShape at highend3D (version 1.1) that supposedly works with Maya 5. I haven't actually tried it (yet), but you might want to try it, since it sounds like it'd take a fairly large chunk out of your workflow.
sporadic
06-22-2004, 04:14 PM
Sorry if this is a repeat, I think I messed up my previous post. There is a version of bodyShape (1.1) on highend3D that works with Maya 5. I haven't tried it though.
Forthose who have, how well can you get it to work with shoulders and other multi-directional joints?
Stahlberg
06-24-2004, 01:37 AM
Make a connection: meshA.outMesh --> meshB.inMesh
Edit the shape of meshB as required.That's brilliant. It doesn't need to be done that way for every joint, but for the extreme positions, especially in the shoulders and hips, it's a life saver. Quite simple, and it can probably be made to take only 1 click to set, using Mel.
edit:
Hm, bad news on both those items. I tried the connection, and all seemed rosy - I was indeed able to make nicer deformations very quickly in the hips and shoulders - until I replaced my old Blendshape with the new improved one and tested it. It didn't look exactly like what I'd been modeling, not a big difference but big enough to ruin it and look worse than the old Blendshape. Tried it several times. I have no other deformers or history affecting this mesh, it's fairly straight forward. Just another one of these Disappointments of CG, things that should work but don't.
(And about the Mel, well something went wrong when it hit the command to start the Connection Editor, so I did it by hand.)
Can't use that Highend thing mentioned because I have to use v6.
Also tried a mirror-blendshape script today that had just enough error in the result to be totally useless, all in all not one of my good days... :(
It didn't look exactly like what I'd been modeling, not a big difference but big enough to ruin it and look worse than the old Blendshape.Hmmm. Not good. I still have not had time to test this myself. I am disappointed to hear your results though, because in my simple tests the resulting blendshape deformed exactly to match the one I had sculpted. I thought I was onto something.
I will give it some more thought and testing in the near future and report back.
Edit:
A few days later.....
My suggested method doesnt work in practice. When I originally tested it, I only rotated the joint that was associated with the blendshape - and it looked like it worked. However as soon as other joints are rotated unexpected deformations happen. I can see why it doesnt work, but I dont know how to correct for it. I now understand why the bodyShape method takes an itterative approach to come up with the required target blendshapes.
Anyway, sorry to have given anybody false hope.
Atwooki
06-26-2004, 03:34 PM
//Try this one:
// For connecting the outMesh to the inMesh:
// Select shape node of the output object, then select the shape node of the input object; run below:
global proc connectInOutMesh ()
{
string $selection[] = `ls -sl -s`;
if ((`size $selection`) == 2)
{
connectAttr -f ($selection[0] + ".outMesh") ($selection[1] + ".inMesh");
} else {
error "You must select two Shape nodes...outMesh shape first then inMesh shape.";
}
}
Atwooki
Laa-Yosh
06-26-2004, 04:11 PM
What we actually need for corrective blendshapes is a new BlendShape deformer in Maya... with features like these:
- Store deformations as relative translation vectors. Although you need a reference coordinate system for this, which should update with the mesh deformation - maybe the vertex normal? This would allow the blendshape to sit at the END of the deformation chain.
- No need to keep seperate target objects for editing, store all the data in the mesh itself. There are numerous examples for this workflow, like Lightwave or XSI4 or Mirai. It could also help with single-skin characters, because you only need to store data for vertices that actually deform for the given shape.
- Some advanced tools to help manage blendshape modeling and mixing for new targets, with stuff like per-vertex masking, mirroring.
This is one situation where the open nature of Maya is more of a problem than a good thing... you really have to hardcode all these features.
The other solution is of course to use another app, but that would only help with facial shapes...
Stahlberg
06-27-2004, 02:42 AM
YES. Alias decision-makers if you're reading this, please make this one of your highest priorities. The humble Blendshape hasn't changed much since v.1 or whatever, yet it's the most important deformer for character animation. Time to bring it into the 21st century for all of us who can't afford a team of programmers developing inhouse tools. Thank you.
gromdt
06-28-2004, 07:25 AM
I've got a rigid skinning dilemma...
I'm skinning a low poly character (designed for realtime), hes about 1400 tris. I haven't used Maya's rigid skinning before, in the past I've done some light rigging in Max. Anyway, I'm getting the hang of it but here's my one problem:
If I bind and a joint isnt close enough to any points, a skin cluster node is not created for it, hence I cannot assign vertices to it later... if anyone knows how to trick Maya into making a new skin cluster for a joint, AFTER skinning... please let me know asap. Thanks in advance.
nottoshabi
06-28-2004, 08:45 PM
I dont thinck you can add a joint to a skin cluster after a bind. Expecialy with rigid. But I could be wrong. What I could sugest is going back and smooth skin it. The deformations will be easier to work with. But if you dont want to do that. Then select thos cv's and asighn a cluster to it then parent the cluster to the joint. Its not the best way of doing this but it will work. Just paint the weights with the edit membership tool on the cluster.
M.E.L.
06-28-2004, 08:52 PM
You can add joints to skinClusters under smooth binding...but rigid binding it's a done deal as far as I know...the rigid bind tools haven't been updated or touched much at all in a looooong time.
for smooth bind you just choose Add Influence and turn off the Use Geometry selection, this adds the joint to your influence list :)
-shawn
gromdt
06-28-2004, 09:13 PM
Thats a shame, I really hate the smooth skinning tools. Weighting a smooth skin in maya has always been a huge tangled mess for me. Thanks for answering notto and MEL.
chipmandoo
07-01-2004, 02:40 AM
Just a quick tip i found today. (not sure if this is a bug or not, maya 6)
I found that if i did a 'replace' of 0 to any points and then selected a different joint, then go back the the joint that i just did the replace 0 with, the changed had gone, as in it went back to what it was before. This happened with 'Hold' on the joint as well.
I found that instead of doing a Replace of 0, that doing a Replace of 0.001 worked, then it can be removed with a prune values.
Not sure if this is a clever way todo it, but worked for me :thumbsup:
P.S. David Walden (http://www.davidwalden.com/) SkinnyTools mel script is really good. It asically puts all the skinning (smooth) tools that you need in one GUI, and adds loads of neat stuff. Thanks David
I have just spotted this on highend3d
BSpiritCorrectiveShape.mel
I think Christian Breitling has done what I attempted (and failed) to do, but his method works, allowing sculpting of corrective blendshapes to be done while allowing for mesh deformation by the whole skeleton.
Works in maya 6 too. (http://www.highend3d.com/files/dl.3d?group=melscripts&file_loc=BSpiritCorrectiveShape-v1.0-.mel&file_id=3018)
meatpuppet
07-22-2004, 07:26 PM
I've got a rigid skinning dilemma...
If I bind and a joint isnt close enough to any points, a skin cluster node is not created for it, hence I cannot assign vertices to it later... if anyone knows how to trick Maya into making a new skin cluster for a joint, AFTER skinning... please let me know asap. Thanks in advance.i ran into this problem before (are we the only ones using rigid bind) and was given this work around by an instructor.
1. make a cube and scale it way down, about the size of a joint
2. snap-move it to the joint that won't take any weight
3. duplicate and move cubes to any additional problematic joints
4. select the skin, little cubes, and joints - rigid bind
5. delete the cubes, the joints still might not have any skin vertices weighted to them but they're in the bind now so you can add them as you need
and lastly... well, this didn't always work but it _usually_ did... after a few trys... :thumbsup:
hope it helps.
Axercise
08-01-2004, 07:19 AM
Wow.
I just went through this entire thread, and that's all i gotta say.
gromdt
08-01-2004, 03:02 PM
MeatPuppet: That's brilliant, thank you!
Eagles
08-03-2004, 03:57 AM
MeatPuppet: That's brilliant, thank you!,好,太好了呵呵
不是吧
FatAssasin
09-26-2004, 05:23 PM
This is an awesome thread and I've learned a ton from reading throught the whole thing. I just have one question, does anyone know if the Smoothflood script that kmp3d (http://www.cgtalk.com/member.php?u=12771) mentions is available for 6? I tried the version from Highend3d, but it's just giving me an error. So I've been doing the same thing manually and I really like the results, but of course it would be nicer if I could do it through a script.
BTW, this seems like it should a default option in the Smooth Bind Options, it's so useful. I mean, it's called "Smooth Bind", why wouldn't you want the weights to be smoothed out? :) vbmenu_register("postmenu_842909", true);
MCage
10-12-2004, 03:01 PM
Interesting thread.. :)
Chrono
10-13-2004, 10:30 PM
Originally Posted by gromdt
Thats a shame, I really hate the smooth skinning tools. Weighting a smooth skin in maya has always been a huge tangled mess for me. Thanks for answering notto and MEL.
You are not alone!!
I've been working for a while on a character based on the LowMan rig and I have skinned it like thousands of times and it never gets right. Always something that messes up! Last thing I did was deleting the legs and made new ones. Felt I did'nt need the IK/FK stuff. I put it together the "Jason way" with grouping hierarchy the IKhandles. But now the whole leg...but the foot flips 180 when I translate hip down in Y axis. I have tried orienting and freezing the joints...but yarrgh. Rigging only makes me maaad!! http://www.cgtalk.com/images/icons/icon8.gif
Any pionters or tips from anyone are more than welcome!!
kaynine
10-14-2004, 11:15 PM
Not sure if this is the right thread for this, but here goes....
I've been using the blendshape rigging system (as described by Stahlberg) for my character. The main drawback of this system is that everytime you modify your lvl0 mesh, you need to redo the blendshapes. The suggestion has been made a couple of times that connecting the Lvl0.mesh to the blendshape.mesh fixes the problem. However when I do that, I find that yes, modifications to the Lvl0 mesh alter the blendshapes, but then blendshapes also alter the Lvl0 mesh, altering the blendshapes. So you end up with circular reference. If there is a way around this, pls let me know!
Anyway, a solution.....
I use 2 scripts. One to connect the blendshapes to the Lvl0 mesh and then bind to the rig. Then the other script disconnects the blendshapes and rig, and connects the Lvl0.mesh to the blendshapes.mesh. So while I'm working on blendshapes, if a Lvl0 mod is required I run the "disconnect" script, add/change/delete vertices, which are reflected in the blendshape meshes. Then I run the "connect" script to join it all up again.
The script also handles copying of skin weights, so they are not lost. Next modification will be to automate the mirror cut of the mesh when it's disconnected, and remirroring on connection.
So the result is a system where changes can be made to the base Lvl0 mesh, which are reflected in the blendshapes, without loosing the blendshape deformations.
I'd be happy to post snipets of the mel script that does this, although it's obviously customised for the blendshapes that my model is using.
Stahlberg
10-17-2004, 03:54 AM
That sounds really great, kaynine. A brilliant idea. I should try it (even though due to the many limitations with Subd's I finally gave up on them and now I use SmoothProxy, it should still work I think).
tempus
11-12-2004, 05:22 AM
I really have my hopes pinned on CGtoolkit MuscleTK Plugin http://www.cgtoolkit.net (http://www.cgtoolkit.net/)
I think is time for a really new way to do skinning, without all that stuff or influences and hours of Paint Skin Weights :scream: ...
By the way, if somebody have tryed or knows more about MuscleTK plugin, I appreciate any info.
magilla
11-14-2004, 10:39 PM
cgMuscle may be a great system, but I can't see it being less work than blendshapes - unless you plan on using the default muscles you're going to be customising dozens of muscle shapes to get a nice result. The bonus being that it should work regardless of any mesh changes, but shouldn't these be worked out before you start doing any blendshapes?
I'd love to see what is going on in that script kaynine.
--magilla
Pickman
01-15-2005, 09:27 PM
Hi there, just popping in to have a clear thought on what you said about the replace option in the paint weights tool. I recently got Hyper real facial setup by Erick Miller and he says using replace with low opacity value is the way to go for skinning. Is that only appropriate for facial rigging and not body ? I started weighting my body with this skinning using a hold on each joint. Didn't seem to have got me into troubles so far ?
Is that really a problem to use such a workflow ( add and replace at the same time on each joint ? Has anyone got the dvd and want to comment on this method ??
THx alot, very interesting thread for sure...
mustique
03-08-2005, 11:12 AM
Hi guys...
I have a question to skinners who work with maya 6.5
How does the "max influence lock" feature change the skinning process?
Also you'd be able to add influence objects in any pose now.
Are these tools critical features that change your skinning workflow?
mestela
03-29-2005, 12:12 AM
you guys have taken a look at posedeformer by mike comet right? free open source implementation of psd's, addresses some of the problems laa-yosh mentioned earlier.
http://www.comet-cartoons.com/toons/index.cfm
I wrote some docs for it on the maya wiki, as well as some notes on smooth skinning etc..
http://www.tokeru.com/twiki/bin/view/Main/MayaRigging
Also recently stumbled across some great riggin notes Peter Shipkov. Among other things, he explains that sculpt deformers can be great for fixing skinning, and work quite efficiently.
http://petershipkov.com/
http://petershipkov.com/development/artpainttools/artpainttools.htm (scroll down to tips and tricks for the sculpt deformer info)
Must chime in with everyone else, great thread!
mustique
03-29-2005, 01:43 PM
very nice links mestela. Thx a lot. The pose deformer script looks really amazing!
Maya desperately needs that kind of a tool.
Bart_K
04-01-2005, 05:29 PM
Yeah, poseDeformer absolutely rocks - if only some kind soul would compile it for maya 6.5... I mailed mr. Comet a while ago, and he's not able to do it because he's not on maya 6.5 yet.
c'mon guys - this plugin is too awesome for words :) somebody, anybody - COMPILE PLEASE
bart
Thanks to Bart_K this great tool is now available at http://www.comet-cartoons.com/
jporter313
05-17-2005, 09:12 PM
one tip I've found is to never paint weights down. Maya does a terrible job of reallocating weights, but generally you only need a vertice to share 2 bones so what you do is paint it up to a value of 1 for one of the bones, then paint in the values for any other bones. This way maya doesn't do any reallocation of weights.
Is this clear?
PS: don't know if this has been discussed already, but I don't have time to read five pages of posts.
madart
06-15-2005, 07:21 AM
one tip I've found is to never paint weights down. Maya does a terrible job of reallocating weights, but generally you only need a vertice to share 2 bones so what you do is paint it up to a value of 1 for one of the bones, then paint in the values for any other bones. This way maya doesn't do any reallocation of weights.
Is this clear?
Great tip!
I'm not a rigger and definately not an animator, but sometimes you have to do it...
Savka
06-23-2005, 03:25 PM
Can anybody advice, how to copy skin weights from mesh model (it's alredy attached to joints) to the same model, devided in to pieces. For example, hads, arms, torso, legs etc. All pieces organize the original model, with the same topology, number of vertices. I tried to do this in such a way: i'v binded pieces to the same joints, which deform the whole model. Then i used copy skin weights from vtx-es of the whole model to the same vtx-es of the piece, which completely arrange it. for some pieces it works well, but most often i get mistake, and maya throws out to desktop.
Im sorry for my english, but i would be very obliged, if anyane could help me.
magilla
06-24-2005, 12:03 AM
Try using the saveWeights script from Big Idea, you can find it on highend3D. It has an option to work on vertex location rather than vert number.
--magilla
Savka
06-27-2005, 10:15 AM
2magilla: thank you very much, with this script it works well.
Andrei2k
08-15-2005, 04:40 AM
Hi guys...
I have a question to skinners who work with maya 6.5
How does the "max influence lock" feature change the skinning process?
Also you'd be able to add influence objects in any pose now.
Are these tools critical features that change your skinning workflow?
The workflow changes because you cannot accidentally make one vertex for example be affected of weighed by 4 joints if the max influence lock is set to three. This greatly reduced the number of possible variables especially if you set weight of a joint to 0 and don't properly lock joints you dont want the weight to transfer to so instead of the weigths 'spreading across possible all joints at .006 for example and having to do a prune now the weights will only districute over the max locked influence # of joints. I hope this is clear enough.
Also I definitely agree with a lot of the other suggestions. I do recommend the max influence lock and use 3 usually at initial bind and use the following workflow.
1. work inside out
2. lock all then unlock as i work (use david waldens skinningTools or equivalent from peter shipkov for exmple.
3. set range from -1 to 1 (This should be default!!)
4. I try not to subtract but only work additively but sometimes you gotta subtract.
5. I dont use corrective/pose deformers unless i absolutely have to because believe it r not you actually can perfectly weith an entire character without corrective techniques.
6. Othe then weights influence objects and SDK are my best friend.
mswertfager
09-08-2005, 12:07 AM
Not sure if these are listed above, as I did not get a chance to read through all the pages of postings...but here is what I find useful.
- INITIAL POSE FOR RIGGED CHARS: If your char was rigged before binding, then set keys for all of your controls as soon as the binding is complete. These keyed locations of your controls can serve as your bind pose. Go to bind pose never works well for me on a rigged character.
- MIRRORED WEIGHTS (recommended for saving time)
*To "mirror weights" for your character, you want your character aligned along a plane in the scene (e.g. yz plane). If you rigged your char before binding, you will want to move your char to a plane before binding. This way your keyed initial pose will be spot on.
- CONTROLLED SMOOTHING
Controlling smoothing redistribution of weights as best as possible can be key. To keep your smoothed weights distributed across specific joints those joints need to already be partially weighted to that vertex (eg. upper leg .9, lower leg .1). Smoothing this point should distribute the weight across those two joints (none of the joints can be on HOLD!). With this in mind, I often address bound bends that dont meet my satisfaction, by:
1) assigning the vertecies to weight of 1 for the primary joint (eg. upper leg joint for weighting the thigh).
2) Use select contiguous edges and Convert Selection to Verticies to select loops around the leg where I would like to add a secondary weight to.
3) Using the Component Editor on Smooth Skin Tab, I add what value I want for each loop. For the thigh example, I would assign create bands coming from the knee with the secondary values of .4 .2 .1 (moving from the knee to towards the thigh) assigned to the lower leg joint.
4) Since these verticies now have a priomary and secondary weights assigned to them they can be smoothed without worry of the weights being distributed to all sorts of joints (eg. left finger, the heel, etc.) The smoothing will only dispribute the weights between those two joints. Remember neither joint can be on hold. This worked wtih using the Painting weights smooth feature of clicking on the verticies, not using the Flood feature. however, I suspect that would work the same.
This method offered me a lot of control but means you need use the "select contiguous edges" and "convert to vertices" features often. I recommend making a hot key for the "select contiguous edges". "Convert to vertices" has a default hot key of Ctrl+F9 for Widows users.
- QUICK SWITCHING (COMPONENT EDITOR AND PAINTIG WEIGHTS - really saved my time)
You will also need to switch between the component editor and the Painting weights tool often. Below are two small Mel scripts I wrote which you can tie to a hotkey....it really speeds things along.
*(You will want to name of my mesh below from Edgar_body to what ever your mesh is named)
//For quick weight painting of Char...switching to painting weights
global proc msEdgarPaintWeights ()
{
select -r Edgar_body ;
ArtPaintSkinWeightsToolOptions;
}
//For quick weight painting....switching to component mode
//Selects Char, opens component editor and selects vertex tab
//switches to component mode with vertex submode
global proc msEditVerticies ()
{
select -r Edgar_body ;
changeSelectMode -component;
SelectTool;
ComponentEditor;
setTabOpType componentEditorPanel1Window|TearOffPane|componentEditorPanel1|componentEditorPanel1|compEdForm|compEdTab componentEditorPanel1WindowComponEditor -1;
hilite Edgar_body ;
setComponentPickMask "All" 0;
setComponentPickMask "Point" true;
}
Hope this helps,
Michael
SirCharles
09-08-2005, 06:55 AM
This is probably gonna sound REALLY stupid coming from a guy who has been rigging in Maya for the last 5 years, but I have been in games where I have had nothing to deform characters with other than joints so I have had no use for influence objects, deformers, muscles, etc...
But what are they and how do you use them in Maya? I understand that Maya now allows you to weight verts to objects other than joints but I have heard of people using the term "influence objects" in Maya before that functionality was implemented.
So what is an influence object? Is it somehthing Maya actually allows you to create? Or is it a term people use to define deformers or something else? If someone could give me a quick rundown I would REALLY appreciate it.
Thanks in advance for the help and for humoring my ignorance. but I have always believed in the saying "A truely wise man has more questions than answers."
-Charles R.
nottoshabi
09-08-2005, 05:39 PM
You are right SirCharles, a wise man has more questions then answers. Dont feel bad I worked in tv series and now I'm in games and deforming skin only with joints its different but not to different. Ok back to the topic. An influence object is what the name describes and influence. Wich means you ca use this object to influence or deform the skin. Now that could be anything. A deformer a polygon object or a nurbs object. If you have a skined geometry to some joints then create lets say a polygon spehere put it in his right pecktorial muscle area and go to Skin>Edit Smoth Skin>Add Influence. Now the polygon sphere is part of the skin cluster so you can add weight influence to it just like a joint it will be in the edit skin weights window. Now you can translate the sphere and it will deform the skin if there is enough skin influence to it. Now select the skined geometry and in the chanell box select the skin cluster, in the drop down menu you will see something called Use Components turn that on. Now you can manupulate your polygon object how ever you want and the skin will react to it. You can scale it, rotate it and even push and pull cv's. Now if you mix that with some joints and dynamics you can achive reall nice deformations even some muscle tensions and giggle. Its not as eassy as I make it sound, but once you get the hang of it its really not hard eather.
mttjss
10-11-2005, 11:47 AM
hey all -
I have read through these posts - some very good info.
I have a couple of questions concerning skinning and blendshapes.
When painting weights - do I want a vertex to be influenced by more than one joint - say between the knees and the ankle, so when I rotate the ankle or knee, the same vertex may move for wither joint? Is this good for all vertices?
Blendshapes - do I want to detach the head and create the facial blendshapes before I bind the skin, or after - how do I do this?
Painting weights with the component editor - lets say I have a vertex that has an influence of 1 at the knee, but it needs to be influenced by the ankle as well, but it only shows the knee joint in the compnent editor - is there a way to have it show the ankle joint as well, even though it has no influence for that vertex yet?
Thanks for the help - this is a school project I have to get done for a grade, and I am having some serious trouble with it
mswertfager
10-14-2005, 06:04 PM
mttjss,
Q: "When painting weights - do I want a vertex to be influenced by more than one joint - say between the knees and the ankle, so when I rotate the ankle or knee, the same vertex may move for wither joint? Is this good for all vertices?"
A: For my organic creatures, I have some vertices influenced by two joints, many by only one joint and some influenced by three joints. Let me explain, how I chose when and where.
But first, I want clarify something that you ankle/knee example may have been alluding to. Since your ankle joint is down the skeleton hierarchy from your knee joint, when you move the knee joint, so goes the ankle joint. Thus, by nature any vertices attached to your ankle joint automatically receive the rotation from the knee joint as well. You may have already known that but I wanted to make it perfectly clear.
Back to the number of joints of influence per vertex. A BASIC creature, would mostly have the area's between joints influenced only by the object next up the skeleton hierarchy (e.g. the spots between the knee and the ankle would be influenced only by the knee joint). As that skin approaches a joint you will want to blend weights of the approaching joint for a smooth transition to the next joint rotation (e.g. the points approaching the ankle start having more and more ankle influence up to the point where the skin is directly over the ankle where the influence is ankle .5 and knee .5). There are some complex areas where you might need to have 3 or 4 joint influences on a vertex, depending on the complexity of your character. The shoulder area is usually one of them. For instance, one of my characters has clavicles as well as ribs for breathing. As his chest skin spans between the clavicle and the arm pit, I have the skin influenced by the clavicle joint, shoulder joint, one upper vertebrae and the end on one of the ribs. I wouldnt recommend a complex set-up like that for one of your first characters.
Q: "Blendshapes - do I want to detach the head and create the facial blendshapes before I bind the skin, or after - how do I do this?"
A: Not sure what is ultimately the best what, but this is what worked for my model. 1st off, my character's head is already detached, his neck line hides inside the collar of his shirt...so it may not be the same rig you have. But, I did have my face/head skin bound and IK'ed to my neck, head, and jaw before I used blendshapes. If you do this just make sure your joints are all in their bind shapes when making the blendshapes. Since I set-up IK controls, I created keyframes for all my IK controls in their original bounded positions at timeframe 0. Then before creating any blendshapes I made sure I was on time frame 0. Then I created the blendshapes from copies of the original head.
Q: "Painting weights with the component editor - lets say I have a vertex that has an influence of 1 at the knee, but it needs to be influenced by the ankle as well, but it only shows the knee joint in the component editor - is there a way to have it show the ankle joint as well, even though it has no influence for that vertex yet?"
A: Good Q. I ran into this issue too...I would work around it by, selecting all the vertexes, I want to add the joint influence too then CTRL+Shift click one joint I knew had appropriate joint associated to it...in your example a vertex which already has an ankle joint weight associated to it. At that point the ankle joint column appears in the component editor. Or, I would paint a little ankle joint influence a vertex in the original set and then open up the component editor with that set selected.
Hopes this helps.
-Michael
magilla
10-17-2005, 07:52 AM
mttjss,
...I did have my face/head skin bound and IK'ed to my neck, head, and jaw before I used blendshapes. If you do this just make sure your joints are all in their bind shapes when making the blendshapes. Since I set-up IK controls, I created keyframes for all my IK controls in their original bounded positions at timeframe 0. Then before creating any blendshapes I made sure I was on time frame 0. Then I created the blendshapes from copies of the original head.
-Michael
You can also select the skinCluster from Inputs and turn the weight/envelope to zero before you duplicate. Even the smallest shift in verts from the original unweighted mesh can cause big problems when you overlay multiple blendshapes.
--magilla
staraswan
11-02-2005, 07:50 PM
Thanks a lot man!
utpal
11-09-2005, 03:53 PM
wow, this thread is really good...
thanks for making it a sticky..... :bowdown:
i'm still only half way through it, but still there is so much new i have already learned..
kap13
01-24-2006, 11:53 PM
I need to weight some medium poly hands. However every thing is close together so its is tedious to paint weights, could someone please tell me how i can weight each vertex to the joint numericaly and indivualy? Thanks guys
nottoshabi
01-25-2006, 12:37 AM
Use the component editor wich is under: Windows/ General Editor.
raijinnfury
02-20-2006, 03:18 PM
<reposted in a new post in the Alias/Autodesk Maya forum>
onkelandy
04-28-2006, 09:24 AM
Hi guys!
I've just searched the forum and could find a lot of valuable input on how to deal with weight mapping. But I still have on question: Does the "MAX INFLUENCE"-option really work? I did activate the "Closest in Hierarchy" as the Bind Method in the Tool Options and set Max Influence to 3.
Then I paint some weights and probably do some mirror etc. and sometimes it happens that a joint at the very bottom (root for example) influences a vertex at the very top (head). If the "max influence" + "Closest in hierarchy" really would work that should never happen. Or am I wrong?
I'm thinking that the Binding Method only applies at the beginning and only works with the automatic skinning. But is there any way to make it work with manual painting? So that weights shifting only applies between the 3 nearest joints?
It's really a pity that even in version 7 painting weights is still a pain in the ass. Export/Import Weights doesn't work at all and also mirroring weights seems to be quite buggy. Even "Holding weights" is ignored in several cases... :-(
nottoshabi
04-28-2006, 04:34 PM
onkelandy> After you smoth bind do a normolize weights that will clean up all that mess and actually have cv's beighn influenced by the 3 joints that you asked for. Normolize weights actually fixes a lot of issues with the skiining proses. As for transfering weights, mirroring adn all that other fun stuff. We use our own tools or some one elses. There are a lot of people out there that, have created tools for doing that stuff.
onkelandy
04-28-2006, 04:51 PM
onkelandy> After you smoth bind do a normolize weights that will clean up all that mess and actually have cv's beighn influenced by the 3 joints that you asked for. Normolize weights actually fixes a lot of issues with the skiining proses. As for transfering weights, mirroring adn all that other fun stuff. We use our own tools or some one elses. There are a lot of people out there that, have created tools for doing that stuff.
Thanks for your reply, but I don't quite get it.I've turned on "Normalize Weights" all the time..? Is the command "Normalize Weights" acting different? My real problem is not the max influences - I guess it works as long as the "maintain" option is active. But the setting while biniding the skin with "closest in hierarchy".
So again... how can I prevent Maya from skinning the top of the head to the root joint? That doesn't happen after binding immediately, but happened sometimes after smoothing or mirroring and so on.
Thanks for your help!
Could you also tell me which tools you use for export/import weight maps? I've found a workaround that is quite okay but not perfect: duplicating the geometry with input graph and then transfering the weights from the duplicate back to the original. Is there a better solution?
nottoshabi
04-28-2006, 05:16 PM
I ment to say Prune small weights. I'm sorry for that. Pruning the weights will take care of that problem. Also when you paint weights never smooth, always add. If you want to smooth make sure you lock all your joints except for the ones that you want to smooth between. When you smooth maya throws the weights all over the place. Never were you want it. If you are a newb you should definatlly not smooth only add. As for transfering do a serch on this site or even highend3d.
NolanSW
04-28-2006, 05:18 PM
My skinning workflow:
1. Select joints that will be used for binding. Never use joint hiearchy.
2. Bind Method -> Closest in Hiearchy
3. Set the max influence to 1. This will make it very rigid to start.
4. Hold all weights.
5. Edit smooth skin -> Set max influnces to 3 or 4 at most.
6. A warning telling you that it could not set all the points is fine.
7. Begin unholding joints 2 at a time and use a small value to add. (0.05 - 0.1)
8. Go back and forth on the two bones and smooth at the end.
9. Hold the first joint and unhold the next one.
This workflow allows me to skin usually(not always) in one pass no matter how dense the topology is. This has worked quite well for me.
Cheers,
Sean
onkelandy
04-30-2006, 04:45 PM
He Nolan! This sounds quite good. I'm going to try it with this initial 1 influence and then setting it to 3 afterwards. Thanks!
As far as smoothing is concerned, I know that Maya throws the weights to all places. But it shouldn't when "binding mode -> closest in hierarchy" is activated at the beginning, right? Lately it also happened that Maya was completely ignoring holded weights! It's really a pity that still in version 7.0.1 skinning is such a pain.
My skinning workflow:
1. Select joints that will be used for binding. Never use joint hiearchy.
2. Bind Method -> Closest in Hiearchy
3. Set the max influence to 1. This will make it very rigid to start.
4. Hold all weights.
5. Edit smooth skin -> Set max influnces to 3 or 4 at most.
6. A warning telling you that it could not set all the points is fine.
7. Begin unholding joints 2 at a time and use a small value to add. (0.05 - 0.1)
8. Go back and forth on the two bones and smooth at the end.
9. Hold the first joint and unhold the next one.
This workflow allows me to skin usually(not always) in one pass no matter how dense the topology is. This has worked quite well for me.
Cheers,
Sean
NolanSW
05-14-2006, 07:41 PM
As far as weight throwing, the thing you need to make sure that you NEVER do is smooth->flood, even if you have hold weights on. For one it's never controlled and skinning is something that you should be in control of and never Maya.
This may be tedious but if you select 1 or 2 verts at a time and do an Add with a really small value (0.05) you can control the smoothing.
Using the method that I described is a method that works great for any level of detail on a character.
As far as closest in distance and heirachy, I tend to get closer results with hiearchy on the first pass than using closest.
Scott Ayers
06-08-2006, 02:32 AM
Is there a way to set the paint tool to paint both sides of the mesh?
C4D has an option to paint through the mesh and I use it a lot.
I prefer to paint joints with the model faceing the left or right viewport as much as possible.
And the paint all (not flood) function is also a great way to paint hidden vertices.
But I can't figure out how to make the brush paint through both sides of the mesh in Maya 7.
danstar10
08-10-2006, 03:24 PM
Hi guys, great thread. just wondering if you could help me out. im trying to add influence objects which works fine but when i try to add the influence object to selected verticies of my mesh maya tells me 'no skinned objects were found in the selection'. obviously im selecting the verticies of my skinned mesh. a little anoying as i cant use this feature which would really help. it says you can do it in the help file etc so what am i doing wrong? oh and one more thing, what is a SDK??!
nottoshabi
08-10-2006, 05:01 PM
Add the joint to the mesh with the lock influence on. Then add the influence to the cv's you want. You can't add a joint to cv's you can only add joint to geo. As cv's dont have a skin cluster geo does. SDK means Set Driven Key.
danstar10
08-11-2006, 11:43 PM
You say 'Add the joint to the mesh with the lock influence on', however im not trying to add joints to the mesh im adding geometry as influences..?
anyhow iv discoverd i can simply paint the weight of the influence geometry as it appears in the joint list once it has been added as an influence so i can choose where it influences which is what i needed.
thanks anyway
one more thing while im here, whats it all about when you cant return the skin/skeleton back to bind pose without ignoring all nodes in 'modify>evaluate nodes'? and when i 're-evaluate' the nodes once the skin/skeleton is back to bind pose, quite often the spline in my spine set-up doesnt return back to bind pose and some other things are slightly out. could someone please briefly exlplain what the evaluate node thingy is actualy doing because i seem to have to use it but i dont understand what it does? thanks
lemonyfresh
09-08-2006, 09:35 PM
I read the whole thing, whoa. Remarkably, I have a few things to add.
First I would like to say that I detest painting skin weights which is why I came up with the following workflow.
0) (I had to add something before one) Make a neutral pose before skinning and anytime you make a change to the rig. because working with the bind pose sucks and you’ll probably have to delete it anyway.
1) Make quick select sets for your joints that you will use in your bind. When you create the quick select set THIS IS IMPORTANT select the joints in the order in which you want them to appear in the paint weights editor. I start with the root, make my way up the spine then hit the limbs. This will greatly speed up the selection process when you bind skin time after time after time after time.
2) Select your joints in your quick select set, THIS IS ALSO IMPORTANT select the joints by opening up the quick select set and selecting top to bottom, select the top most joint in the list and then scroll down and shift select the last joint in the list. If you just right click on the select set and select members you will end up with no discernable hierarchy in your paint weights editor.
3) Smooth bind to selected joints.
I don't agree with the statement that a good rig needs no weight painting, but take that for whatever you will. At this stage I usually have a reasonably good deforming character, but that doesn't matter because I then:
4) flood the whole mesh to the root.
5) From there I work OUTWORD from the root. I begin with the torso painting only a value of one set to replace, also my brush is hard edged so I get only values of one.
6) I then select all of the vertices on any one of the limbs and flood them all to the highest joint on that limb (we’ll use the arm for example) I’ll select all the vertices in the arm and flood them to the shoulder, then I select all of the vertices below the elbow and flood them to the elbow joint then all the vertices below the wrist flood them to the wrist. Then the fingers, flooding to the first knuckle then the second. T
I paint the entire mesh like this with this radiating redundancy. Going outward painting values of 1 to whatever joint will have the most influence over the vertex. I do this because we have all run into the strange phenomenon that occurs when you subtract weights and the vertices end up being weighted to another limb on the other side of the body. The reason why this happens is because the vertex with the severely fragmented weight was ever so slightly weighted to those other bones and when you subtracted the weight it put it where it thought was the most logical place and that was where it already had weight, don’t blame Maya, if you weren’t such a slob that wouldn’t happen. So the Idea here is that by weighting everything 100% to whatever joint you have insured that there is absolutely no weight assigned to a verticy that is associated with an unwanted joint. If you’ve taken care in the first few minutes of painting weights you will save yourself a lot of hassle later.
7) I now go back and in the same manner as before working outward, smoothing between the joints. I just found out about that global smoothing script, I’ll use it next time at this stage and see how it works for me.
8) (!!THIS IS THE BIG TIME SAVER RIGHT HERE!!) Now since I’ve never got my rig right on the first try I have to unskin and reskin a lot. So what I do is save a copy of my rig and skin then unskin my mesh, make my changes to the rig or the mesh, save my new neutral pose, select my quick select set of joints and skin my mesh. Then I REFERENCE in the old file, select the old mesh, select the new mesh and copy skin weights. This way you at least start from where you last left off rather than repainting the whole thing again. Unreference the old file and keep going.
That’s about it. I then set up my deformers. I try to steer clear of influence objects because I think they are time intensive and sloppy. I try to get as much done with joints as I can then use deformers and if I really have to I’ll use an influence object. I don’t like blend shapes either because they are linear animation and the body moves in arcs, I also don’t like setting them up again and again. I get around using influence objects and blendshapes by using joints, deformers and constraints.
onkelandy
09-10-2006, 07:44 PM
Hi!
Big thanks to your reply. This is really a cool new approach to painting weights. I'm quite curious how practicable it really is..
Anyway - you mention a smooth script. Can you post a link, please? Thanks alot!
Knylen
01-21-2007, 01:27 PM
im having problem with the blendshape part here. i have rigged and skinend my first character in maya and am now about the fix all the strange deformations. i have copied the entire mesh and fixed a blendshape for the knee, when bending it i have moved vertices on the hip and in the knee so it looks good. everything works as far as that i can move my foot up. then move the slider on the blendshape to get a good result. but now i cant move my control object for the foot. or well i can move it but the foot wont follow. and if i dont move the foot ctrl from the beggining and just use the blendshape slider the foot goes up. how do i get the blendshape to only change the vertices i have moved and not the whole leg?
mikahl
02-28-2007, 05:24 AM
Hey yeah I'm getting the same problem Knylen.
Only the problem only seems to occur with subdiv meshes. Other than that the subdiv mesh seems to skin great.
Does anyone know what's going on, or maybe show a good tutorial to read?
Thanks
onkelandy
02-28-2007, 07:25 AM
Hmm. maybe u have to change the deformation order.. Select the skin, go to inputs and middle-mouse button drag the blendshape below the skin input..
mikahl
02-28-2007, 12:56 PM
Thanks for the reply onkelandy,
The skincluster node was above the blendShape though.
But the answer was right in front of me, the paint Blend Shape Weights tool!
Knylen, if you haven't figured this out already, select your blendshape node and then invoke the Paint Blend Shape Weights tool ( its the 6th from the bottom on the Deform menu in Maya 7.0 ). Just paint what area you want to deform. This helps on mine.
lemonyfresh
02-28-2007, 03:33 PM
I hear alot of talk about blendshapes on hips and shoulders for good deformation. I always have used clusters or wires, but maybe I should try blendshapes. I've used Blend Shapes for facial deformations, but never for the body. I've looked for tutorials on this, but the ones I have found are pretty lo-fi. Can anyone reccomend one that's good?
refract
06-06-2007, 09:15 AM
Read what lemonyfresh says on number 8.
I do the exact same thing.. Reference in the old mesh with great skinning. And copy the weights to your new mesh. Then delete the reference. (it will get you 90percent of the way there)... including face anims.
Wacom tablet. (by like 200 percent over a mouse?.. yes..)
David Waldens script
(bind pose is overrated) delete it... it can fix a lot. Just zero out your joint rotations beforehand.
Andrei2k
06-10-2007, 06:24 AM
The real question is does the copying in that method still break if your mesh changes enough to rearrange all the vertex numbering? If thats the case you probably have to start all over as I have to do especially on lower poly meshes that get subd'd or smoother later....
Andrei
refract
06-11-2007, 05:35 AM
No,.. it has several options. Closest point on surface, Ray cast, closest component, or UV space.
jinchoungforever
06-12-2007, 07:21 AM
howdy guys,
been doing weighting inside of maya for a while either simple meshes or game chars and i had my technique set with component editor and flood filling from the brushing tool. also, usually, rigging was something that i did in conjunction with a lot of other stuff so i didn't really have the luxury of time to really finesse my approach.
but i'm starting a gig where i'm gonna be doing a lot of rigging and skinning and i've been researching a bit and it seems like there are a few issues with maya's weight tools:
(but i gotta say, it's a HECK of a lot better than lightwave's current implementation of weight painting and i always make it a point to say that whoever's working on that should look at how maya has it set up, especially with component editor.)
1. no xray view while painting weights! argh! sometimes i really need to refer to the skeleton to see what is where and switching back and forth from wireframe is such a pain.
2. i don't need no steenking paint brush! "painting" is a crude metaphor (A PISS POOR POOR POOR POOR [!@#!$@#!] METAPHOR) when it comes down to a task where numerical precision really does matter. also, even on higher res models, we're working on sds base meshes, never on the super hi res final!
i would LOOOOOOoooove to see a SELECTION BRUSH. all the brush does is select verts that i can FLOOD with a value. i usually just select verts and flood but having to drop the paint tool to select/deselect and then switch back is SUUUUUCH a frickin' pain! of course, the brush should allow for deselection as well.
3. BOUNDING VOLUMES would be sooooo fing nice! there are a couple of downloads over at highend that suggest that they offer this functionality but neither are well documented and i can't get them to work.
astonishingly, blender does have a nice bounding volumes workflow... can't we just copy theirs?!
4. GIMME NUMBERS! i'd love to be able to see the values as numerical data floating above the verts. sure, we could make it so that they're only visible on selected joints. but being able to see the data without looking at a table where i don't know what vert is what would be nice.
argh... now i'm back to digging around at highend.
jin
yamasaki
07-24-2007, 12:35 PM
I already posted this at the "share your secret weapon" thread.
But i think it can be usefull here too.
I use this tool a lot when i'm doing rigging... i created this mel script to change topology of skinned objects. i can add edge loops, extrude faces, etc. with no damage to my skin weights... i done this using a http://www.petershipkov.com (http://www.petershipkov.com/) hint...
usage:
select the skinned geo and run the mel script above...
edit the geometry named "modify"
delete the history of the "modify" geometry
and go to the deform menu and press hide intermediate objects
then go to atribute editor of your skinned object and press "update weights" on the skin tab
voilá! you edited your geometry with no messing to your skinned object
//
//modify skinned object 1.0
//created by sergio yamasaki based on a http://www.petershipkov.com (http://www.petershipkov.com/) hint.
//http://www.sergioyamasaki.net
//select the skinned object and apply this mel script
//create skinned object selection
string $sel[] = `ls -sl -fl`;
//create node for modification
createNode transform -n modify;
//make possible edit skinned object
select -r $sel;
DisplayIntermediateObjects;
string $zed[] = `ls -sl -fl`;
//link modify node to skinned object
parent -add -s $zed modify;
//edit the object named "modify" - its already selected
//you can do anything, extrude, split edge loops, etc.
//delete the history of it
//delete it
//then go to atribute editor of your skinned object and press "update weights" on the skin tab
//go to the deform menu and press "hide intermediate objects"
//voilá! you edited your geometry with no messing to your skinned object
//
Sagroth
07-24-2007, 02:13 PM
yamasaki, thanks :thumbsup:
Never knew about Update Weights button ;)
jason108
11-11-2007, 06:23 AM
Osipa (stop staring) has some scripts that fix the linear blend shape problem pretty well.
You can add curves to all your blend shapes, smoother non-linear half shapes too.
badmanjam
09-30-2008, 11:00 AM
HEy Guys,
I just can't seem to get the vertices to go where i want to under the arm! Thery fly around evrywhere, and get pulled by influences far away from them.
I'm using a combo of Paint weights tool and the component editor. -But truth to tell, the component editor doesn't seem to change the vertices. And sometimes it downright lies!
It doesn't want to zero out zome influences, and others it does.
Please help....
Boucha
10-01-2008, 01:46 AM
I think there is a problem with either weight normalization or UV mapping...
Buexe
10-01-2008, 05:53 AM
or some influences are put on "hold"
Darksuit
11-13-2009, 04:39 PM
just for reference
Weight Normaliztion, sets the combined weight value to 1
in example: you have vertex[1] which has wieghts of .25 (Head joint) .75 (Neck Joint). together they equal 1 (0.25 + 0.75).
Painting weights a lot of people find fustrating. This appears to happen for any number of reasons. When I was teaching I found that a numbe rof students would set the intial number of infulences to the defualt 4 or even up the infulences to 5.
Getting your settings worked out when you bind can save you a lot of trouble. First thing you would want to do is check your number of infulences (you may not want to go above 4, and you might even try 3 to start with). Next check your Drop off rate for your weights. The higher the number the close to the bone the weights will be the lower the number the further the bone wieghts will infulence. After a lot of trial and error, I found starting with a drop off rate of 6.0 tends to work well for my own work flow.
Painting weights can be tricky as a whole. Some techniques that I and others in my office have used in the past include;
set the weight value to 1 select the root joint and flood the weights. Then use add (set to 0.2 or lower) to add back in wieghts to specific parts of the model
Only use Add and Smooth. Only use Replace to replace values to 0 or 1
when painting wieghts remember the Karate Kid (wax on wax off) small circular strokes for painting the weights tend to work best.
Block in Known area with values of 1.
Painting weights is more subtractive then additive, when you "add" a weight you are actually subtracting it from another value.
AnimAitor
09-09-2010, 11:47 AM
Does anyone know if the "Skinning Tools" script has being updated for Maya 2011? Is "Skinny (http://www.creativecrash.com/maya/downloads/scripts-plugins/utility-external/misc/c/skinny/description#tabs)" any good?
redwhitejacket
10-08-2010, 12:24 AM
Here's one idea:
(I haven't read through this entire thread yet, so idk if this has already been suggested or if it's already available)
What if there was a script/plugin where you select a joint and the only thing visible is the polys that are weighted on that joint (along with the entire joint hierarchy with the joint selected highlighted). You wouldn't be looking at grey scale values on the entire mesh, you would only see the specific faces that are associated with the selected joint. And if you select a face, the joints it is weighted to will highlight. Value bubbles containing the weighted value per vertice would appear on around the poly faces and could be toggled on and off. This way, you could set up a test animation on the rig, and precisely see how each individual joint is affecting the skin faces associated with it.
You could toggle this feature to see the entire mesh as you see fit.
Again, when a vertex is selected, the joints associated with it highlight with weight values on each joint hovering above the joint. When a joint is selected, the faces/vertices associated with that joint will be highlighted (and/or the only faces visible in both of these cases) and the weight values would hover over the vertices. The component editor could be linked to these features as well.
I think one other cool feature would be the ability to test drop off and influence in real time. Say you were testing a hip joint, you see the faces skinned to it, but you want to expand to more faces, there would be an easy and convenient tool allowing you to do this and test the results. It would also be easy to select a face and add influence from a joint with no influence, so this was all boiled down to hot button pushes/toggles etc.
A previous poster mentioned Maya using an xray view with weight painting. Such a feature would be great here too to see the entire mesh in xray mode while the faces you are working with are opaque.
rwj
CLusTeR-pHoBiK
12-22-2010, 03:20 PM
Hello,
In maya 2011, is there a way to add new joints to an already skinned character? Also is there any new (recommended) plugins/scripts for joint orientation xyz?
Thanks
AnimAitor
12-22-2010, 04:27 PM
Hello,
In maya 2011, is there a way to add new joints to an already skinned character? Also is there any new (recommended) plugins/scripts for joint orientation xyz?
Thanks
To add new joints to an already skinned geometry... Select Animation from the "Main Menu Bar", then go to skin/edit smooth skin/add influence
As for joint orientation I always use Comet's "joint orient" script.
CLusTeR-pHoBiK
12-23-2010, 10:28 PM
Thanks Aitoru, appreciated!
AnimAitor
12-24-2010, 09:02 AM
De nada. Feliz navidad! :D
FarleyC
10-24-2011, 03:10 PM
I wanted to post here sooner but I had already started production of the link below, The method I used on my last contract is one of the fastest way I know of using to speed through the weighting and binding process.
So below I am posting a link to my speed skinning tactics preview. Maya 2011 and 2012 can make skinning a ridiculously quick process but we have to fundamentally change how we look at are initial beginning conditions. I hope it helps with some of the newer issues have popping up.
One hour skiinning (http://www.digitaltutors.com/dtlabs/?p=3512)
magilla
11-02-2011, 09:44 PM
Looks very interesting Farley, can you give us a brief overview of what is involved whilst we wait for that to come online?
For The Black Temple (http://theblacktemple.com.au/) I have been using Advance Skeleton as a rigging solution and it has two features that make skinning extremely fast and easy. First is called SkinCage. It creates a low poly mesh based on simple cubes that you conform to the shape of your character. You can then transfer the weights to any selected mesh. The second is Partial joints. It creates secondary joints in the deformation hierarchy that are constrained to rotate partially to its parent.
berniebernie
11-03-2011, 04:40 PM
Looks very interesting Farley, can you give us a brief overview of what is involved whilst we wait for that to come online?
For The Black Temple (http://theblacktemple.com.au/) I have been using Advance Skeleton as a rigging solution and it has two features that make skinning extremely fast and easy. First is called SkinCage. It creates a low poly mesh based on simple cubes that you conform to the shape of your character. You can then transfer the weights to any selected mesh. The second is Partial joints. It creates secondary joints in the deformation hierarchy that are constrained to rotate partially to its parent.
I use AS too (****ing awesome!) and I find the skinCage to be fickle at best, however maya's capsules (interactive skinning) are REALLY great for initial skinning, I wrote a little bit about it there: http://www.tokeru.com/t/bin/view/Maya/MayaRigging#Editing_smooth_skins_circa_2011
Horganovski
11-03-2011, 11:56 PM
I'm a big fan of the interactive weighting capsules too, very quick for blocking in the initial weights.
I have to confess that the whole 'post normalization' concept has yet to click with me. I guess I've worked with the old '100%' rule for so long I don't understand how you can break it and not have issues.
Cheers,
Brian
magilla
11-04-2011, 01:58 AM
"Once you use the paint weights tool on the newly skinned mesh, you lose the option to use the capsule"
Wow Autodesk have managed to implement a new feature and make skinning still suck. I was never a huge fan of the capsules in Max, you always had a heap of manual painting over the top to get it working properly, but at least you could go back and forth between vert and capsule weights.
berniebernie
11-04-2011, 02:26 PM
"Once you use the paint weights tool on the newly skinned mesh, you lose the option to use the capsule"
Wow Autodesk have managed to implement a new feature and make skinning still suck. I was never a huge fan of the capsules in Max, you always had a heap of manual painting over the top to get it working properly, but at least you could go back and forth between vert and capsule weights.
The whole point of the capsules is for a rough skin, the paint skin tool being for fine tuning. I'm sure AD could implement editable capsules after painting but in my workflow I haven't felt the need to go back to capsules once my weights had been painted. I really like the new skinning system and it feels a lot more natural to skin now instead of the old every vertex must be at 1 method.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.