{"id":6728,"date":"2023-02-03T15:18:18","date_gmt":"2023-02-03T15:18:18","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=6728"},"modified":"2024-07-09T09:18:27","modified_gmt":"2024-07-09T08:18:27","slug":"toolkit-furniture-custom-poses","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-custom-poses\/","title":{"rendered":"Toolkit &#8211; Furniture + Custom Poses"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 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-6a04ff2a901cd\" 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-6a04ff2a901cd\"  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-furniture-custom-poses\/#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-furniture-custom-poses\/#other-tutorials-in-this-series\" >Other tutorials in this series<\/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-furniture-custom-poses\/#tool-selection\" >Tool Selection<\/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-furniture-custom-poses\/#action-triggers\" >Action Triggers<\/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-furniture-custom-poses\/#import-order\" >Import Order<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-custom-poses\/#pose-mode\" >Pose Mode<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-custom-poses\/#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\/txgiNBuX4xY?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&#8217;ll take a look at adding custom seating, or pose spots, to basic furniture item using IMVU Studio Toolkit. Continuing with the <b>Furniture Tool<\/b>, with the mesh made and prepped as a normal item, a custom seat-node set is added, identified with a unique label, and positioned. This is saved and then exported to FBX (file #1). To create the pose associated with the furniture item, an <b>Animation Tool<\/b> project is created, into which the furniture mesh and seat node are brought in as reference (Using Append). A pose can then be created around this, saved and then exported to FBX (file #2). In Studio the two components are imported separately and assembled so the animation triggers when the seat is used.<\/p>\n<p><b>Duration<\/b>: total c. 20 mins (00:20: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 simple stool custom seatspot.zip\">KatsBits &#8211; Toolkit Simple Stool Custom<\/a> (c.1.0 MB, *.blend, *.fbx, *.png). Requires installation of the toolkit for Blender. Open in Blender 2.93 LTS (preferred) or above.<br \/>\n<b>Product ID<\/b>: <a href=\"https:\/\/www.imvu.com\/shop\/product.php?products_id=62486898\" rel=\"noopener\" target=\"_blank\">Stoolie Custom Pose<\/a> (PID 62486898).<\/p>\n<h4><span class=\"ez-toc-section\" id=\"other-tutorials-in-this-series\"><\/span>Other tutorials in this series<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p> &#8211; <a href=\"https:\/\/www.katsbits.com\/codex\/toolkit-simple-furniture\/\">Toolkit \u2013 Basic Furniture<\/a>.<br \/>\n &#8211; <a href=\"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-poses\/\">Toolkit \u2013 Furniture + Poses<\/a>.<br \/>\n &#8211; <a href=\"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-custom-poses\/\">Toolkit &#8211; Furniture + Custom Poses<\/a>.<\/p>\n<blockquote><p><b>Design note<\/b>: The basic process of creating custom seat or pose spots for furniture is basically the as it is for <a href=\"https:\/\/www.katsbits.com\/codex\/toolkit-furniture-poses\/\">sitting and standing<\/a> spots except for the appended label attributed to the seat node itself [1]. In other words there is nothing inherently special about custom seat nodes other than the label &#8211; in practice this might means a standard <b>*.Sitting<\/b> or <b>*.Standing<\/b> node set can be renamed to create a custom instance, or &#8216;reset&#8217; changing it back to &#8220;Sitting&#8221; or &#8220;Standing&#8221; (this can be done at any time).<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-node-names.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-node-names.jpg\" alt=\"Seat node names and custom spots\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Node names associated with custom seating or pose spots [1] &#8211; Catcher and Pitcher do not specifically need to be changed but doing so helps with identification within the Outliner.<\/i><\/p>\n<div style=\"background-color: #9d2600; color: #fff; width:98.5%; padding: 1.0em;\"><b>Critical &#8211; Import\/Append<\/b>: the &#8216;pose&#8217; part of a project can be initiated two ways;<\/p>\n<p><b>1)<\/b> creating a new, clean, Animation Tool project into which furniture mesh(es) and seat node(s) references are imported using <a href=\"https:\/\/www.katsbits.com\/codex\/imvu-append\/\">Append<\/a><\/p>\n<p><b>2)<\/b> adding the Animation Tool to an open Furniture Tool project.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"tool-selection\"><\/span>Tool Selection<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>In either case <i>ensure <b>absolutely nothing is selected<\/b> in the 3D Viewport<\/i> [2] as this can cause issues for the Toolkit come time to export &#8211; each kit is organised specific to the tool being used [3], if something is active when importing or appending, Blender can place the incoming data within context of the active selection, it then becoming a &#8216;child&#8217; of that, which breaks the internal hierarchy. It&#8217;s crucial to be aware of this when using multiple tools on the same project.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-animation-append.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-animation-append.jpg\" alt=\"Ensure nothing is selected\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>When using more than one Tool on a given project ensure nothing is active or selected in the 3D Viewport [2] to prevent issues with the resulting hierarchy [3] and subsequent Tool functionality.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"action-triggers\"><\/span>Action Triggers<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><b>Critical &#8211; Name\/Trigger<\/b>: for Actions in Studio, sequences contained within the Ensemble can be triggered manually or automatically based on the <b>Name\/Trigger<\/b> property [4]. Manually activated poses require a custom label Users types in chat, &#8220;exercise&#8221; for example, or can be selected from the Avatar context menu (right-click the avatar). To automatically activate a pose a special Name\/Trigger is used, &#8220;<b><i>stance<\/i><\/b>&#8220;, instead of the seat node label, i.e. <i><b>stance<\/b>.[label]<\/i> (<i>stance.Stoolie<\/i>) not <i><b>seat01<\/b>.[label]<\/i> (<i>seat01.Stoolie<\/i>). The label is case sensitive.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-trigger-name.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-trigger-name.jpg\" alt=\"Name\/Trigger property\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>When setting up the Action make sure the Trigger is correctly set. To auto-play this is <i><b>stance<\/b>.[Label]<\/i> [4].<\/i>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"import-order\"><\/span>Import Order<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>When assembling furniture the first FBX to import is generally the furniture file as this includes the necessary mesh and skeleton data for a functional product. If other FBX files are brought in, and they too include skeleton data, some functionality may break so the products skeleton will likely need to be &#8216;reset&#8217;. After importing the additional files, in <b>Component<\/b> access <b>Skeleton<\/b> [5] properties and correct the <b>Asset<\/b> [6] used in the <b>Inspector<\/b> appropriately &#8211; using the Furniture Tool this will be <b>RootNode.xsf<\/b>.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-xsf-reset.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu-studio\/furniture-custom-xsf-reset.jpg\" alt=\"Multiple FBX import corrections\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Importing several FBX files may break a furniture item, typically requiring the <b>Skeleton<\/b> [5] to be reset in the <b>Inspector<\/b> (Asset) [6].<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"pose-mode\"><\/span>Pose Mode<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The animation tool requires the animation rig, the wireframe objects and shapes, to be in <b>Pose Mode<\/b>. When initially selecting the rig if it highlights orange this indicates its in <b>Object Mode<\/b> not Pose Mode. To switch, ensure the rig is selected, then from the <b>Interaction Mode<\/b> selector, click <b>Pose Mode<\/b>. The rig will changes its appearance, different parts changing colour, indicating they can be selected, moved and posed for sequence creation.<\/p>\n<p><video poster=\"\" controls=\"controls\" width=\"98.5%\" height=\"auto\"><source src=\"https:\/\/www.katsbits.com\/media\/toolkit - animation pose mode.mp4\" type=\"video\/mp4\" \/><!--<source src=\"https:\/\/www.katsbits.com\/images\/tutorials\/collections\/collection-shortcut.ogg\" type=\"video\/ogg\" \/>\n<source src=\"https:\/\/www.katsbits.com\/images\/tutorials\/collections\/collection-shortcut.webm\" type=\"video\/webm\" \/>--><\/video><br \/>\n<i>Make sure to be in Pose Mode when using the Animation Tool.<\/i><\/p>\n<\/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 : Start, Seat Setup &#038; Export<br \/>\n &#8211; 03:30 : Avatar Setup<br \/>\n &#8211; 09:00 : Pose Creation &#038; Export<br \/>\n &#8211; 12:00 : Assembly &#8211; Furniture<br \/>\n &#8211; 16:30 : Assembly &#8211; Pose<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":6836,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,37,230],"tags":[945,871,200,203,195,906,194,1086,738,835,944,630,724,948],"class_list":["post-6728","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-imvu","category-tutorials","tag-action","tag-animation-tool","tag-avatar-poses","tag-fbx","tag-furniture","tag-furniture-tool","tag-imvu","tag-imvu-files","tag-imvu-studio","tag-imvu-studio-toolkit","tag-name-trigger","tag-poses","tag-skeleton","tag-trigger"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/6728","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=6728"}],"version-history":[{"count":27,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/6728\/revisions"}],"predecessor-version":[{"id":7922,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/6728\/revisions\/7922"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/6836"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=6728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=6728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=6728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}