Removing seats
Home Site home Derivable balls Derivable cushion Other derivables Force update Seat trigger Transparency File formats Anim8or Pose editor Clean up tool Template tool XRF tool Ball  generator Removing seats Quick Icons Contents

 

Removing unwanted seats from furniture designs

There are times when you want to derive from a furniture item, but there's a seat somewhere that you don't want, or its just "wrong".

Currently I know of five possible approaches to solving this:

  1. Approach the creator and ask them to submit an alternative version of the product
  2. Approach the creator with a view to obtaining the skeleton (xsf) file for the product
  3. Approach the creator and ask them to embed an alternative skeleton file
  4. Attempt to replace the skeleton file altogether
  5. Move a node out of the way with an animation file

Approach the creator and ask them to submit an alternative version of the product

Approaching the author brings the problem that not all creators are approachable or cooperative. Also not everyone wants to have many similar versions of a product and IMVU may consider it catalogue spamming.

Not everyone wants to give away information about how a product is put together, and even with the file you still have to find a way to edit it.

Embedding alternative skeletons is an attractive solution, unfortunately few if any creators do this and few will use alternates when offered. One of my early products is a ball that can be stood on and rolled. The alternative lacks the "roll" node and stands upright, allowing it to be used as a "force field".

Attempt to replace the skeleton file altogether

Replacing the skeleton file is tricky. Some products are more suited to this than others and unless you are very patient generally you lose all seats and poses, not just one.

The following is a simple two-bone skeleton that may "support" many furniture products that have the mesh weighted to bone zero or one: simple.xsf

<HEADER MAGIC="XSF" VERSION="910" />
<SKELETON NUMBONES="2">
    <BONE ID="0" NAME="Root" NUMCHILDS="1">
        <TRANSLATION>0 0 0</TRANSLATION>
        <ROTATION>0 0 0 -1</ROTATION>
        <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
        <LOCALROTATION>0 0 0 1</LOCALROTATION>
        <PARENTID>-1</PARENTID>
	  <CHILDID>1</CHILDID>
    </BONE>
    <BONE ID="1" NAME="Thing" NUMCHILDS="0">
        <TRANSLATION>0 0 0</TRANSLATION>
        <ROTATION>0 0 0 -1</ROTATION>
        <LOCALTRANSLATION>0 0 0</LOCALTRANSLATION>
        <LOCALROTATION>0 0 0 1</LOCALROTATION>
        <PARENTID>0</PARENTID>
    </BONE>
</SKELETON>

Note that the above removes all seats and may break animations. Also it should not be used where the mesh is weighted to multiple bones.

One mesh this technique can be used on is my duck: Rubber duckie derivable where it can be used to remove the "riding" pose.

Move a node out of the way with an animation file

Moving a node requires that you know the number of the handle node you wish to remove.

This is a simple one-frame instant acting animation that moves bone 3 a long distance in the Z direction (I've highlighted the bone, change it as needed): delnode3.xaf

<HEADER MAGIC="XAF" VERSION="910" />
<ANIMATION DURATION="0.01" NUMTRACKS="1">
    <TRACK BONEID="3" NUMKEYFRAMES="1">
        <KEYFRAME TIME="0.0">
	    <TRANSLATION>0 0 10000</TRANSLATION>
            <ROTATION>0 0 0 -1</ROTATION>
        </KEYFRAME>
    </TRACK>
</ANIMATION>

Add the animation with a trigger of "stance.Idle" which is IMVU-speak for "Play it immediately". Set the "# ensembles played" parameter to 0 to make it loop forever, and use the "+ Add Xaf" button to add the file.

I've highlighted the bone number. Generally some inspired guesswork is needed to determine the number, expect each seat to take 4 or 5 bones and there may be a few more before the seats start, so a couch with four seats could reasonably have 20 bones. If the mesh vanishes you've hit a weighting bone, keep searching.