{"id":1099,"date":"2016-06-01T23:06:10","date_gmt":"2016-06-01T23:06:10","guid":{"rendered":"http:\/\/avastar.online\/?page_id=1099"},"modified":"2016-06-01T23:06:10","modified_gmt":"2016-06-01T23:06:10","slug":"topology-considerations","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/292\/reference\/usermanual\/attachments\/topology-considerations\/","title":{"rendered":"Topology"},"content":{"rendered":"<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> Topology flaws&#8230;<\/h2>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Stretching a mesh beyond reasonable proportions is mostly an indication for too few edge loops. Indeed we have too few faces in our mesh near the symmetry line. Thus our mesh topology does not work well with the way how we want our skirt to bend and stretch. This is an important find!<\/p>\n<p>&nbsp;<\/p>\n<div class=\"symple-box  peach center \" style=\"text-align:left;\"> <strong>Gotcha:<\/strong> Our animation and the organization (topology) of our mesh are closely related to each other.<\/div>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1053.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-6538 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1053.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1053.png 386w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1053-277x300.png 277w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h3>and here is the cure&#8230;<\/h3>\n<p>The easiest fix is to just add edge loops (one left to the symmetry line, one right to it). And since the same problem also happens on the backside of the mesh I will add another 2 loops there as well.<\/p>\n<p><strong><span style=\"color: #3366ff;\">Hint:<\/span> <\/strong>Use CTRL R to add edge loops<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Here is the mesh in rest pose after i added the extra edge loops (the selected edges).<\/p>\n<p><strong><span style=\"color: #3366ff;\">Note:\u00a0<\/span> <\/strong>Adding edge loops will automatically weight the new vertices by calculating interpolations from the adjacent vertex weights. In most cases the results are good out of the box. Although sometimes you might need to tweak the weights manually.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1051.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6528\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1051.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1051.png 386w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1051-277x300.png 277w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<p><span style=\"color: #ff6600;\"><strong>Note:<\/strong><\/span> I also have shifted some edge loops a bit to give a more uniform face size in rest pose. But be aware that i have kept the faces near the symmetry line small! Because here the most stretching will happen. Also note that we have other options to fix this by changing the edge flow. But lets keep this aside for now. We might get back to this within another tutorial.<\/p>\n<p>For now let&#8217;s get back to frame 48 of our test animation, then select the edge loops one by one and for each loop apply the Levels tool with different Gain values.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Tip:<\/span> <\/strong>Try to remove weights &#8220;from the opposite&#8221; side (so use the levels tool such that you can use gains &lt; 1.0) This gives you better control over how the edge loops move.<\/p>\n<p>So when you work on the left foot, then remove weights from the right Hip and Vice versa. But this is just a rule of thumb!<\/p>\n<h4>The result &#8230;<\/h4>\n<div class=\"row-fluid\" style=\"text-align: center;\">\n<div class=\"rhcol span7\">\n<p style=\"text-align: left;\">And here is the weighted Skirt. You now can take the skirt and export it to Collada (using the Avastar Collada Exporter), then Import it to Second Life (or OpenSim, etc&#8230;) and do not forget to enable the option &#8220;with Weights&#8221; when you upload to SL. Otherwise the weights will not be included and your mesh is not imported as rigged mesh.<\/p>\n<p style=\"text-align: left;\">The export is described in more detail in the next chapter.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\u00a0<a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1052.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6525\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1052.png\" alt=\"\" width=\"386\" height=\"418\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1052.png 386w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2020\/12\/Image1052-277x300.png 277w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><\/a><\/div>\n<\/div>\n<p style=\"text-align: center;\"><a href=\"\/reference\/usermanual\/attachments\/exporting\/\" 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; Export<\/span><\/a>\n","protected":false},"excerpt":{"rendered":"<p>Topology flaws&#8230; Stretching a mesh beyond reasonable proportions is mostly an indication for too few edge loops. Indeed we have too few faces in our mesh near the symmetry line. Thus our mesh topology does not work well with the way how we want our skirt to bend and stretch. This is an important find! [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6538,"parent":351,"menu_order":70,"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-1099","page","type-page","status-publish","has-post-thumbnail","hentry","category-reference"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/1099","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/comments?post=1099"}],"version-history":[{"count":0,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/1099\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/351"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/media\/6538"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/media?parent=1099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/categories?post=1099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/tags?post=1099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}