PDA

View Full Version : smooth skinning...one more question??


kmp3d
01-24-2003, 09:30 PM
ok... ok... After some help from the great people on these forums I'm nailing down a lot of my smooth skinning problems. Heres one question I have..... I know exactly what the problem is (I think) I just don't know how to fix it. :annoyed: After I bind my mesh to my skeleton I check for deformation problems that need to be weight painted. Usually the problem is that I'm not getting a smooth transition of weight from joint to joint in some places. For instance, to fix that, I began painting at the finger tips and moving up the arm. I just smooth the area around the joint and then hold the weight when I'm happy and go to the next joint and smooth that out as well and hold the weight on that. Now I move (rotate the elbow) the entire arm and the area of the joint where I was smoothing deforms badly, it seems like its pulling to the origin where I originally bound the skeleton. My guess is that the reason this is happening is because when I smoothed the area around that joint the weight around those joints no longer adds up to 1. So thats why it pulls to the origin because the area thats deforming doesn't have a total of 1 weight and therefore the joints are not having influence on the skin. Another thing that seems to validate my assumptions is that I can go in and paint the bad deformations on those joints with max (1) influence, the deformations go away and everything looks wonderful. Now stop me if I'm wrong, I thought weight normalization is what is supposed to fix this by keeping all weight on the mesh equal to one. But I tried normalizing the mesh but I still got the same deformations. Theres got to be an easier way to keep the weight around those joints equal to 1 rather than going in and painting maximum influence on the bad deformations every time after smoothing the weight between the joints. Ummmm.... please help!!!????
thanks again

JoeSchmo
01-25-2003, 04:51 PM
I've been reading your threads...
let me see if I can give it a shot....
smooth skinning is one of the hardest things in Maya
that I find, and it's even harder to try to explain
in a post without showing you.

I think your misunderstanding what 'normalization'
is...

when you smooth bind points to bones, you create
skin clusters... its just like making a regular point cluster.

each point that is bound has a total influence of 1...
1 is just an arbitrary reference #, they could have
just as easily made it 100, it does'nt matter.

it is impossible for the total influence of a point to NOT add
up to 1... thats 'normalization' ...

for example
say you have the 2 bones of an arm... with 'rigid
skinning' the points can only be influenced by one bone or the
other, but with smooth skinning each point can be influenced
by several bones, ( but I have never needed more than 2 or 3,),
but the total amount of the influence of all the bones on that point will always = 1.
So if you take away influence from one bone it will automatically give the influence to another bone. thats what makes it such a pain in the ass!
...so with our 2 bone arm example, the points in the middle
of the forearm should be totally influenced by the forearm bone,
1 and no influence from the upper arm bone, 0...
but the points on the elbow might share their influence with
both bones,.. say .5 to the forearm and .5 to the upper arm,
and the points a little farther away might be .75 influence to one, and .25 to the other... always equaling 1.
so when your 'painting', your only moving influences from one place to another, thats why its easier to start at the fingertips and toes and work your way to the center.
also say your addiing some influence somewhere, it will take
the weight from points that are close to it ...
... so the geometry of the skin becomes very important.
in our arm example, if you had points on the elbow, and the next
closest points were in the middle of the arm, and you tried to
smooth the weight on the elbow, it would smooth it all the way
to the points in the middle of the arm ( even if the brush size is very small ).

when binding, I've found that it's just easier to manually
select the points, select the joint that I KNOW the points should go to.. and use the 'bind to selected joints' option. that way
I dont have skin on the butt influenced by the fingers or some crazy stuff, and when I go to paint weights, I only have to smooth between bones.

the 'paint select tool' works good to get the points selected
for this, and if you have a lot of points to bind, you can occaisionally grab the root joint and move the skeleton out
of the way to see if you missed binding any points ( they will stay
behind ) and DONT FORGET TO UNDO the move, it's just to see what you missed and you dont want to mess up the bind pose.

