[Bf-funboard] Some skinning feature ideas

Michael Crawford psyborgue at mac.com
Tue Apr 3 06:13:06 CEST 2007


On Apr 2, 2007, at 7:59 PM, Benjamin Tolputt wrote:

> > Really? Try painting weights in maya sometime.
>
> I have, it sucks, I don't want it.

I had to teach a class in it last semester...  That did it for me.   
Never again will I use that application (used it for about 4  
years...).  It's frigging cancerous.  Oh the joy of the students  
trying to find their textures... or the students who have to re-paint  
their weights over and over (oh the bugs galore).. or the random  
crashes...  Or the subdiv skinning that never works (though it's  
advertised as working in native mode, only proxy mode works properly)...

> However, the ability to weight vertices completely to a single bone  
> while weight painting I find invaluable. Let's take a workflow I  
> use frequently (and I see in a lot of basic rigging tutorials),  
> which is to get the application to make it's "best guess" at  
> initial vertex weights and then edit them as necessary to make them  
> closer to the desired deformations. This works well when you are  
> simply adjusting weights up & down for individual bones, but  
> becomes a pain (in Blender at least) when you need weight a series  
> of vertices to only one bone. This (in Blender) requires you to go  
> through all influences the vertex has and paint them all to zero.  
> Whereas in Maya the workflow is to simply paint the weights for the  
> bone in question to completely white (i.e. 1.0) which will  
> automagically zero (or drastically minimize) the influence of other  
> bones.

Yes.  Adding weight is just about the only thing that works with that  
system.  Smooth and subtract are broken.  (which is why I told the  
class: use add only... or don't bother me when your rig blows up  
(inevitably, they used smooth and subtract, and guess what, i ended  
up coming in on weekends to help them)).

>
> I too like the fact I do not need to work on normalization  
> manually, but I don't think that need be a problem for implementing  
> something that can fix this. Perhaps there could be a "auto- 
> normalize" option/mode for the Weight Paint interface. When  
> entering this mode/option, it will autonormalize the weights for  
> you. Then, while painting, the normalization happens automagically.  
> That is, when I see a vertex coloured completely red - I know the  
> selected bone is the only (or nigh on only) bone influencing that  
> vertex. If said vertex is coloured completely blue - I know that  
> the bone in question is not affecting the vertex at all. Being able  
> to see this while editing the weights would be an invaluable tool  
> in my mind (and a major time saver).

Why do you need it to be red?  I usually use bright green as my  
"max"... it allows me the flexibility to later add weight should I  
need to.. It's all relative man... there is no need for absolutes :P

>
> The way I see it working is to have "adding" weight to the vertex  
> influence do so, then normalize the rest of the vertex influences  
> (i.e. weights them down) to match the "1.0" requirement. When  
> vertex influence drops below a settable level (e.g. 0.001), it gets  
> removed completely. When subtracting from the vertex influence, it  
> normalizes the other influences (i.e. weights them up) to match the  
> "1.0" requirement. The special case for this would be that when  
> there is only the one influence affecting the vertex (and it is the  
> one being subtracted), there is no normalization. In this case it  
> is either 1.0 or 0.0 (as that is it's effective value anyway).
>
> My thoughts on the matter are that just because Maya stuffed it up,  
> doesn't mean the concept isn't sound. It might just be the case  
> that Maya developers/designers are not perfect either, and as such  
> borked the implementation.

Actually, i believe the design is the problem, not the  
implementation.  forcing all weights per vertex to add up to 1 means  
that subtracting or smoothing weight... well it's got to go  
somewhere...  An intelligent application (not one those morons at  
Alias would write) would assign the weight to (guess what): _the  
adjacent frigging bone_. What maya does:  it assigns the weight  
evenly to all bones currently using that vertex (even that foot  
using .0001 weight of the face bone).  The problem lies in this:   
Initially, weights have to be assigned for each and every bone, and  
since it's based on distance(fingers for example), it means you will  
inevitably end up having to re-paint everything anyway (or attempt to  
prune low influences so smoothing and subtracting works...)  Yet  
another problem is that one cannot manually specify the envelope of  
influence on a maya bone, so legs always end up influencing each  
other. Fingers are a nightmare.  Maybe someday, somebody can figure  
some sort of "bone raycasting" algorithm to get the weights to  
correctly assign initially, but until then, these are  (AFAIK) all  
going to be a problem of that system.  It's a limitation that is _not  
needed_.

Why blender has it right:  Ever tried out that "mult" button seen  
when you click on a bone in edit mode?  That allows you to use the  
envelope weights as desired, only overriding them with as much weight  
as needed, when needed.  Since it's multiplied, the vertex group does  
not override, but instead works in conjunction with the envelope.   
That way you never have to convert the envelope weight into actual VG  
weight.  Can you change the radius of influence per bone in maya?   
After binding?  Thought not.  But you can in Blender.

Your concern, as far as I understand, is for stray influences.  Why  
not just use Paint>Clean Weight

>
> Regards,
> B.J.Tolputt
>
>
>
> _______________________________________________
> Bf-funboard mailing list
> Bf-funboard at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-funboard



More information about the Bf-funboard mailing list