{"id":1096,"date":"2016-06-01T23:02:34","date_gmt":"2016-06-01T23:02:34","guid":{"rendered":"http:\/\/avastar.online\/?page_id=1096"},"modified":"2022-05-12T21:00:06","modified_gmt":"2022-05-12T21:00:06","slug":"bone-weights","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/300\/reference\/usermanual\/attachments\/bone-weights\/","title":{"rendered":"Bone Inheritance"},"content":{"rendered":"<h2><span style=\"font-size: large;\"><image src=\"\/avastar\/292\/wp-content\/uploads\/2019\/08\/approve_logo_280.png\" style=\"width:120px;vertical-align:middle;margin-left:0px;margin-right:10px;\"><\/image> Bone Weights and Inheritance<\/span><\/h2>\n<p>Skeletal animation relies on inheritance: A weight on a bone at the end of a bone chain affects all movements induced by any of the bones in the chain. I can explain this best with an example:<\/p>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Theory corner: Weight inheritance and Collision Volumes<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<h4>Weighting the hands<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Think about the Hand part of your character. The Secondlife System, character has its hands weighted only to the Wrist bones. Only near the joint to the lower elbow bones we see that a few vertices have 2 weights distributed between the wrist and the lower elbow bone (the green zone in the image)<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-008.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-28387\" src=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-008.png\" alt=\"reference-008\" width=\"354\" height=\"188\" \/><\/a><\/div>\n<\/div>\n<h4>Bone inheritance<\/h4>\n<p>Now you can rotate the wrist bone relative to the lower arms. Then the mesh moves along with the bone (on the red areas) and behaves well near the joint (on the green areas, stretches without getting too distorted)<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>But when you move the lower arms instead of the wrist bones, then the hands still move along with the arms, although most vertices are only weighted to the wrist bones! This is because the Wrist bones are children of the Elbow Bones. When the elbow bones move, then also the wrist bones move (because of the bone hierarchy). And because the fingers are weighted to the wrist bone, they move correctly along with the arm.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-009.png\"><img decoding=\"async\" class=\"aligncenter wp-image-28388 size-full\" src=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-009.png\" alt=\"reference-009\" width=\"354\" height=\"188\" \/><\/a><\/div>\n<\/div>\n<h4>Typical Weight count<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When you put all of this together then you realize that most of your vertices have only one weight (indicated as red area), while near the joints the vertices typically have no more than 2 weights. In fact we have seen above that the original SL Avatar has no vertex weighted to more than 2 bones.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_28389\" style=\"width: 364px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-010.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28389\" class=\"wp-image-28389 size-full\" src=\"https:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-010.png\" alt=\"reference-010\" width=\"354\" height=\"188\" \/><\/a><p id=\"caption-attachment-28389\" class=\"wp-caption-text\">Green areas have 2 weights on each vertex<\/p><\/div>\n<\/div>\n<\/div>\n<p>And when you look in more detail then you see that the areas where a vertex has 2 weights are always close to the joints. Does this make sense now?<\/p>\n<h2><image src=\"\/avastar\/292\/wp-content\/uploads\/2019\/08\/approve_logo_280.png\" style=\"width:120px;vertical-align:middle;margin-left:0px;margin-right:10px;\"><\/image> Basics of Fitted Mesh<\/h2>\n<p>This page is about the principles of fitted Mesh. We strongly recommend that you first read this page before you attempt to go ahead and do practical work. However here are the links to the other pages on this topic:<\/p>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<a href=\"http:\/\/avastar.online\/reference\/fitted-mesh\/\" class=\"symple-button large blue   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">How to work with the Fitting Panel<\/span><\/a>\n<\/div>\n<div class=\"span6 rhcol\">\n<a href=\"http:\/\/avastar.online\/workflows\/fitted-mesh\/joint-positions-with-fitted-mesh\/\" class=\"symple-button large blue   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">How to work with Joint Positions<\/span><\/a>\n<\/div>\n<\/div>\n<h2>The Nuts &amp; Bolts<\/h2>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p>When we step into fitted mesh the situation gets a bit more complicated. Technically Fitted mesh is nothing special. It just makes use of a subset of the Skeleton, namely the set of Collision Volume Bones, where each Collision Volume Bone is clamped to a corresponding classic bone. Thus building tightly coupled Bone Pairs.<\/p>\n<\/div>\n<div class=\"span6 rhcol\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-0121.png\"><img decoding=\"async\" class=\"aligncenter wp-image-28394 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-0121.png\" alt=\"\" width=\"466\" height=\"322\" \/><\/a><\/div>\n<\/div>\n<p>In the image aside you see for example the 3 bone pairs:<\/p>\n<ul>\n<li>R_HAND is clamped to mWristRight<\/li>\n<li>R_LOWER_ARM is clamped to mElbowRight<\/li>\n<li>R_UPPER_ARM is clamped to mShoulderRight<\/li>\n<\/ul>\n<h4>Fitting Bones<\/h4>\n<p>Due to the clamping the collision Volume always moves and rotates along with the bone to which it is clamped. With other words each bone pair [Collision Volume + Classic Bone] can be seen as one unbreakable unit. Lets name such a bone pair a <span style=\"color: #ff6600;\"><em>FittingBone<\/em><\/span> consisting of an <span style=\"color: #ff6600;\"><em>mBone<\/em><\/span> (a classical bone) and a <em><span style=\"color: #ff6600;\">cBone<\/span><\/em> (a collision Volume).<\/p>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p>When we look at classic Weighting then we only deal with the classic mBones. The cBones are completely ignored by the animation system and things are rather easy and well organized (left side of image).<\/p>\n<\/div>\n<div class=\"span6 rhcol\">\n<div id=\"attachment_28398\" style=\"width: 459px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-013.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28398\" class=\"wp-image-28398\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-013.png\" alt=\"reference-013\" width=\"449\" height=\"295\" \/><\/a><p id=\"caption-attachment-28398\" class=\"wp-caption-text\">Left: regular Bones; Right: regular + cBones<\/p><\/div>\n<\/div>\n<\/div>\n<p>For Fitted Mesh many users think they just need to replace the classic mBone weighting by the new cBone weighting, thus only use the cBones for fitted mesh. But this is not true. In general we have to deal with all cBones and all mBones at the same time when we make fitted mesh (right side of image)!<\/p>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<h4>Animating Fitted mesh<\/h4>\n<p>Regarding the animation of your characters, it does not matter which bone of a <em><span style=\"color: #ff6600;\">FittingBone<\/span><\/em> pair gets which weight:<\/p>\n<ol>\n<li>You could place all weight to the mBone<br \/>\nto get a pure classic weighting.<\/li>\n<li>or you could place all weight on the cBone<br \/>\nto get &#8220;Fully Fitted Mesh&#8221; weighting,<\/li>\n<li>or you can distribute the weight between<br \/>\nthe 2 bones in any way you like.<\/li>\n<\/ol>\n<p>In any case it is the weight sum of the Collision Volume and the corresponding classic Bone within a FittingBone pair that affects the animation, nothing else!<\/p>\n<\/div>\n<div class=\"span6 rhcol\">\n<div id=\"attachment_28403\" style=\"width: 420px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-016.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28403\" class=\"wp-image-28403 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-016.png\" alt=\"reference-016\" width=\"410\" height=\"194\" \/><\/a><p id=\"caption-attachment-28403\" class=\"wp-caption-text\">All weights on the mBone (Classic)<\/p><\/div>\n<div id=\"attachment_28402\" style=\"width: 420px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-015.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28402\" class=\"wp-image-28402 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-015.png\" alt=\"reference-015\" width=\"410\" height=\"194\" \/><\/a><p id=\"caption-attachment-28402\" class=\"wp-caption-text\">Weights distributed between mBone and cBone<\/p><\/div>\n<div id=\"attachment_28401\" style=\"width: 420px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-014.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28401\" class=\"wp-image-28401 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-014.png\" alt=\"reference-014\" width=\"410\" height=\"194\" \/><\/a><p id=\"caption-attachment-28401\" class=\"wp-caption-text\">All weights on the cBone (fully Fitted)<\/p><\/div>\n<\/div>\n<\/div>\n<h4>The animation pitfall<\/h4>\n<p>Lets say your mesh is perfectly weighted to the classic bones. Now you want to convert this to fitted mesh. So you just add weight to the Collision Volume Bones and all is done&#8230;<\/p>\n<p>But wait, when you add weight to a collision Volume, then the weight sum on your vertices raises above 1.0 (because you <strong>added<\/strong> weight) ops&#8230; well, Blender is a bit clever here (and also a bit confusing for the user), it allows you to create weight sums &gt; 1. But then it internally corrects the numbers by normalizing them before using them. Normalizing enforces that the weight sum is 1.0 again.<\/p>\n<p>So what? All is well again, no?&#8230;<\/p>\n<p>well, you have added weight to the collision volume bone, right? But the weight sum must be kept at 1.<\/p>\n<p>Hence this added weight must have been taken away from somewhere&#8230; So by adding weight to the cBone we reduce the weight on all other bones.<\/p>\n<p>This is not an issue where you only have one single weight (the red zones in the images above). But wherever you already had 2 or more weights on classic bones, adding weight to a corresponding Collision volume most probably destroys your weights on the classic bones. And unfortunately this always happens near the joints.<\/p>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<h4>Shaping Fitted Mesh<\/h4>\n<p>The Collision Volume Bones are used to add volume to your mesh. That is, the cBones provide a scale vector to make your mesh bigger or smaller depending on the amount of weight on the CollisionVolume Bone.<\/p>\n<p>However you never &#8220;see&#8221; this vector anywhere. But you modify its value by using the Appearance Sliders. And as a result your mesh blows up or shrinks whenever a vertex is weighted to a collision volume bone AND the sliders are not in the neutral state.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Caveat:<\/span> <\/strong>But all of this does not happen when your armature is in its default Shape (neutral shape) simply because there the scale vector is neutral.<\/p>\n<h4>Practical tip<\/h4>\n<p>When you want to do Fitted Mesh, then please select your Mesh, then step into the Avastar Skinning panel and ensure that your Mesh is set to &#8216;SL Appearance&#8217;<\/p>\n<p>And then move the appearance sliders of interest out of the neutral setting. otherwise you can not see any change in your fitted mesh!<\/p>\n<\/div>\n<div class=\"span6 rhcol\">\n<p>&nbsp;<\/p>\n<div id=\"attachment_28407\" style=\"width: 354px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-018.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28407\" class=\"wp-image-28407 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-018.png\" alt=\"reference-018\" width=\"344\" height=\"194\" \/><\/a><p id=\"caption-attachment-28407\" class=\"wp-caption-text\">Weights on RIGHT_PEC, Breast Size appearance slider set to 0<\/p><\/div>\n<div id=\"attachment_28406\" style=\"width: 354px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-017.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28406\" class=\"wp-image-28406 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-017.png\" alt=\"reference-017\" width=\"344\" height=\"194\" \/><\/a><p id=\"caption-attachment-28406\" class=\"wp-caption-text\">Weights on RIGHT_PEC, Breast Size appearance slider set to 50 (neutral)<\/p><\/div>\n<div id=\"attachment_28408\" style=\"width: 354px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-019.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28408\" class=\"wp-image-28408 size-full\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-019.png\" alt=\"reference-019\" width=\"344\" height=\"194\" \/><\/a><p id=\"caption-attachment-28408\" class=\"wp-caption-text\">Weights on RIGHT_PEC,<br \/>Breast Size appearance slider set to 100<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<h4>Weight Count for Fitted Mesh<\/h4>\n<p>We learned above that the FittingBones consist of bone pairs. So when we look at the joint of any 2 FittingBones we actually look at 4 bones (and not at 2 bones as in the classic weighting) Thus at the end you see that for Fitted mesh you typically need the double amount of weights on each vertex (weight the collision volumes for shaping, weight the classic bones for animating)<\/p>\n<p>As a consequence a fitted mesh character does in general use 4 weights near the joints and 2 weights anywhere else.<\/p>\n<\/div>\n<div class=\"span6 rhcol\">\n<div id=\"attachment_28391\" style=\"width: 286px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-011.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-28391\" class=\"wp-image-28391\" src=\"https:\/\/avalab.org\/wp-content\/uploads\/2012\/11\/reference-011.png\" alt=\"reference-011\" width=\"276\" height=\"422\" \/><\/a><p id=\"caption-attachment-28391\" class=\"wp-caption-text\">Green: 2 weights, Orange: 4 weights<\/p><\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n\n<\/div><\/div>\n<h4>Tweaking Weights of a subset of vertices<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>In the previous document we have managed to get the Mesh mostly fixed on its upper part. However we do have some parts where the System character mesh pokes through our skirt.<\/p>\n<p>We can use the vertex group editor to tweak the values of mPelvis and mHipRight for each of the badly placed vertices on the butt. It is a lot of small editing and we do this only for educational purpose. Normally you would not edit weights in that way because it is by far too time consuming.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1042.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6497\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1042.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1042.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1042-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>&nbsp;<\/p>\n<p>However, after a couple of minutes and after tweaking a few vertices we might end up with something like in the image to the right. This is better, but still not good. Why that ?<\/p>\n<\/div>\n<div class=\"rhcol span5\">\u00a0<a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1043.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6498\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1043.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1043.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1043-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<\/div>\n<h4>Topology rules them all&#8230;<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The Skirt butt gives us so much headache because the Avatar&#8217;s butt and the skirt&#8217;s butt use a slightly different mesh topology. And &#8230; when you take a look at how the avatar&#8217;s But animates, then you see, surprise, surprise&#8230;<\/p>\n<p>It is actually not animated&#8230; what ? well, go and see by yourself. Our walk cycle does not affect the Avatar Butt at all, oops&#8230;<\/p>\n<p>Well, on a second thought this is not entirely wrong for the avatar. But for a skirt we might want to get a somewhat more subtle weighting. So we have a problem&#8230; (but the solution comes next)<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_6499\" style=\"width: 396px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1044.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6499\" class=\"wp-image-6499 size-full\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1044.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1044.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1044-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><p id=\"caption-attachment-6499\" class=\"wp-caption-text\">The red area is only tied to the mPelvis bone<\/p><\/div>\n<\/div>\n<\/div>\n<h4>The 5 seconds fix &#8230;<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The fix is banal: In mesh Edit Mode: Lift the faces up a bit along their normals&#8230;:<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1045.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6500\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1045.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1045.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1045-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Well, just a tiny lifting of the important parts is necessary and then all goes well. Note: I also have smoothed the weights a bit as you an see on the yellow\/green parts.<\/p>\n<p>So now lets turn to the real issue, that is the poke through on the upper legs&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1046.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6501\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1046.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1046.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1046-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h4>An important observation<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>For better orientation I have placed a seam marker on the symmetry line of the skirt (the dark red edge loop, see image). And I moved the timeline to 30, that is where the poke through is maximal for the right leg. And furthermore I have selected the edge loop that needs the most fixing.<\/p>\n<p>We now must lift the bottom of the selected edge loop above the leg&#8217;s surface. We will do that with the <span style=\"color: #ff6600;\"><em>Levels tool.<\/em><\/span><\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1047.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6504\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1047.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1047.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1047-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<\/div>\n<p>The Levels tool has 2 purposes:<\/p>\n<ul>\n<li>It can add a constant offset to the weights of the current vertex selection.<\/li>\n<li>and it can scale up the weights of the current vertex selection.<\/li>\n<\/ul>\n<p>We will use the scale function to lift the selected edge loop up until the poke through disappears.<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<ul>\n<li>Select the edge loop.<\/li>\n<li>Ensure you have selected the mHipRightt weight group (in the Vertex group List).<\/li>\n<li>Below the Top Bar of the 3D Viewport open the Mesh Menu and locate the Levels tool (see image)<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1050.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6518\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1050.png\" alt=\"\" width=\"631\" height=\"663\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1050.png 631w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1050-286x300.png 286w\" sizes=\"(max-width: 631px) 100vw, 631px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<ul>\n<li>Now call the <em>Levels Tool.<\/em><\/li>\n<li>In the Operator panel lower the gain until the surface of the skirt gets completely pulled out (that happens around Gain = 0.08).<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1048.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6505\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1048.png\" alt=\"\" width=\"280\" height=\"104\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>We end up with something like in the image aside. Please take care that you do not over correct the weights as shown in the image. You can get this fixed by adding a bit to the gain.<\/p>\n<p>In the next chapter we will take care of the stretched mesh.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1049.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-6506\" src=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1049.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1049.png 386w, https:\/\/avalab.org\/avastar\/300\/wp-content\/uploads\/2020\/12\/Image1049-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<\/div>\n<p style=\"text-align: center;\"><a href=\"\/reference\/usermanual\/attachments\/topology-considerations\/\" class=\"symple-button default green   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">Next &#8212; Topology<\/span><\/a>\n","protected":false},"excerpt":{"rendered":"<p>Bone Weights and Inheritance Skeletal animation relies on inheritance: A weight on a bone at the end of a bone chain affects all movements induced by any of the bones in the chain. I can explain this best with an example: Tweaking Weights of a subset of vertices In the previous document we have managed [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":28387,"parent":351,"menu_order":60,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[8],"tags":[],"class_list":["post-1096","page","type-page","status-publish","has-post-thumbnail","hentry","category-reference"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/1096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/comments?post=1096"}],"version-history":[{"count":1,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/1096\/revisions"}],"predecessor-version":[{"id":43689,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/1096\/revisions\/43689"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/pages\/351"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/media?parent=1096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/categories?post=1096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/300\/wp-json\/wp\/v2\/tags?post=1096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}