secondlife / jira-archive

2 stars 0 forks source link

[BUG-203012] Mesh Belly Weight scrambling shape as exponential growth increases. #3242

Open sl-service-account opened 6 years ago

sl-service-account commented 6 years ago

Steps to Reproduce

Testing Shape sliders = Belly, Love handles(both)

Actual Behavior

Completed a fully fitted fully weighted avatar and uploaded. Disappointed to find that a concentric weighted belly will randomly, but symmetrically, spike in all directions.

Expected Behavior

An even and uniform progression to maximum diameter without dropping equally weighted vertices in different directions.

Other information

This doesn't seem to be the same bug as the one closed 5 years ago. Any help with finding a solution that doesn't involve shape keys would be wonderful.

Attachments

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-203012 | | Summary | Mesh Belly Weight scrambling shape as exponential growth increases. | | Type | Bug | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Shnurui Troughton (shnurui.troughton) | | Created at | 2018-01-30T14:36:29Z | | Updated at | 2018-02-13T08:33:26Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2018-02-02T12:09:30.592-0600', "Is there anything you'd like to add?": "This doesn't seem to be the same bug as the one closed 5 years ago. Any help with finding a solution that doesn't involve shape keys would be wonderful.", 'ReOpened Count': 0.0, 'Severity': 'Unset', 'System': 'SL Viewer', 'Target Viewer Version': 'viewer-development', 'What just happened?': 'Completed a fully fitted fully weighted avatar and uploaded.\r\nDisappointed to find that a concentric weighted belly will randomly, but symmetrically, spike in all directions.', 'What were you doing when it happened?': 'Testing Shape sliders = Belly, Love handles(both)', 'What were you expecting to happen instead?': 'An even and uniform progression to maximum diameter without dropping equally weighted vertices in different directions.', } ```
sl-service-account commented 6 years ago

polysail commented at 2018-02-03T00:10:13Z

Okay: So, you are correct that vertex weighting things to 100% on these bones in these regions yields some undesirable and somewhat outlandish results. The SL skeleton has always used a rather non-intuitive weighting distribution for certain bones in the skeleton. In a traditional biped rig, if you want the belly to move you weight things to the belly bone and move it around, expecting that, at some point or another in your mesh, a few vertex weights will approach 100% belly weight. The SL rig is not set up in this manner. It's not that that's 'incorrect' it's just using a different weighting distribution from how you might expect~ This lower percentage baseline is due to the manner in which bones were added to the skeleton over time. ( the skeleton has gone through quite a few updates ) It is for this reason, that when you are rigging things, you constantly find things rather outlandishly moved and or pressed. The bones you're weighting to, aren't meant to have vertices anchored to them 100%. They're meant to work in conjunction with other bones in the area for a much more muted effect. This has always been the case since we allowed for rigging to collision volume bones (Long before Bento). It can be a bit difficult to get used to at first, but a little bit of research into the rigging examples provided by LL and you'll easily circumvent this issue.

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-06T02:29:47Z

Solved:

The instructions for weighting soft areas are obscure.

No where in them is the R.O.P.s method introduced.

Soft zones should be weighted additionally to the Regional Origin Point. In this case, that is the mTorso bone. This is also true for the sliders affecting head shape.

However, this is not true for long ears. The entirety of the ear Must be additionally assigned to the m1 bone on the relative side for the ear end to not expand from the middle of the ear.

sl-service-account commented 6 years ago

polysail commented at 2018-02-07T20:39:11Z, updated at 2018-02-07T20:50:17Z

Regional Origin Point? What's that?? The ear bones aren't collision volume bones. Why would they need partial weighting?

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-09T10:58:38Z, updated at 2018-02-09T11:01:04Z

Exactly.

WHY WOULD THE EAR BONES NEED PARTIAL WEIGHTING TO HAVE THE TIP AT THE END OF THE EAR?

The ear Does have volume bones, wither they're separate or not is another question.

Regional - An area that includes other parts. The kyanto Region is bordered by a forest and everyone there speaks the same dialect.

Origin - Start, core, base.

Point - a fraction of a location.

In this instance, Regional, Origin, Point, means what bone you're starting from.

The CHEST is starting from the mChest.

The PELVIS is starting from the mPelvis.

The BELLY and LOWER_BACK start from the mTorso.

The entirety of the face starts from the mHead.

The Entirety of each limb start from that section of the limb.

You don't attach the face to the mTorso as a root.

You might also call them "Root Bones," but doing so doesn't tell people what they're suppose do weight to it for fluffy parts. Does the BUTT connect to the mTorso or the mPelvis?

sl-service-account commented 6 years ago

polysail commented at 2018-02-09T15:46:47Z, updated at 2018-02-09T15:55:38Z

You don't need partial weighting at the tip of an ear ~ that's not something you need.

BUTT is partially weighted to mPelvis. Please there's literally a demonstration rigging body on the rigging wiki right here: http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh#Download_links Please go look at it ~ it's pre-bento but still, it'll give you a better idea of what you're doing so you don't keep feeling compelled to post "The SL body is broke" JIRA's.

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-10T12:59:43Z

