{"id":1089,"date":"2016-06-01T22:53:38","date_gmt":"2016-06-01T22:53:38","guid":{"rendered":"http:\/\/avastar.online\/?page_id=1089"},"modified":"2016-06-01T22:53:38","modified_gmt":"2016-06-01T22:53:38","slug":"weight-maps","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/279\/avastar-2\/reference\/attachments\/weight-maps\/","title":{"rendered":"Inspecting the weight maps"},"content":{"rendered":"<h2><image src=\"\/avastar\/279\/wp-content\/uploads\/2019\/07\/approve_logo_250.png\" style=\"width:120px;vertical-align:middle;margin-left:0px;margin-right:10px;\"><\/image> Inspecting the Weight Maps<\/h2>\n<p>I assume you have just generated the Weights for your mesh by using Weight from Bones as described in the in the previous chapter (you used Bones as the weight source). Blender does a rather good job on automatically determining the weights. However the results are sometimes not yet perfect. So the very first thing that you must do now is to check if the Mesh behaves well and follows the animation of the armature. Here are a few tips for getting started.<\/p>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Inspecting Weights in Edit mode<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<h4>Show Weights in edit mode<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<ul>\n<li>Select your mesh.<\/li>\n<li>Enter Edit Mode.<\/li>\n<li>Open the Properties sidebar (type &#8220;n&#8221;).<\/li>\n<li>Enable Show Weights.<\/li>\n<\/ul>\n<p>Now blender shows the currently selected weight map (vertex group) directly on the mesh (mHipLeft in this case)<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_21156\" style=\"width: 342px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/show_weights1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-21156\" class=\"wp-image-21156 size-full\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/show_weights1.png\" alt=\"show_weights\" width=\"332\" height=\"183\" \/><\/a><p id=\"caption-attachment-21156\" class=\"wp-caption-text\">Enable display of weight maps in edit mode from the properties sidebar<\/p><\/div>\n<\/div>\n<\/div>\n<h4><\/h4>\n<h4>Inspect the Vertex groups of the Mesh<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<ul>\n<li>Open the Object data Properties.<\/li>\n<li>Navigate to the Vertex Groups list.<\/li>\n<\/ul>\n<p>Now you can scroll through the list of vertex groups and you instantly see the current weight group displayed on your mesh. In the image i have selected the mPelvis weight group. You see the weight map display changes from the mHipLeft weights to the mPelvis weights on the skirt.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_21157\" style=\"width: 342px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/show_weights2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-21157\" class=\"wp-image-21157\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/show_weights2.png\" alt=\"show_weights2\" width=\"332\" height=\"212\" \/><\/a><p id=\"caption-attachment-21157\" class=\"wp-caption-text\">The selected weight Map is shown on the mesh<\/p><\/div>\n<\/div>\n<\/div>\n<h4><\/h4>\n<h4>Inspect the vertex Groups of a vertex<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>If you want to know which vertex groups are assigned to a vertex, you can do this:<\/p>\n<ul>\n<li>Open the properties sidebar of the view port (by typing \u201cn\u201d on the keyboard).<\/li>\n<li>Select one of the verts which you want to inspect.<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;\"><strong>Tip:<\/strong><\/span> When you click the Deform button (see image) then only vertex groups\u00a0 for deform bones are listed.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/weight_editor.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-21226\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/weight_editor.png\" alt=\"weight_editor\" width=\"279\" height=\"171\" \/><\/a><\/div>\n<\/div>\n<p>Now you can scroll over the vertext groups by clicking on the names in the list. You even can edit the weights in the Vertex weight editor by either typing the numbers, or dragging the values by using the LMB.<\/p>\n<\/div><\/div>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Inspecting Weights in Weight Paint mode<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>In edit mode it is not possible to pose the mesh while inspecting the weights. However, since posing the character is very often needed to find bad weights, Blender has implemented select and move bones when the Mesh is in <em><span style=\"color: #ff6600;\">Weight Paint Mode<\/span><\/em><\/p>\n<p>Avastar has a weightpaint preset that prepares the rig to be used in an intuitive way. You can use this to prepare your 3D View with 3 clicks:<\/p>\n<ul>\n<li>Open the Tool Shelf (Avastar Tab)<\/li>\n<li>Locate the &#8220;Settings&#8221; Panel<\/li>\n<li>Select the &#8220;Skinning&#8221; Preset<\/li>\n<\/ul>\n<div id=\"attachment_1563\" style=\"width: 190px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2016\/06\/Image363.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1563\" class=\"wp-image-1563 size-full\" src=\"https:\/\/avalab.org\/avastar\/279\/wp-content\/uploads\/2016\/06\/Image363.png\" alt=\"Image363\" width=\"180\" height=\"140\" \/><\/a><p id=\"caption-attachment-1563\" class=\"wp-caption-text\">The orange dot indicates which preset was last called<\/p><\/div>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_21161\" style=\"width: 233px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/weight_paint_mode.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-21161\" class=\"wp-image-21161 size-full\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/weight_paint_mode.png\" alt=\"weight_paint_mode\" width=\"223\" height=\"338\" \/><\/a><p id=\"caption-attachment-21161\" class=\"wp-caption-text\">The Mesh after the &#8220;Skin&#8221; Preset is selected<\/p><\/div>\n<p>When you now select an mBone (blue) Blender also switches to the corresponding weight map.<\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span12\">\n<h4>Using a Pose for Inspection<\/h4>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>While in Weight Paint mode, you can also Pose the mBones. But beware: Avastar&#8217;s blue deforming bones can only be rotated! they can not be moved.<\/p>\n<p>So this mode is not very useful for creating poses for your mesh. But it is good for quickly testing how rotating a single bone will affect the mesh<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Note:<\/strong><\/span> For our purpose it is sufficient to have the Hip bones rotated by +\/- 25\u00b0. I also rotated both lower legs back by 25\u00b0. This gives a good test pose that is good enough for inspecting where the weights need to be fixed.<\/p>\n<div class=\"symple-box  yellow center \" style=\"text-align:left;\"> \n<strong><span style=\"color: #ff6600;\">Important:<\/span><\/strong> This was just a quick test. We will not continue to use this pose! There is a much better method (see &#8220;create a walk animation for testing&#8221;) below.<br \/>\n<\/div>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_21171\" style=\"width: 267px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-21171\" class=\"wp-image-21171 size-full\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/walkNumbers.png\" alt=\"walkNumbers\" width=\"257\" height=\"381\" \/><p id=\"caption-attachment-21171\" class=\"wp-caption-text\">fast walk:<br \/>(h)eight == (s)tep length<br \/>\u03b2 == 50\u00b0<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Details: The right Step Length<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<p>Of course there is no single true answer to this. However i found the following works pretty well for human characters &#8211; assuming the proportions of the default SL Avatar:<\/p>\n<ul>\n<li>For a running walk cycle the maximum distance between the feet is approximately equal to 1.5*length of the legs (that is a very fast running though). This translates to about \u03b2=75\u00b0 for the maximum angle between the legs (see image above).<\/li>\n<li>For a fast (energetic) walk the maximum distance between the feet is approximately equal to the length of the legs. That translates to about \u03b2=50\u00b0 for the maximum angle between the legs.<\/li>\n<li>For a slow walk (and for a fashion walks as well) the maximum distance between the feet is approximately about half the length of the legs. And that translates to a maximum angle of about \u03b2=30\u00b0 between the legs.<\/li>\n<\/ul>\n<p>Of course when you are working on a Ballet tutu then you may need to test much higher angles as well. So, you see, there is no <em>one fits all<\/em> answer. But for our purpose a maximum angle of 50\u00b0 between the legs should be working very well.<\/p>\n<\/div><\/div>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Advanced Tip: Create a walk animation for testing<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<p>Here is a nice little trick that can help you a lot while you are weighting your model. The key idea is to create a very basic animation cycle that contains the extreme positions that you plan to support. Then use the timeline to scrub repeatedly over your animation to check your weighting.<\/p>\n<p>This approach has a few very cool benefits:<\/p>\n<ul>\n<li><span style=\"color: #ff6600;\">Your poses are well defined:<\/span> So you can step to a certain time frame and get the pose for that frame. So you can quickly check how a certain change in the weight maps influences other poses.<\/li>\n<li><span style=\"color: #ff6600;\">You can &#8220;see&#8221; your mesh in action:<\/span> So you can check if the mesh transitions work as anticipated.<\/li>\n<li><span style=\"color: #ff6600;\">You can change the pose in context:<\/span> So you even can now work and keep in Edit mode all the time. When you need to change a bone position, then just scrub on the Timeline without leaving Edit mode.<\/li>\n<li><span style=\"color: #ff6600;\">You can play the timeline:<\/span> you can even edit your mesh while the animation runs.<\/li>\n<\/ul>\n<h4>The Timeline Copy Tool<\/h4>\n<p>Sparkles provides a function which can be used for quickly making simple Animation cycles. here is the tool manual page:<\/p>\n<a href=\"http:\/\/blog.machinimatrix.org\/sparkles\/timeline-copy-tool\/\" class=\"symple-button medium gold   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">Timeline Copy Tool<\/span><\/a>\n<\/div><\/div>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Advanced Tip: Importing an animation for testing<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p>There are thousands of ready made Animations available for Second Life. And Avastar provides a feature to import them and add them to an Avastar rig. The procedure might first look a bit tedious, but you will quickly find it working like a charm.<\/p>\n<p style=\"text-align: center;\"><a href=\"\/help\/motion-transfer\/\" class=\"symple-button large green   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">Motion Transfer Tool<\/span><\/a>\n<\/div>\n<div class=\"span6 rhcol\">\n<div style=\"padding:70% 0 0 0;position:relative;\"><iframe src=\"https:\/\/player.vimeo.com\/video\/235418617?h=1c1d395c65&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"vimeo video\"><\/iframe><\/div><script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<\/div>\n<\/div>\n<\/div><\/div>\n<div class=\"symple-toggle state-open \"><h3 class=\"symple-toggle-trigger active\">Tip: Apply weights in edit mode<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<h4>Apply weights in edit mode<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>I have shown you before that you can inspect weights in edit mode. However we realize quickly that although the weights are displayed perfectly, the mesh does not behave as expected. It looks like the armature does not influence the mesh in edit mode.<\/p>\n<p>This is because the Armature modifier has an option for <em><span style=\"color: #ff6600;\">Adjust Edit Cage to Modifier Result<\/span><span style=\"color: #ff6600;\">(1)<\/span><\/em>. This option is off by default. So we have to enable it:<\/p>\n<p><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/enable_edit_cage.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-21181\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/enable_edit_cage.png\" alt=\"enable_edit_cage\" width=\"340\" height=\"202\" \/><\/a><\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<div id=\"attachment_21186\" style=\"width: 344px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/edit_posed_2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-21186\" class=\"wp-image-21186 size-full\" src=\"http:\/\/blog.machinimatrix.org\/wp-content\/uploads\/2012\/11\/edit_posed_2.png\" alt=\"edit_posed_2\" width=\"334\" height=\"310\" \/><\/a><p id=\"caption-attachment-21186\" class=\"wp-caption-text\">left: Edit Cage not adjusted<br \/>right:Edit Cage adjusted<\/p><\/div>\n<p>As soon as the modifier option is set, the mesh will follow the pose exactly like it does in Weight Paint mode.<\/p>\n<\/div>\n<\/div>\n<p><em><span style=\"color: #ff6600;\">(1):<\/span><\/em> In simple words the Edit Cage is the raw mesh, without any modifier applied and with no constraints applied. Actually the edit cage may look quiet different from the final mesh. The <em><span style=\"color: #ff6600;\">Adjust Edit Cage to Modifier Result<\/span><\/em> applies the current modifier&#8217;s influence on the mesh to the edit cage. Thus when this option is enabled the edited Mesh will look like the final rendered mesh, although you only can edit the raw vertices of the Mesh at any time.<\/p>\n<\/div><\/div>\n<p>I assume that you have added a simple walk cycle as i explained in the Advanced Tip above: Testing by scrubbing (see above) And you have prepared the timeline accordingly. However if you find the creation of the walk cycle is too much for a first try, then you always can move the bones manually as well instead of scrubbing along the timeline.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inspecting the Weight Maps I assume you have just generated the Weights for your mesh by using Weight from Bones as described in the in the previous chapter (you used Bones as the weight source). Blender does a rather good job on automatically determining the weights. However the results are sometimes not yet perfect. So [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":21156,"parent":351,"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":[6],"tags":[],"class_list":["post-1089","page","type-page","status-publish","has-post-thumbnail","hentry","category-reference"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/1089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/comments?post=1089"}],"version-history":[{"count":0,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/1089\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/pages\/351"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/media?parent=1089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/categories?post=1089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/279\/wp-json\/wp\/v2\/tags?post=1089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}