{"id":403,"date":"2015-10-12T17:25:21","date_gmt":"2015-10-12T17:25:21","guid":{"rendered":"http:\/\/avastar.online\/?page_id=403"},"modified":"2015-10-12T17:25:21","modified_gmt":"2015-10-12T17:25:21","slug":"nutsbolts-of-fitted-mesh","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/legacy\/knowledge\/nutsbolts-of-fitted-mesh\/","title":{"rendered":"Basics of Fitted Mesh"},"content":{"rendered":"<p>This page is about the principles of fitted Mesh. We strongly recommen 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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-0121.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-28394 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-013.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28398\" class=\"wp-image-28398\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-016.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28403\" class=\"wp-image-28403 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-015.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28402\" class=\"wp-image-28402 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-014.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28401\" class=\"wp-image-28401 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-018.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28407\" class=\"wp-image-28407 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-017.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28406\" class=\"wp-image-28406 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-019.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28408\" class=\"wp-image-28408 size-full\" src=\"http:\/\/blog.machinimatrix.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=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/reference-011.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28391\" class=\"wp-image-28391\" src=\"http:\/\/blog.machinimatrix.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","protected":false},"excerpt":{"rendered":"<p>This page is about the principles of fitted Mesh. We strongly recommen 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: The Nuts &amp; Bolts When we step into fitted mesh the situation gets a bit [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":381,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-403","page","type-page","status-publish","hentry","category-knowledge"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/pages\/403","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/comments?post=403"}],"version-history":[{"count":0,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/pages\/403\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/pages\/381"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/media?parent=403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/categories?post=403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/legacy\/wp-json\/wp\/v2\/tags?post=403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}