{"id":7057,"date":"2023-05-19T17:06:26","date_gmt":"2023-05-19T16:06:26","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=7057"},"modified":"2023-09-07T15:49:06","modified_gmt":"2023-09-07T14:49:06","slug":"toolkit-clothing","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/","title":{"rendered":"Toolkit &#8211; Clothing"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69fb28f15d4eb\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69fb28f15d4eb\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#description\" >Description<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#avatar-selection\" >Avatar Selection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#start-low-poly\" >Start Low Poly<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#weight-paint\" >Weight Paint<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#layerable-vs-non-layerable\" >Layerable vs Non-Layerable<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-clothing\/#timestamps\" >Timestamps<\/a><\/li><\/ul><\/nav><\/div>\n<div style=\"background-color: black; position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; overflow: hidden; max-width: 100%;\"><center><iframe style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" src=\"https:\/\/www.youtube.com\/embed\/H9g8iNJM2_A?rel=0\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/center><\/div>\n<h3><span class=\"ez-toc-section\" id=\"description\"><\/span>Description<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In this exercise we take a look at using <a href=\"https:\/\/create.imvu.com\/articles\/studio\/toolkit\/\" rel=\"noopener\" target=\"_blank\">IMVU Toolkit for Blender<\/a> to make a simple sports vest. To start, an avatar is dropped into place using the <b>Clothing Tool<\/b>, a Cube primitive is then added &#8211; <b><i>Add \u00bb Mesh \u00bb Cube<\/i><\/b> (<span class=\"shortcutkey\">Ctrl<\/span> + <span class=\"shortcutkey\">A<\/span>) &#8211; scaled to size, and mirrored using the <b>Mirror Modifier<\/b> &#8211; <b><i>Modifier Properties > Add Modifier > Mirror<\/i><\/b> &#8211; before being divided using loop cuts (<span class=\"shortcutkey\">Ctrl<\/span> + <span class=\"shortcutkey\">R<\/span>) to further shape the mesh to fit the avatar. As the shirt is modelled, structural detail is added, but no more than is needed for the task at hand. Once the basic shape is settled on, extra detailing, cloth folds, can be added and separate materials assigned, front and back. The mesh is finally UV Unwrapped and images mapped ready for the next step, prepping for IMVU. Here, because the item is asymmetrical and relatively low resolution, to prep, the avatar is copied and weights duplicated over to the mesh using the <b>Data Transfer<\/b> modifier. Once done, an <b>Armature<\/b> modifier is applied to link the vest with avatar skeleton, before export using the FBX tool, and final assembly in IMVU Studio.<\/p>\n<p><b>Duration<\/b>: total c. 1 hr (01:00:00).<br \/>\n<b>Info<\/b>: 1080p.<br \/>\n<b>Suitability<\/b>: Beginner+.<br \/>\n<b>Source<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/imvu\/katsbits - toolkit clothing.zip\">KatsBits \u2013 Toolkit Clothing<\/a> (c. 6 MB, *.blend, *.fbx, *.png).<br \/>\n<b>Product ID<\/b>: n\/a.<\/p>\n<blockquote><p><b>Design note<\/b>: manually creating clothing using the IMVU Toolkit for Blender, or making clothing generally, has a number of important design caveats;<\/p>\n<h4><span class=\"ez-toc-section\" id=\"avatar-selection\"><\/span>Avatar Selection<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>When starting a clothing project the <b>Clothing Tool<\/b> defaults to using the Male 1.5 avatar. To set a different base use the <b>Gender<\/b> selector in the tool [1]; click the drop-down menu and select from <b>Female<\/b>\/<b>Male<\/b> (defaults) <b>Female 1.5<\/b>\/<b>Male 1.5<\/b> and <b>Hide<\/b> (none) &#8211; can be used to hide the base avatar and\/or hide the base to accommodate a custom avatar base mesh).<\/p>\n<div style=\"background-color: #fc0; color: #000; width:98.5%; padding: 1.0em;\"><b>Important<\/b>: ordinarily when prepping clothing for IMVU using the <b>Clothing Tool<\/b>, the mesh is automatically linked and weighted clicking the <b>Bind to Armature<\/b> [i] button, the results of which will vary greatly depending on the design and complexity of the item. Some significant adjustment to weighting may then be necessary.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-bind-to-armature.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-bind-to-armature.jpg\" alt=\"Bind to Armature\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Prepping clothing typically means clicking the <b>Bind to Armature<\/b> [i] button to automatically weight and parent selected meshes to the avatar Armature object.<\/i>\n<\/div>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing_female-male-avatar.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing_female-male-avatar.jpg\" alt=\"Setting the base avatar\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Setting the base avatar using the <b>Gender<\/b> [1] option in the Clothing Tool.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"start-low-poly\"><\/span>Start Low Poly<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The workflow shown above is just one way to make clothing and will differ depending on the clothing&#8217;s design or purpose. Irrespective of this, because clothing can be formed from quite complex shapes, <i>meshes should always be shaped gradually<\/i>, divisions and\/or structure being added incrementally by manually placing <b>Loop Cut<\/b>&#8216;s as and when needed instead of using more broadly applicable <b>Subdivision<\/b>; starting with too much structure too early, is more likely to cause issues than solve &#8211; details can be added at later stages using different techniques if necessary.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing - subdivision.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing - subdivision.jpg\" alt=\"Subdivision\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Using Subdivision (right)does not inherently grant any particular advantage over lower resolution meshes (left), and may in fact cause more issues with &#8216;waste&#8217; than strategically placing loop cuts to manually divide the mesh in a more controlled fashion.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"weight-paint\"><\/span>Weight Paint<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The accuracy of weight value distribution is determined by mesh structure and density; when duplicating data across to another mesh the <b>Data Transfer<\/b> modifier essentially looks for the nearest vertex corresponding to the source, so there may be gaps or over-representation in some places. These issues can generally be fixed manually editing weight values in <b>Weight Paint<\/b> mode (switch the main 3D Viewport to <b>Weight Paint<\/b> mode or click the <b>Paint Weights<\/b> button in the toolbar).<\/p>\n<div style=\"background-color: #fc0; color: #000; width:98.5%; padding: 1.0em;\"><b>Important<\/b>: generally speaking weights appear the same on a mesh with <b>Subdivision<\/b> regardless as to the modifier being applied or not but they, Subdivision, may affect the distribution of wright values depending on the mesh density as a result.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights-applied.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights-applied.jpg\" alt=\"Subdivision applied\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Weight values should transfer without issue regardless of Subdivision being applied to the mesh.<\/i>\n<\/div>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights-none.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights-none.jpg\" alt=\"Low res mesh weighting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>A lower resolution mesh will more accurately match the lower resolution of the avatar itself.<\/i><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-subdivision-weights.jpg\" alt=\"High res mesh weighting\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Higher resolutions may weight with slight differences compared to lower resolution but should still articulate and deform without issue.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"layerable-vs-non-layerable\"><\/span>Layerable vs Non-Layerable<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Depending on the clothing&#8217;s design sections of the avatar may need to be included with the export. To do that select the respective body part or parts and then the mesh before clicking the <b>Export<\/b> button in the Toolkit &#8211; before exporting ensure the clothing mesh has been moved into the <b>CLOTHING_EXPORT<\/b> [2] collection in the <b>Outliner<\/b> else it will be excluded from the FBX (this is irrespective of it being bound to the avatar skeleton).<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-export-collection.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/clothing-export-collection.jpg\" alt=\"CLOTHING_EXPORT\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Meshes are not automatically placed in the correct Collection [2] for export so ensure this is done to they&#8217;re included in the resulting FBX file.<\/i>\n<\/p><\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"timestamps\"><\/span>Timestamps<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Times are approximate;<br \/>\n &#8211; 00:00 : Overview &#038; Blocking out<br \/>\n &#8211; 07:30 : Neck, Arms &#038; Body<br \/>\n &#8211; 34:00 : Folds<br \/>\n &#8211; 55:00 : UVs &#038; Materials<br \/>\n &#8211; 01:00:00 : Weight Painting, UV Maps &#038; Images<br \/>\n &#8211; 01:05:00 : Export &#038; Studio Assembly<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":7071,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,37,230],"tags":[670,929,966,346,194,738,835,349,761,668,655,734,635,685,930],"class_list":["post-7057","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-imvu","category-tutorials","tag-clothing","tag-clothing-tool","tag-data-transfer","tag-edit-mode","tag-imvu","tag-imvu-studio","tag-imvu-studio-toolkit","tag-loop-cut","tag-rigging","tag-texture-maps","tag-uv-editing","tag-uv-mapping","tag-uv-unwrapping","tag-vertex-groups","tag-weight-paint"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/7057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/comments?post=7057"}],"version-history":[{"count":26,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/7057\/revisions"}],"predecessor-version":[{"id":7136,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/7057\/revisions\/7136"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/7071"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=7057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=7057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=7057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}