[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