PDA

View Full Version : Rigging 101 - Joints deforming other areas of the mesh?



Tinseltopia
03-12-2013, 08:41 PM
Got a bit of a problem here, and I can't seem to find a solution googling, so figured here would be the best place to ask, as you've all no doubt seen it before and found out why it happend.

I'm using joints to rig this cat model, and I thought I finally had it all set up, as all of the weight maps correspond to the joint positions, but now this happens: 112528

Any ideas how to solve this? and also what are the differences between bones and joints, Joints seem harder to animate...so would it be worth changing?

OFF
03-12-2013, 09:07 PM
You need a separate weight maps on the legs.

jeric_synergy
03-12-2013, 09:38 PM
Separate w.maps would definitely solve this, also possibly turning up the bone influence falloff.

BTW: you can combine weight maps for bones that NEVER interfere w/each other, like NOSE and TAIL. This reduces the number of w.maps if that becomes an annoyance. But for things that get quite close to each other (in the rest state) separate is the way to go.

ConjureBunny
03-12-2013, 09:49 PM
First, it looks like some of your weight maps are off. I'd use selection->select by map to figure out what points belong to what map.

Second, your cat's leg is all wonky. Did you do that by design, or is this a horrible accident? 8~

-Chilton

jeric_synergy
03-12-2013, 10:07 PM
Really, you don't need to examine TOO hard: select ALL the points in the right leg, select the left leg's w.map, and CLEAR MAP. It will delete any r.leg points included in the l.leg map.

Only the selected points will be removed from the map.

+++
I really hate the word "map" in "weight map", it confused me for years. Really it's a (possibly) partial LIST of points that are associated with user-assigned values. (Is that accurate, guys?) The 'partial' bit is quite important I think. It might help if there was a visual differentiation between unassigned vertices and vertices with a value of zero. Like if unassigned vertices were shown as BLACK in the w.map view.

Similarly, while GRADIENT is technically accurate, it's close association with a color gradient gave me a hard time. It's not so much a 'gradient' as a 'value re-assigner', which is horribly clumsy but more profitable (for me) to think about. That the CURVE node can replace the GRADIENT node shows another way to think about the same function.

YMMV.

mdharman
03-12-2013, 11:32 PM
Is there a difference with a point having a weight of 0 vs unassigned?

jeric_synergy
03-13-2013, 12:30 AM
It may be slightly theoretical, and have little practical effect, but yes, there is:

An unassigned vertex CANNOT be affected by operations that affect a w.map. For instance, if you had a nodal network that altered the values of a w.map, a point that isn't a part of that w.map could NEVER be affected. A point with a value of zero could have its value changed.

In this case, if the points of the right leg were not members of the left leg w.map, they could never be affected by a bone that's set to affect only the left leg w.map.

I'm thinking about a bad analogy from PShop: if a pixel just isn't part of a layer, it doesn't matter what Adjustment Layers you apply, it can't be affected. --not a great analogy, admitted.

On EXTREMELY large models, if the user willy nilly always includes every point in every weight map, s/he's going to be using more RAM and other resources than necessary. Again, as a practical matter it may not affect anything. But I think it's wise to limit where things CAN go wrong. Weight maps that only include the appropriate points are certainly going to be simpler to deal with.

To drone on some more: as I 'understand' it, weight maps are actually LISTS of 'member points', probably listed by their index#, plus a value associated with every member point. EG:


Weightmap=sample, 4 members:

#1: 98%
#2: 96%
#3: 45%
#4: -27%
*end*

Point #6 cannot be affected by anything manipulating Weightmap 'sample', 'cuz point #6 isn't a member of 'sample'.

Or so I conceptualize the matter. I could be 'wayyy off base. So far, so good.

I do note that for w.map value interpolation across the mesh, unassigned points act like points assigned with a value of zero. 112535 But if you use SELECT BY MAP, you will not get those unassigned points Selected.

RebelHill
03-13-2013, 03:17 AM
Stuff here... http://www.youtube.com/playlist?list=PLFE2602D321EE2775 and here... http://rebelhill.net/html/rhrfree.html

jeric_synergy
03-13-2013, 12:21 PM
Stuff here... http://www.youtube.com/playlist?list=PLFE2602D321EE2775 and here... http://rebelhill.net/html/rhrfree.html
Models of clarity and packed with critical info.