{"id":9029,"date":"2024-06-23T19:41:11","date_gmt":"2024-06-23T18:41:11","guid":{"rendered":"https:\/\/www.katsbits.com\/codex\/?p=9029"},"modified":"2024-10-01T09:18:31","modified_gmt":"2024-10-01T08:18:31","slug":"couples-furniture-imvu","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/codex\/couples-furniture-imvu\/","title":{"rendered":"Couples Furniture for IMVU"},"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-6a0947f310adc\" 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-6a0947f310adc\"  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\/couples-furniture-imvu\/#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\/couples-furniture-imvu\/#seat-node-names\" >Seat Node Names<\/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\/couples-furniture-imvu\/#action-triggername\" >Action Trigger\/Name<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.katsbits.com\/codex\/couples-furniture-imvu\/#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\/oxyiXea7s60?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 <a href=\"https:\/\/www.tiktok.com\/@katsbits\" rel=\"noopener\" target=\"_blank\">TikTok live stream<\/a> we continue with the couples pose project, now using them to make a <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/furniture\/\">furniture item<\/a>. For this project the <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/imvu-studio-toolkit\/\">Furniture Tool<\/a> is used. With new project dropped into the scene the tool is used to add two sets of seat nodes configured to reference the previously created poses. Once done, the project is exported and assembled in <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/imvu-studio\/\">IMVU Studio<\/a> using the Empty Furniture derivable, with a set of <strong>Action<\/strong> and <strong>Ensemble<\/strong> components similarly configured to use the corresponding avatar poses.<\/p>\n<p><b>Duration<\/b>: total c. 1 hr (01:00:00).<br \/>\n<b>Info<\/b>: 720p (Vertical\/Portrait W:720 x H:1280).<br \/>\n<b>Suitability<\/b>: Beginner+.<br \/>\n<b>Source<\/b>: <a href=\"https:\/\/www.katsbits.com\/files\/imvu\/katsbits - couples pose furniture.zip\">KatsBits \u2013 Couples Pose Furniture<\/a> (c. 2.5 MB | *.blend, *.fbx, *.png).<br \/>\n<b>Product ID<\/b>: <a href=\"https:\/\/www.imvu.com\/shop\/product.php?products_id=68007527\" rel=\"noopener\" target=\"_blank\">Couples Furniture (PID 68007527)<\/a>.<\/p>\n<blockquote><p><strong>Design note<\/strong>: some additional information to keep in mine made furniture items that use custom seating and poses;<\/p>\n<h4><span class=\"ez-toc-section\" id=\"seat-node-names\"><\/span>Seat Node Names<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>To make use of custom avatar poses furniture needs to be set up in a particular way so IMVU understands which seat node is associated with what custom avatar pose. With this in mind, when adding seats, and using the <strong>Custom<\/strong> seat node button in the Toolkit, ensure that any custom seating has <em>an append that identifies it as a non-standard avatar spot<\/em>, i.e. not *.Sitting, *.Standing, *.Idle, and that, where two or more seats are used, <em>each set also carries a unique identifier<\/em>. For example, adding two custom seat sets labelled &#8220;Couples&#8221; would place;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 Seat01.<strong>Couples<\/strong><br \/>\n\u2022 Handle01<br \/>\n\u2022 Catcher01.<strong>Couples<\/strong><br \/>\n\u2022 Pitcher01.<strong>Couples<\/strong><\/p>\n<p>\u2022 Seat02.<strong>Couples<\/strong><br \/>\n\u2022 Handle02<br \/>\n\u2022 Catcher02.<strong>Couples<\/strong><br \/>\n\u2022 Pitcher02.<strong>Couples<\/strong><\/div>\n<p>What IMVU sees here translates to two seat nodes, <em>Seat01<\/em> and <em>Seat02<\/em>, referencing the exact same custom avatar pose, so when the product is assembled, both seat spots will activate the same custom pose, i.e. whatever *.xaf file is associated with &#8220;Couples&#8221;.<\/p>\n<p>While this is desirable when seating might need to use the same sitting pose for example, where seats should use different poses, IMVU has to be able to identify them and correctly match the correct pose with the corresponding seat node. This is done by making the seat node appends unique to each instance [1]. For example;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 Seat01.Couples<\/div>\n<p>Becomes;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 Seat01.Couples<strong><em>_a<\/em><\/strong><\/div>\n<p>The full set then being;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 seat01.Couples<strong><em>_a<\/em><\/strong><br \/>\n\u2022 Handle01<br \/>\n\u2022 Catcher01.Couples<strong><em>_a<\/em><\/strong><br \/>\n\u2022 Pitcher01.Couples<strong><em>_a<\/em><\/strong><\/div>\n<p>A second set;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 seat02.Couples<strong><em>_b<\/em><\/strong><br \/>\n\u2022 Handle02<br \/>\n\u2022 Catcher02.Couples<strong><em>_b<\/em><\/strong><br \/>\n\u2022 Pitcher02.Couples<strong><em>_b<\/em><\/strong><\/div>\n<p>And so on for each unique set that&#8217;s to reference a unique pose.<\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu\/couples-furniture-seat-names.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu\/couples-furniture-seat-names.jpg\" alt=\"Couples seat node names\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>Each seat that&#8217;s to reference a custom pose needs to be identified uniquely [1], this can be through use of a different label or name for each node &#8211; &#8216;leaningpose&#8217;, &#8217;tiltingpose&#8217; etc., or just adding a non-repeat letter to a group label, e.g. pose_a, pose_b, pose_c etc.<\/i><\/p>\n<h4><span class=\"ez-toc-section\" id=\"action-triggername\"><\/span>Action Trigger\/Name<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Once the furniture and pose files are imported into <a href=\"https:\/\/www.katsbits.com\/codex\/tag\/imvu-studio\/\">IMVU Studio<\/a>, to set the product up correctly so IMVU knows what pose links to which seat spot an <strong>Action<\/strong> is needed, one per seat spot\/avatar pose combination (assuming unique poses per each seat spot), that uses a specific nomenclature for the Actions <strong>Name\/Trigger<\/strong> element like so;<\/p>\n<div style=\"background-color: #fc0; color: #000; width:98.5%; padding: 1.0em;\"><strong>Important<\/strong>: the Name\/Trigger in IMVU Studio, and seat node names in Blender, are <strong>cAse SenSiTiVe<\/strong>. Seat node appends, and the custom Name\/Trigger should also be <strong>C<\/strong>apitalised (upper-case first letter).<\/div>\n<p><\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 stance.[<strong><em>Customlabel_(optional)uniqueID<\/em><\/strong>]<\/div>\n<p>Continuing from the above, &#8220;Couples&#8221; would be;<\/p>\n<div style=\"background-color: #E7FAEA; color: #000; font-family:courier; width:98.5%; padding: 1.0em;\">\u2022 stance.<strong><em>Couples_a<\/em><\/strong><\/div>\n<p>Once an <strong>Action<\/strong> is created then, enter an appropriately formatted <strong>Name\/Trigger<\/strong> [2], e.g. <strong>stance.Couples_a<\/strong>, then in the Action&#8217;s <strong>Ensemble<\/strong>, set the accompanying avatar pose as the <strong>Skeletal Animation<\/strong> asset [3], e.g. <strong>Anim-pose_1.xaf<\/strong> as shown below. Once in place, whenever an avatar uses the spot, the corresponding avatar pose will be shown.<\/p>\n<div style=\"background-color: #fc0; color: #000; width:98.5%; padding: 1.0em;\"><strong>Important<\/strong>: the name\/label of the avatar pose file (converted *.xaf from the imported FBX) does not need reflect the name\/label associated with the seat node or the trigger, it may cause issues if they are.<\/div>\n<p><\/p>\n<p><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu\/couples-furniture-action-name.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" style=\"width: 98.5%; height: auto;\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/imvu\/couples-furniture-action-name.jpg\" alt=\"[descriptive alt image text here]\" width=\"900px\" height=\"500px\" border=\"0\" \/><\/a><br \/>\n<i>The Action in IMVU Studio needs to be formatted properly, typically <strong>stance.[Customlabel_(optional)uniqueID]<\/strong> [2], to activate or trigger the pose file (*.xaf) associated with the corresponding <strong>Ensemble<\/strong> [3].<\/i><\/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 : Intro &#038; Scene Setup<br \/>\n &#8211; 06:00 : Furniture Tool<br \/>\n &#8211; 18:00 : Couples Seat Nodes<br \/>\n &#8211; 26:00 : Furniture Prep &#038; Export<br \/>\n &#8211; 33:00 : Mesh Assembly<br \/>\n &#8211; 37:00 : Pose #1 Assembly<br \/>\n &#8211; 39:00 : Pose #2 Assembly<br \/>\n &#8211; 46:00 : Upload &#038; Publishing<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":9030,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34,37,230],"tags":[622,200,203,195,194,1086,738,835,1049,372,744,630,745,762,1093,491],"class_list":["post-9029","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blender","category-imvu","category-tutorials","tag-animation","tag-avatar-poses","tag-fbx","tag-furniture","tag-imvu","tag-imvu-files","tag-imvu-studio","tag-imvu-studio-toolkit","tag-imvu-toolkit","tag-outliner","tag-pose-mode","tag-poses","tag-root-node","tag-seat-nodes","tag-tiktok","tag-xaf"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/9029","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=9029"}],"version-history":[{"count":31,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/9029\/revisions"}],"predecessor-version":[{"id":9394,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/posts\/9029\/revisions\/9394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media\/9030"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/media?parent=9029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/categories?post=9029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/codex\/wp-json\/wp\/v2\/tags?post=9029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}