[Bf-funboard] Some skinning feature ideas
Benjamin Tolputt
bjt at pmp.com.au
Wed Apr 4 02:04:13 CEST 2007
Michael Crawford wrote:
> But what If I want to add influence to just one bone, without
> influencing the weights any other bone.
Simply don't toggle on the "normalized paint" button. This would then
work as it does currently
> What I do is consider light green to be my "max influence"..
Yes, but this is counter-intuitive (which is the point I am arguing, not
that it is a better/worse workflow). When one first starts painting
weights, you would expect that painting "full bright" (i.e. weight 1.0)
would mean that the selected bone/influence is going to fully affect the
painted area. Just like when painting red with full opacity in the
texture image (either in Blender, PhtoShop, or GIMP), you would expect
that the colour would be red on the image, not green or orange depending
on layers you cannot see/influence (this is ignoring special brushes as
the analogy starts breaking down between images/weights there).
The point is, you have had to bend your mind around an implementation
detail in the system (Blender) to get things to work as you would like;
just as one has to do with Maya's weight painting. The only difference
is what you bend you mind around. In Blender you bend it around the
fact that the weight you see is not necessarily what you get (I think
this is a bad thing). In Maya you bend it around the fact that you can
only add weight vertices, as subtracting or smoothing (equally bad in my
opinion).
> Furthermore, how do you propose such a system would work with envelope
> "mult" mode?
Same as it does now. My suggestion is not "replacing" the current
workflow, but extending it. Given the fact that "mult" mode operates
different than standard weight-painted deformations, I don't see that
one should consider them one & the same in terms of workflow anyway. The
weights you would paint for "mult" mode are very likely to be quite
different to the ones you would paint without it activated.
> Listen.. I used maya a lot... a lot a lot a lot.
Same here, still do for somethings (one of them being simply moving from
Wings/Blender into Maya format for the people that want to use the
meshes *laugh*). I am not saying that the exact way it does things is
the way it should be done. My contention is the way it SHOWS you the
weights is more intuitive than the way Blender does. I KNOW in Maya that
if I see pure white when painting my weights that the deformation is
going to 99.99% controlled by the active bone (only 99.99% because of
the very low weights issue you correctly point out). I do not know what
it means in Blender when I see red as it pertains to the selected bone
as it depends on the possible weights of all other bones in the armature.
> I know the pain of having to use the component editor spreadsheet to
> find stray influences too small to otherwise see (float values have
> more precision than the 256 discreet values seen on screen, if your
> eyes are perfect)...
Hence the suggestion I made about having a settable "auto-truncate"
level, below which weights are completely removed. To be honest, I
cannot see how having a weight of 0.004 is going to help something. On
the other hand, the exact problem exists in Blender. As such, I don't
see this being an argument against the suggestion being made, more like
something that should be looked at in both Maya & Blender packages.
> You have your mind around this "sand pit" idea, where you have one cup
> of sand and it needs to be evenly distributed in all the little
> containers to balance out to 1. Think of blender's weight painting as
> masks, for the influence of bones... they can intersect and overlap
> etc... I can get where your visualization problems are coming from
> your point of view, but in my experience, the real refinement to
> weight painting comes during the range of motion testing phase, during
> which it is really really handy to just be able to "add a little
> influence here" to get that one vertex where it is supposed to be. In
> the initial painting, i just keep in mind: green = normal, red = bones
> close to skin (elbows and such)... Since "sand" isn't constantly
> poured around, I don't need to worry about that stray .0001 weight
> becoming .25 when i try and smooth out influence. The system, as it
> is, is much more flexible, than maya... Thank St. Ton for Blender
> doing the normalization in the background rather than bother me with
> having to worry about it.
And this is still feasible. Think about it. If the option to paint
weights normalized or "Blender Standard" (i.e. the current way) can be
toggled on & off. I can paint things my way and then when I need to add
that little bit more weight - use the Blender standard.
You have to remember that regardless of how you currently SEE the
colours at this point, they ARE normalized before being applied to the
deformation. As such, that 0.001 WILL become 0.25 when applied to the
transformation if that is how the number is balanced when all weights
for the vertex are added up. You would see this if you applied
normalisation to the weights using the Python script everyone mentions.
There IS only a limited cup of sand per vertex, it is just that
currently you cannot tell how much of the sand each bone has at this
point in time from the weight colouring. The only difference I am asking
is that *I* be allowed (not that *you* be forced) to see and paint the
weight colours as they will be applied.
> You've challenged me to make a "can maya do this" rigging test.
> Perhaps i'll do it next weekend and post a link here.
I made no such challenge, but if it is something you want to do - go
ahead. Remember though, I am not saying that everything about Maya's
rigging is better than Blender's, just the visualisation aspect. I too
dislike the Smooth/Subtract functionality as Maya has implemented it.
Hence why I am not suggesting Blender's be implemented in that fashion.
I have mentioned two ways the subtraction/smoothing functionality could
be implemented - neither of which would be spreading the weights over
bones not currently influencing the vertex.
> <snip bad Maya implementation issues> You see the problem with pouring
> sand now?
Not at all, what you describe is a bad implementation detail of Maya's
weight painting. Not something I want to duplicate. My suggestion does
not mention spreading the weight over vertices not already influencing
the vertex.
> I'm begging the devs listening: Don't change the way it works. It's
> perfect... perfect, as it is. Don't try and make it like maya.. It
> will end up being a 600 mb piece of bloatware, stuffed with stale
> code, thousands upon thousands of bugs nobody knows how to fix, users
> who hate you, many suicidal students, and your kids will grow up
> gay... Keep it simple. Transparently normalize per vertex in the
> background like it's done now.
I agree - don't make it like Maya. Allow the the transparent
normalization in the background (I have never asked for it to be
removed). However, I have confidence that Blender will evolve when
needed. Nigh on all Maya users know of the issues with weight painting,
yet the development team will not change it. Blender has already proven
many times that the "current implementation" of a feature is not always
the "best implementation" and has evolved to newer and (in general)
better methods. In alot of cases, the old way was not removed, just a
new method added to make things simpler. It is my opinion that this
skinning suggestion is just that.
> But if I can wrap my mind around a new way of thinking about painting
> weights, so can you.
And right here you admit that you need to bend you mind around something
that is not immediately obvious. Which is exactly the reason I would
like the new method of being able to do things.
> I've "converted" several maya users at my university to blender, and
> not a single one wants the old system of "paint weights" back.
And I know alot of Maya users that will not touch Blender due to many of
it's "quirks" as they see it. Neither my experiences nor yours prove
either way is "better", just that different people have different
preferences. The problem is that Blender doesn't allow for my preference
and Maya doesn't allow for yours. If Blender allowed both (as is being
suggested), then the same users can co-exist using the same package...
Blender.
> <snip workaround details>
As Tom Mullen has nicely pointed out - we KNOW there are workarounds.
However, we believe that the suggestion being put forward is more
efficient and intuitive. I can walk from one city to the next. I can
also ride a bike or a horse. But I tell you what, driving sure is
quicker and is what I am used to. I am not asking that we ban walking,
cycling, or equestrian activities - just allow me to drive a car.
Regards,
B.J.Tolputt
More information about the Bf-funboard
mailing list