tags:

views:

149

answers:

3

I'm in the planning stage of a MS3D parser and looking through the specs I see that a vertex struct has a boneId variable. Is a "bone" a synonym of a joint? So, is that boneId variable then an index of the joints array? If not, then what is a bone and where does it come into play? I was always under the impression that a bone connects two joints but I can't find any notion of a bone on this spec. Is it incomplete?

Thanks!!

EDIT: What is a bone, then? The bone structure is not defined in that header file. Can someone show me a more complete spec for the MS3D format or is this just something that I should be able to infer?

EDIT2: Not so much "what is a bone" as much as, where are the bones? Does the ms3d file include bones in the file too and the spec is wrong? How can I load these bones so that I can see which joints affect the vertex?

EDIT yet again: I found a more recent spec for version 4, but it still does not define a bone. What am I missing??

Edit4: I'm starting to see the connection. Obviously joints form bones. Since joints have a parent joint, they form a tree (for some reason I was thinking they were just randomly connected). So then I can form a tree of bones, and I guess the first joint with a defined parent in the file would form bone 0, and then next joint with a parent forms bone 1 with its parent, and so on? Is this correct? I wish the two specification files I found explicitly said this...

A: 

I thought a joint connected two bones?

TheTXI
A: 

I believe the boneId is the bone with which the vertex in the mesh is associated.

Andy Mikula
A: 

A bone is a frame of reference for a collection of vertices. It is conceptual...not a vertex and not a polygon.

When a collection of vertices has a common bone id, it means that when that bone moves or rotates, those vertices will follow it.

A joint declares that two bones are connected, and describes how and where they connect.

If you picture a primitive action figure that can only move its arms and legs at the base, you would have a figure with five bones (body, arm, arm, leg, leg) and four joints showing how the limbs attach to the body. All the vertices of that figure would belong to one of the five bones and all the motion of the figure would happen at one of the four joints.

Shmoopty