{"id":495,"date":"2018-01-01T08:12:58","date_gmt":"2018-01-01T08:12:58","guid":{"rendered":"http:\/\/avastar.online\/?page_id=495"},"modified":"2018-01-01T08:12:58","modified_gmt":"2018-01-01T08:12:58","slug":"binding","status":"publish","type":"page","link":"https:\/\/avalab.org\/avastar\/292\/help\/n-panel\/avastar\/skinning\/binding\/","title":{"rendered":"Binding"},"content":{"rendered":"<div class=\"row-fluid\">\n<div class=\"rhcol span10\">\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> Binding (Assign Armature)<\/h2>\n<\/div>\n<div class=\"rhcol span2\">\n<a class=\"mamap\" href=\"\/wp-content\/uploads\/2021\/02\/map-binding-skinning.png\" target=\"_blank\"><img decoding=\"async\" alt=\"\" src=\"\/wp-content\/uploads\/2021\/02\/map-binding-skinning.png\" \/><\/a>\n<\/div>\n<\/div>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Glossary: Skinning<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<div class=\"row-fluid\">\n<div class=\"span6 rhcol\">\n<p><span style=\"color: #ff6600;\"><i>Skinning<\/i><\/span> is the process of creating an association between a Mesh (the Skin) and a Rig. More specifically in the <em>Skinning<\/em> process we define associations for each bone of the Rig&#8217;s <em><span style=\"color: #ff6600;\">Skeleton<\/span><\/em> to each vertex of a mesh. In practice, for a polygonal mesh character, each bone is associated only with a subset of the character&#8217;s vertices.<\/p>\n<p>Portions of the character&#8217;s skin can be influenced by 2 or more bones, where each vertex of the affected area gets an influence factor to each associated Bone. This factor is also called <em><span style=\"color: #ff6600;\">Vertex Weight<\/span><\/em>. Thus the influence of each bone on a specific Vertex is defined by its Vertex Weight.<\/p>\n<\/div>\n<div class=\"span6 rhcol\">\n<p>The process of Skinning includes:<\/p>\n<ul>\n<li><em><span style=\"color: #ff6600;\">Binding<\/span><\/em> the Character to the rig in a specific Pose (basically establishing an association between the Rig and the Mesh)<\/li>\n<li><span style=\"color: #ff6600;\"><em>Weighting<\/em><\/span> the Mesh to the Armature bones (create the Vertex Weights)<\/li>\n<\/ul>\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span><\/strong> When binding a Mesh, then typically some form of automatic Skinning is applied as well to populate the mesh weight maps with initial data. Those initial weight maps are then optimized and tuned manually.<\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n\n<\/div><\/div>\n<h3>The Binding Section<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Here is where your Mesh(es) are connected with your Rig. This step is best described as <em>Binding the mesh to the Armature<\/em><\/p>\n<p>When none of the selected Meshes is already bound we have following Binding function:<\/p>\n<ul>\n<li><em><span style=\"color: #ff6600;\">Bind to Armature<\/span><\/em> (when the mesh is not yet bound)<\/li>\n<\/ul>\n<p><strong><span style=\"color: #3366ff;\">Note:<\/span> <\/strong>If you have more than 2 meshes selected, then the number of selected meshes is displayed in parentheses (see image, the <em><span style=\"color: #ff6600;\">Bind to Armature<\/span><\/em> Button is at the bottom)<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1238.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7752 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1238.png\" alt=\"\" width=\"419\" height=\"575\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1238.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1238-219x300.png 219w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When the selected meshes are already Bound, we get these functions instead:<\/p>\n<ul>\n<li>Update Binding<\/li>\n<li>Unbind<\/li>\n<\/ul>\n<p>Note: When the Auto icon\u00a0 in the Update binding button is enabled, then the update happens automatically. You find more about this panel in the document about <a href=\"\/help\/n-panel\/avastar\/skinning\/unbind\/\">Unbinding<\/a>.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1239.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7584 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1239.png\" alt=\"\" width=\"419\" height=\"316\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1239.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1239-300x226.png 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h4>Tip: Where are the Weight maps located?<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The Weight maps (which get created during binding) are stored in the meshes. You have access to the maps in the Properties Editor, in the Mesh Data section, Vertex Groups Widget. Weight maps have the same name as their corresponding bone.<\/p>\n<p><strong><span style=\"color: #3366ff;\">Tip:<\/span> <\/strong>You can create weight maps manually by creating a new vertex group and name it like the bone for which the map is supposed to be used. If the mesh is Bound to an armature it is automatically used as weight map.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1243.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7465 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1243.png\" alt=\"\" width=\"419\" height=\"454\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1243.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1243-277x300.png 277w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h4><i class=\"fa fa-battery-2\"><\/i> The Binding Method<\/h4>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>When a mesh is not yet bound, then you have different options for creating the weight maps for the initial binding. Technically this is all about from where Avastar gets the Mesh weight maps. Below you find more details about the supported methods<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1247.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7753 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1247.png\" alt=\"\" width=\"419\" height=\"380\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1247.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1247-300x272.png 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Method: Preserve Weights<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<p>&nbsp;<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>No weight maps will be created. However, if the mesh already has weight maps they will be preserved. You want to use this option when your mesh has already been weighted, and or when you want to manually weight your meshes.<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1240.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7756 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1240.png\" alt=\"\" width=\"419\" height=\"187\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1240.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1240-300x134.png 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/div>\n<\/div>\n<p><strong>Note: <\/strong>This option only makes sense when you have weight maps on your mesh. Such as when you needed to Unbind a mesh (see below) and later want to rebind the mesh to your Armature, then you might want to preserve the weightmaps from the Mesh instead of creating new ones.<\/p>\n<p>There are no more options available for this Skinning method.<\/p>\n<\/div><\/div>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Method: Create empty Groups<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<p>&nbsp;<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>Weight maps will be created, but not populated (no weights will be calculated). If the mesh already has weight groups assigned, then these groups will be preserved. You want to use this option when you later plan to assign weights manually.<\/p>\n<p><strong>Note: <\/strong>This option creates empty weight maps for all rigged deform bones. In most cases this is not what you want, because&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1241.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7755 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1241.png\" alt=\"\" width=\"419\" height=\"187\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1241.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1241-300x134.png 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/div>\n<\/div>\n<p><strong>Important:<\/strong> &#8230;You can add weight maps at any time later. In fact many of the available weight tools automatically create weight maps when they are needed. So, please also take a look at the skinning method <em><span style=\"color: #ff9900;\">Preserve Weights<\/span><\/em> as it is described in the previous section (see above). In most cases this is the better choice because it does not create unnecessary maps.<\/p>\n<p>There are no more options available for this Skinning method<\/p>\n<\/div><\/div>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Method: Automatic from Bones<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<p>&nbsp;<\/p>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>the weight maps are generated from the Skeleton by using the Bone heat algorithm. This method generates weight maps depending on the location of the skeletal bones and the locations of the meshes. The method is based on Blender&#8217;s automatic weight from Bones.<\/p>\n<p>It normally creates reasonable results, but you often need to tweak the data manually. However, sometimes the heat algorithm <a class=\"question-hyperlink\" href=\"https:\/\/blender.stackexchange.com\/questions\/15964\/heat-weighting-failed-to-find-solution-for-one-or-more-bones\">fails to find solution for one or more bones&#8230;<\/a><\/p>\n<p>This method has options&#8230;<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1242.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7757 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1242.png\" alt=\"\" width=\"419\" height=\"239\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1242.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1242-300x171.png 300w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<h3>Options<\/h3>\n<h4>Only Visible Bones<\/h4>\n<p>Only take weight from the visible bones.<\/p>\n<h4>IncludeGroin:<\/h4>\n<p>By default mGroin is not used as deform bone. Setting this option enables the mGroin bone as a deform bone.<\/p>\n<h4>Keep Empty Maps:<\/h4>\n<p>Keep weight maps even when there is no weight in them. Take care: Normally you want to keep this option disabled.<\/p>\n<h4>Clear Target Weight maps:<\/h4>\n<p>Remove any preexisting entries from the weight maps to make sure the bone weights are added to clean maps. Normally you want this option to keep enabled<\/p>\n<h3>Troubleshooting<\/h3>\n<p>Sometimes the automatic weight from Bones algorithm creates unexpected results. Here are some tips for troubleshooting:<\/p>\n<h3>Failed to find solution&#8230;<\/h3>\n<p>The automatic weight from bones algorithm normally creates reasonable initial results. However, sometimes the heat algorithm does not claculate weights for a subset of the mesh vertices. And sometimes it even rejects to create weights for the entire mesh.<\/p>\n<p>There was a topic about this on Blender stackexchange: See <a class=\"question-hyperlink\" href=\"https:\/\/blender.stackexchange.com\/questions\/15964\/heat-weighting-failed-to-find-solution-for-one-or-more-bones\">fails to find solution for one or more bones\u2026<\/a><\/p>\n<p>Here are some tips how you might get rid of the issue:<\/p>\n<ul>\n<li>Fix duplicate vertices<\/li>\n<li>Fix mesh polygon intersections.<\/li>\n<li>If the mesh object has 2 or more unconnected submeshes, then try to split the submeshes into separate objects, then weight again and finally join the submeshes back into one single object<\/li>\n<li>Check if the Mesh uses modifiers (e.g. subdivision). Disable the modifiers before binding, then add them back after binding.<\/li>\n<li>Check if the bone deform flag is set for all bones where you expect to get weights.<\/li>\n<li>Be sure you are not selecting the green animation bones or the yellow IK bones . Remind: the green bones are only used for Animation. They should never have weight maps.<\/li>\n<\/ul>\n\n<\/div><\/div>\n<div class=\"symple-toggle state-closed \"><h3 class=\"symple-toggle-trigger \">Method: Copy from Meshes<\/h3><div class=\"symple-toggle-container symple-clearfix\">\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>The Weight maps are taken from other Meshes currently attached to the same rig. The list of weight sources is available in the <em><span style=\"color: #ff6600;\">Copy Weight from<\/span><\/em> &#8230; subsection (see image) where you can select the weight sources individually.<\/p>\n<p>The list of displayed meshes can be modified:<\/p>\n<ul>\n<li><em><span style=\"color: #ff6600;\">Copy from All Listed:<\/span><\/em><br \/>\nTake weights from all meshes listed in the widget, regardless if they are selected.<\/li>\n<li><em><span style=\"color: #ff6600;\">Show hidden sources:<\/span><\/em><br \/>\nAlso list the meshes which are currently hidden.<\/li>\n<\/ul>\n<\/div>\n<div class=\"rhcol span5\"><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1244.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7758 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1244.png\" alt=\"\" width=\"419\" height=\"416\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1244.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1244-300x298.png 300w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1244-150x150.png 150w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/div>\n<\/div>\n<h3>About the icons in the list<\/h3>\n<ul>\n<li>The Eye Icons:<br \/>\nWhen you disable the eye icons, then the disabled meshes are not used as weight sources<\/li>\n<li>Selectable Icons (for convenience):<br \/>\nAllows to set selectability of the Mesh. this is a shortcut for the same operation in the Outliner, so it is nothing special<\/li>\n<li>Checkmarks:<br \/>\nCopy weight from all chekmarked meshes. If the Copy from all Listed Option is enabled, then this option is not taken into account<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"><strong>Note:<\/strong> <\/span>You can not expect that this function automatically creates optimal results! You later need to fine adjust your weights manually. Please look at the <a title=\"Create an attachment\" href=\"http:\/\/blog.machinimatrix.org\/avastar\/reference\/create-an-attachment\/\" target=\"_blank\" rel=\"noopener noreferrer\">Create an Attachment<\/a> tutorial on this website.<\/p>\n<h3>Options<\/h3>\n<p><span style=\"color: #ff6600;\">Keep Empty Maps:<\/span><\/p>\n<p>Keep weight maps even when there is no weight in them. Take care: Normally you want to keep this option disabled.<\/p>\n<p><span style=\"color: #ff6600;\">Clear weights:<\/span><\/p>\n<p>Remove any preexisting entries from the weight maps before adding the bone weights. You want this option be enabled in most cases.<\/p>\n<h3>The Redo Panel<\/h3>\n<div class=\"row-fluid\">\n<div class=\"rhcol span7\">\n<p>As soon as the Binding has finished, a redo panel appears. In this panel you can change some of the displayed actions interactively.\u00a0 the most important parameter here is the mapping parameter: You can change the mapping here.<\/p>\n<\/div>\n<div class=\"rhcol span5\">\n<p><a href=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1246.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-7759 size-full\" src=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1246.png\" alt=\"\" width=\"419\" height=\"460\" srcset=\"https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1246.png 419w, https:\/\/avalab.org\/avastar\/292\/wp-content\/uploads\/2021\/02\/Image1246-273x300.png 273w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n<a href=\"\/help\/toolshelf\/skinning\/unbind\/\" class=\"symple-button default green   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">proceed to Unbind&#8230;<\/span><\/a>\n<a href=\"\/help\/toolshelf\/weight-copy\/\" class=\"symple-button default green   \" target=\"_self\" title=\"Visit Site\" style=\"border-radius:3px\" rel=\"\"><span class=\"symple-button-inner\" style=\"border-radius:3px\">proceed to Weight Copy&#8230;<\/span><\/a>\n","protected":false},"excerpt":{"rendered":"<p>Binding (Assign Armature) The Binding Section Here is where your Mesh(es) are connected with your Rig. This step is best described as Binding the mesh to the Armature When none of the selected Meshes is already bound we have following Binding function: Bind to Armature (when the mesh is not yet bound) Note: If you [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":7752,"parent":1752,"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-495","page","type-page","status-publish","has-post-thumbnail","hentry","category-help"],"_links":{"self":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/495","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=495"}],"version-history":[{"count":0,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/495\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/pages\/1752"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/media\/7752"}],"wp:attachment":[{"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/media?parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/categories?post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/avalab.org\/avastar\/292\/wp-json\/wp\/v2\/tags?post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}