[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