Skeletons & Bone Relationships
All 3D products in IMVU are comprised of two main parts, a visible mesh and an invisible skeleton. The visible bit, the mesh, is what Users see and interact with. The invisible, the skeleton, essentially controls what happens when items are used. In other words, a furniture items skeleton allows a couch to be placed on a furniture node, part of a rooms skeleton , or an ear-ring accessory being positioned at the avatars ear and not their wrist. Skeletons then are necessary for IMVU to function properly, ensuring items appear and behave as the should.
What Is A Skeleton
For IMVU skeletons are not objects or structures but relationships. So whilst there are actual skeletons, an Armature in Blender, a skeletal structure can be used that’s determined solely by the relationships between objects the skeleton might contain. The aforementioned Armature for example, is a type of skeletal object within which a sub-element, Bones, can be strung together to form what can be considered a traditional skeletal structure;
In contrast, the same skeletal structure, that is the hierarchy represented by the traditional skeleton, can be replicated using any type of object, Nodes as is the case of IMVU, that when linked together create something that approximates the structure of an Armature based skeleton.
Skeletal Structure
For most avatar-based products the skeleton is pre-built, bones cannot be added or removed without negatively affecting the appearance or behaviour of the avatar itself. For all other products and items skeletons can be constructed per the products intended purpose, which in turn determines the skeletons structure, the different types of bones or nodes that can be used (identified by name), how many can be used, their order, orientation, and the hierarchal structure that’s expected. For example, a simple furniture item might have the following skeleton;
Root » seat[n].*
A room might have;
skeleton.Room » node.Room » » Omni01 » camera.* » furniture.Floor.* » furniture.Wall.* » furniture.Ceiling.* » seat[n].*
An accessory (including pets);
AttachmentRoot » AttachmentNode
Compared to the avatar;
zHead Female03MasterRoot PelvisNode lfHip lfThigh lfCalf lfFoot lfToes xTipBone86 rtHip rtThigh rtCalf rtFoot rtToes xTipBOne38 Spine01 Spine02 Spine03 Spine04 Neck01 Neck02 Neck03 Neck04 Head xTipBone33 lfClavicle lfShoulder lfBicep lfElbow lfWrist lfHand lfmetaCarpal03 lfFingerMiddle01 lfFingerMiddle02 lfFingerMiddle03 xTipBone87 lfmetaCarpal01 lfThumb01d lfThumb02 lfThumb03 xTipBone88 lfmetaCarpal05 lfFingerPinky01 lfFingerPinky02 lfFingerPinky03 xTiprtFingerne83 lfmetaCarpal02 lfFingerIndex01 lfFingerIndex02 lfFingerIndex03 xTipBone89 lfmetaCarpal04 lfFingerRing01 lfFingerRing02 lfFingerRing03 xTipBone90 rtClavicle rtShoulder rtBicep rtElbow rtWrist rtHand rtmetaCarpal03 rtFingerMiddle01 rtFingerMiddle02 rtFingerMiddle03 xTipBone74 rtmetaCarpal01 rtThumb01d rtThumb02 rtThumb03 xTipBone66 rtmetaCarpal05 rtFingerPinky01 rtFingerPinky02 rtFingerPinky03 xTiprtFingerne82 rtmetaCarpal02 rtFingerIndex01 rtFingerIndex02 rtFingerIndex03 xTipBone70 rtmetaCarpal04 rtFingerRing01 rtFingerRing02 rtFingerRing03 xTipBone78
Creating Skeletons
If a skeleton is represented by an Armature and Bones, additional elements need to be included accordingly, as Bones. Where Nodes have been used here too extra skeletal elements will need to match those already in use, i.e. more Nodes. In Blender creating new elements can be done by duplication, selecting an existing bone or node in Edit Mode and using Armature » Duplicate for bones or Object » Duplicate Object for nodes. In either case a new instance will appear than can be moved, renamed and re-parented based on requirements.