You don't need partial ear weighting, you need total ear weighting. The entire ear has to be weighted to mEar//1 for the tip to be affected by the slider correctly. This is not the correct behavior.

This is also not the correct thread for that discussion. You noticed I stopped responding to that thread, because you haven't looked at http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh#Download_links Followed the tutorials for weighting, oh, say an arm, and extrapolated that, hey, yea the ear tip isn't in the middle of the ear and shouldn't be dependant on the lack of syntax or a programming language that handles transitionary mathmatical algarythms without further input from the programmer, so you found this and made this one about that too.

AFTER I PUT A RETRACTION AND AN ADDENDUM THAT http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh#Download_links DOES NOT INFACT SAY, IN ANY WAY SHAPE OR FORM, WORKS FOR BENTO TOO.

Now people who miss the fact that http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh#Download_links is for all mesh weighting bellow the neck, will be able to find this when they make my mistake, but instead of a clean, go here response, they've got you telling me I'm wrong, After I admitted it.

Go have a smoke, close and or delete this thread, and have a good day.

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-10T13:00:25Z

That link does in fact have no tutorials what so ever on it.

sl-service-account commented 6 years ago

polysail commented at 2018-02-10T16:12:09Z, updated at 2018-02-10T16:25:12Z

I never said it had a "tutorial". Where did you get the notion it had a tutorial? Please do not get angry at me for saying things I did not say~ Download the mesh skeleton files~ Look at the weighting distribution on them. Learn from them the approximate proper vertex weighting distribution from the way that they are set up.

So far you've created separate JIRA's https://jira.secondlife.com/browse/BUG-40569 because you felt that the BUTT, BELLY, and LOVE_HANDLES, bones all "behaved incorrectly". None of these are "bento" bones, nor has bento changed in any way how they behave. As such the skeleton files in that link will serve you well, because, to stress this again: even with the advent of bento their behavior has not changed.

I will agree with you~ it would be nice if a step-by-step tutorial for weighting the SL body existed. There is something of an information vacuum on Linden wiki pages regarding that ~ but that is something that 3rd party tools / addons for 3d packages such as Avastar provide copious amounts of info on.

Also ~! Don't forget that https://community.secondlife.com/forums/forum/303-mesh/ is an excellent place to ask questions about rigging.

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-13T08:32:09Z

Feel free to add this to the wiki

Mesh Tutorial:

Secondlife shape sliders and Weight Painting.

Forward:

This tutorial makes the assumption that you have legally aquired and learned to use a three dimensional editor such as Autodesk, Blender, or Maya. That is not exclusive of other tools that can be used.

Specifics about how the tools in the program(s) work are not included.

The following terms are used in this tutorial: Rig - This is the armarture, or skeleton, which is the make up of the avatar. Object - This is the external portion of the avatar. Control - This is the motion control segments, or bones, on the armature. Collision - This is the shape key segments, or bones, on the armature.

The bone names are uniform in layout. Control bones will be prefaced with the lowercase m and spelled out with capitolized coinjoined part names, such as mPelvis or mEyeLeft. Collision bones are in all caps with underscores between the parts. Collision bones are also labeled with the direction first, such as L_LOWER_LEG or RIGHT_HANDLE.

These two things must be remembered at all times.

  1. All verticies of your Object MUST have at least a 10%(0.1) weight from the control bone that should move that point.

  2. Not all control bones have sliders connected to them.

Step 1:

Align the Object to the rig. While the classic T-pose is not needed for painting, it is required for importing. If your object is not in the t pose, adjust the rig to fit it, weight the control bones appropriately, then move the rig back to the t pose. Videos of how to do this are available on youtube.

Step 2:

Make sure each control is painted to within tolerances by manuvering each joint on the rig. Once satisfied with the motion, move to step 3.

Step 3:

Repeat the painting process with the collision bones. Express the verations of each collision until they change smoothly.

The following control bones do not have any sliders attached to them but can still be used for custom animations:

mSkull - usefull for crests and animating hair. mEarLeft2 & mEarRight2 - a light coating of the ear1 control is required for proper shaping. mToeLeft & mToeRight - a light coating of the foot wieght is needed for proper shaping.

Keep in mind:

Rigid bones that are near the skin's surface do not change size as rapidly as the rest of the body. For a more naturual look, consider a lower collision weight on the fingers than on the hand as well as the shins, toes, elbows, knees and spine.

Muscle and tendon zones also tend to expand slower than fat, such as the palm, the sole, or the achillies.

It is only necessary to move bones, control or collision, for non humanoid characters. Offset weights should not pull the object into the armature. This method has been tested and works for the ear, jaw, and tail control bones.

The following theorem has yet to be tested:

Is it possible to weight the hind quarter to the leg and pelvis collision?

Would weighting the belly collision to a tauren's lower belly expand correctly?

Can the wing's be painted offset at a rotation, such as would be required for a pegasus or grpyhon? [It would probably be better to go ahead and move the wing controls to prevent problems later.]

sl-service-account commented 6 years ago

Shnurui Troughton commented at 2018-02-13T08:33:27Z

Author, me, just before the laptop decided I needed to update.