Envelope Request (Easily Implemented, AFAIK)

The interface, modeling, 3d editing tools, import/export, feature requests, etc

Moderators: jesterKing, stiv

Post Reply
Ongnissim
Posts: 0
Joined: Thu Oct 13, 2005 6:25 am

Envelope Request (Easily Implemented, AFAIK)

Post by Ongnissim »

While I was using some of the current test builds I have noticed that if I mess up on my Envelopes/Vertex Weight groups, and have to change the envelopes of the armatures, that increasing the envelope size (on, lets say, a finger) so that the entire finger is in the envelope. Some of the envelope may be surrounding a few verteces of another part of the mesh (like another finger) so that if you set the armature to use just the envelopes (as your vertex groups are wrong for whatever reason) that particular bone moves those other vertecies of the other finger, which is not what is wanted.

My proposition is that you allow an option so that the envelope stops effecting vertecies when it goes beyond the mesh (like when the envelope reaches beyond the finger, into the void). I think this would be a cool addition to Blender, and easy to implement. If any developer would be willing to give a whack at this, I'd be much obliged.

Again, I want to stress that this CAN be an option for particular bones (like a button that says "Affect only Connected" or something similar) and if this doesn't make sence, I can get pictures to help show what I mean...

Hold on Tight,
Ongnissim

Roja
Posts: 0
Joined: Tue May 04, 2004 4:36 pm

Post by Roja »

Is that done in other 3d programs?

Ongnissim
Posts: 0
Joined: Thu Oct 13, 2005 6:25 am

Post by Ongnissim »

Roja wrote:Is that done in other 3d programs?
I have no idea, :shock: it just seems logical to me...

Hold on Tight,
Ongnissim

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Re: Envelope Request (Easily Implemented, AFAIK)

Post by theeth »

Ongnissim wrote:Again, I want to stress that this CAN be an option for particular bones (like a button that says "Affect only Connected" or something similar) and if this doesn't make sence, I can get pictures to help show what I mean...
At first it seemed like a good idea and then I thought: Connected to what?
Connected PET works because there's a starting point to test connection (the selection). I don't see how that would work for bones in a boundary volume.

Unless you start doing full solid volume testing I mean (determining what's inside / outside).

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

Ongnissim
Posts: 0
Joined: Thu Oct 13, 2005 6:25 am

Re: Envelope Request (Easily Implemented, AFAIK)

Post by Ongnissim »

theeth wrote: At first it seemed like a good idea and then I thought: Connected to what?
Connected PET works because there's a starting point to test connection (the selection). I don't see how that would work for bones in a boundary volume.
I'm sorry, I didn't word that correctly :?

What I meant was points connected to that part of the mesh:

Assume you have this:
Image

I think that in order to stop this from happening:
Image

The envelope should perhaps have an option to stop effecting verteces once it gets beyond points connected to that area, into a void, as shown here:
Image

I hope that helps explain what I meant above. Is this possible, or will I just have to become better at rigging :shock: .

:roll:

I really would like to see this implemented, as this bulge thing gets on my nerves a little. Thanks for your help!

Hold on Tight,
Ongnissim

EDIT: BTW, I hope doing this was not what you meant by "Solid Volume Testing", as it might could be done by checking if verts within the bounds of the bone were connected to each other, though I might be wrong, as I have never looked at the Blender code (Though I want to, eventually)

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

All connected to what?
Maybe the envelope should effect only verteces that can "reach", following edges within the envelope, the vertex with the shortest distance to the bone.

Ongnissim
Posts: 0
Joined: Thu Oct 13, 2005 6:25 am

Post by Ongnissim »

joeri wrote:All connected to what?
Each other... I'm not really sure how to reword this, though it seems logical to me, its alright if it isn't...

Hold on Tight,
Ongnissim

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Re: Envelope Request (Easily Implemented, AFAIK)

Post by theeth »

Ongnissim wrote:EDIT: BTW, I hope doing this was not what you meant by "Solid Volume Testing"
This is exactly what I meant by volume testing. :)
joeri wrote:Maybe the envelope should effect only verteces that can "reach", following edges within the envelope, the vertex with the shortest distance to the bone.
Yeah, that might work.

Then again, I thought enveloppes were made as a quick method to generate passable weight paint which could then be tweaked further.

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

Ongnissim
Posts: 0
Joined: Thu Oct 13, 2005 6:25 am

Re: Envelope Request (Easily Implemented, AFAIK)

Post by Ongnissim »

theeth wrote:
Ongnissim wrote:EDIT: BTW, I hope doing this was not what you meant by "Solid Volume Testing"
This is exactly what I meant by volume testing. :)
That's what I was afraid of...

Is this probable? I can see how it would be an interesting addition, and if it causes a major slowdown (since you'd calculate more [I'm assuming again]) that would be okay, especially if it was only activated by a button in the Armature Settings.

I also forgot to mention that this is not just something to prevent noobs from making errors (which it is) but also something so that if that part of the armature is weird shaped (as in my example, the finger is tall, so the envelope has to be larger to enclose it all) the user would have to spend less time doing manual Weight-Painting work, and more *trying not to use the word manual here :P * animation/posing work. I may seem lazy, but I figure if it can be done, then we should at least try to do it...

Hold on Tight,
Ongnissim

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Post by theeth »

Another solution might be using face normals. Just including all the faces that point aways from the bone.

This might not work in all the cases though, but those cases are probably marginal.

Biggest limitation is that it would depend on sane face normals.

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen »

did c4d introduce bone envelopes quite some years ago (3 to 4)?

i do not rememeber anymore how it worked but they used it for
full character animations which also includes fingers.
so i am sure they had a solution for the problem.

claas

LetterRip
Posts: 0
Joined: Thu Mar 25, 2004 7:03 am

Post by LetterRip »

theeth using face normals as a hint seems like a good idea, perhaps with a button to toggle it on/off with default to on.

LetterRip

osxrules
Posts: 0
Joined: Wed Jun 02, 2004 6:34 pm

Post by osxrules »

theeth wrote:Another solution might be using face normals. Just including all the faces that point aways from the bone.

This might not work in all the cases though, but those cases are probably marginal.

Biggest limitation is that it would depend on sane face normals.

Martin
Yeah, I was thinking that too but like LetterRip said, a way to turn it off would be needed, preferrably for each bone. I'm not sure how well it would work for things like fingernails though.

I never even knew that's what envelopes were for. Bone envelopes is exactly what I was imagining for automatic rigging, except I pictured a script that would iterate through all the bones and set vertex groups based on a cylindrical shape or whatever shape envelopes use (it would be nice to be able to scale envelopes in any axis btw) and then you could adjust the groups as you saw fit. That way you get a quick rig but you can manually fix where it goes wrong. You can also add on solid volume checking to make the automatic rig more accurate.

By baking the rig into the vertex groups, you are not doing any real-time checking for volumes, point positions or normals. This would be a big time saver if Blender decides to mess up the vertex groups when you join two meshes together.

Post Reply