set max influences to 2 - mabey 3, I cant think of any reason
why a point on your foot should be influence by your skull, but Maya lets you...

Dropoff rate is dependent on the size of your character compared to world space ( If you modeled him small you might need .5,
if big 4 or 5 )*** but dropoff rate don't matter if you bind points manually.

***Also dont forget you can mirror skin weights, (the options
are a little confusing), but you should only have to paint one side.
THANK GOD!
Also as I'm painting and I get the arm or leg how I like it,
I mirror the weight to the other side occaisioanally, otherwise
you could work the weight from one side to the other.
and have uneven weights.

well good luck!! ...
The only reason I spent so much time on this post is that I
remember how frustrating it was learning it...


Joe

kmp3d
01-25-2003, 06:35 PM
Thanks Joe I really appreciate you taking the time to reply to my question. I'm pretty sure I understand what normalization is but again back to my example what is happening when I'm weight painting???? I assumed that when you paint weight on the mesh all thats happening is that the influence is moving around, and as you explained the weight will always add up to one "thats normalization". Ok lets use the elbow as my example. If I'm on the elbow joint and I smooth the mesh weight on the elbow joint I'm also changing the weight of the shoulder joint's (the next joint up in the hiearchy) influence on that area as well...correct? So everything should still add up to 1, hence normalization. But now if I translate or move the arm in any way from its bind position the area where the weight was smoothed between the shoulder joint and elbow joint (the elbow area on the mesh) will deform, and it pulls toward the original bind pose postion, I assume because the weight doesn't add up to 1. Now I can fix this.... first I make sure that I've held the weights on both joints. Then I select the elbow joint and paint maximum influence on the elbow area (the deformed area) and then select the shoulder and paint maximum influence on the elbow area (this ensures that the elbow area on the mesh has a weight of 1) ......boom!... the deformations is gone..... everything looks good. Ok .... thats a horrible pain. But with normalization this deformation shouldn't happen......right????? Well I'll just keep experimenting.... thanks for any more advice you can give.....

JoeSchmo
01-25-2003, 07:43 PM
it always normalizes ... thats the point.

when you move the arm ( exercising skeleton)
you get that wierd deformation because those
points are probably influenced by another bone
somewhere. It could even be the leg bone.
then your coming and trying to add weight
with the paint weights tool. well that does'nt
tell you anything... it could look all white and still
not be 1, or all black and still not be zero.
especially if the bone that the weight needs to come from has
a hold on it ( it wont let it back were it has to go )
The only way to know for sure is in the
component editor
try this:
select the points around where you have the wierd deformations
open the component editor.
I suspect you will find that those points are influenced by other
bones than what its supposed to
even if its only .04 here and .01 there
and on the bone its supposed to belong it will only be
.90 or something
you can select the entire column (make sure you got the right one- thats why its important to name bones) and type in a 1
( make sure the holds are off though )
at the same time youll see those .03's turn to zeros as it normalizes.
*** avoid using the flood button thats how these mini weights get spread all over***
if you notice that the skin is this way all over
it may be easier to detach and rebind to selected joints
as I described earlier. That way you KNOW that the points
are giving the bone you select full influence or 1.

even though it takes longer to bind- you save 3 times as much time painting weights.

another tip :while your painting its really hard to tell what your doing being black and white, if you turn on wireframe on shaded
it makes it alot easier to see how things are changing.

hope that helps
Joe

JoeSchmo
01-25-2003, 07:55 PM
I forgot ...
be care ful using holds too
( i dont use em at all )
say your trying to work on the forearm and you have a hold
on the wrist and the shoulder then you add weight -
its gonna take it from somewhere,
...if it cant get it from
something that has a hold on it, it'll take it from the fingers or the neck, and the more holds you have on it the less you have to work with, making each change that much more intense.
joe

CGTalk Moderation
01-14-2006, 06:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.