1. Home
  2. Learning
  3. Going 3D
  4. Meshing Furniture – Skeleton and Nodes

Meshing Furniture – Skeleton and Nodes

The most basic type of furniture product is also the simplest mesh product that can be made. All that is needed is a mesh, the bit users see, and a skeleton comprising a single node called Root. So long as the two elements, mesh and skeleton, are linked together properly a working product can be exported for IMVU.

While this tutorial uses Blender, the information presented here apply to 3ds Max or any 3D editing software.

Basic knowledge of how to use 3D editing software is required.

Basic Furniture Skeleton

Everything in IMVU has an underlying skeleton to which meshes, the bits visible to the user, are attached. For furniture, the skeleton essentially acts like a magnet that attach to room furniture nodes placed in a room product that allow for decorating the room with furniture.

Root Node

The most basic skeleton that can be used for furniture is a single master node called Root and sits at the top of the scene hierarchy. It is a single non-mesh object that acts as a reference point for the item so IMVU knows where it is when dropped into a room.

- Mesh
- [+ nodes]

Root is normally positioned at grid-centre (0, 0, 0 in X, Y, Z world space) and oriented  relative to the furniture’s intended use. This is determined by the orientation of the Z-axis of Root and corresponds to the type of furniture item being created; floor, wall or ceiling.

Z axis orientation
- Floor = Z upwards
- Wall = Z inwards
- Ceiling = Z downwards

Seat Nodes

For more complex furniture the basic single node skeleton can be added to by parenting other nodes to Root. With a set of nodes called Seats you can add places for avatars to sit or stand, pose or animate. As well you can add nodes to animate the furniture itself.

For nodes that are used by avatars there are a set of four nodes, each performing specific functions: a Seat node that defines the avatar location, a Handle node which is the User Interface element clicked on in-game, and Catcher and Pitcher nodes to establish where avatars stand when interacting with each other.

Taking a closer look this set of nodes, the nodes represent either a Sitting or Standing stance by default, or with slight modification, a custom Stance pose or animation. This is determined by a case-sensitive suffix label such as .Sitting, .Standing or a custom stance label (more about this later).

- Handle[n]
- seat[n].Sitting
- Catcher[n].Sitting
- Pitcher[n].Sitting

The Handle node is generally positioned above the seat node, but can be repositioned for ease of access. This is useful in instances where too many seats are in close proximity to each other.

The Catcher and Pitcher similarly can be repositioned but should remain the same distance apart to ensure cooperative avatar animations are properly synchronized such as avatar hands touching during a handshake for example.

Avatar Seats don’t have any say in how an avatar might pose or animate, they only highlight where avatars appear and can be interacted with.

Animation Nodes

For animation, additional nodes can be included depending on what and how the item is being animated. A single node, parented to Root for example, can be used to rotate or move something. More nodes can be used to create more complex animations of the furniture product mesh.

In addition animation can be set up to pose and animate the avatar using a custom stance label so long as the hierarchy between the nodes is set up to accommodate this. Like the labels SittingStanding, the use of a custom stance label are used to trigger Avatar Actions.

Sitting and  Standing are built-in IMVU avatar actions.  Custom custom stance labels are used to trigger custom avatar poses or animations called Avatar Actions.

For more info see Avatar Actions

Nodes and more Nodes

Finally, all related nodes such as sets of nodes in Seats (Handle, seat, Catcher, and Pitcher) need to have their names labeled so that IMVU knows how many there are. For furniture (and for Rooms), each of these nodes needs to have a numerical identifier. This is a done using a two digit number appended to the node’s name before the node’s function label suffix of  .Sitting, .Standing or a custom stance label.

- Handle01
- seat01.Sitting
- Catcher01.Sitting
- Pitcher01.Sitting
- Handle02
- seat02.Sitting
- Catcher02.Sitting
- Pitcher02.Sitting
Node Numbering

Seat nodes are limited to 01-99.

And there we have it, as we can see, the combinations of these simple sub-elements means we can build quite complex furniture, the only limitation being the imagination!

Updated on July 21, 2023

Was this article helpful?

Related Articles

Discuss this!
Ask questions and get answers in our Creator Discussions.