3

I'm pretty much grabbing at straws here cause I have no idea what I'm asking, but here is the question.

I've been looking at 3D modeling out of pure interest and came across the concept of bones. Now, I am not too sure what bones are even after looking it up on wiki, but they seem like an abstraction of real-life skeletons and whatnot, so in a model of say a human I just think of them as the skeleton.

To my understanding, a bone is defined by a translation, rotation, and a scale on the x, y and z axis'. (Isn't that just a single point?)

I am interested in taking a model in blender or max and export the information (whatever they may be) that is used to define these bones. I can definitely see the bones in these programs, but I want to get that out into a text file Is there a way to export this?

MxLDevs
  • 19,048
  • 36
  • 123
  • 194
  • 1
    do you realize what site you are on...? – Dave Kiss May 25 '11 at 15:28
  • Seems like the easiest way to get somewhere. – MxLDevs May 25 '11 at 15:30
  • 1
    Bones are in general a mapping of points/polygons/etc for use in animation, usually moving a person. They generally have weights and constraints applied to them for more realistic movement. – onteria_ May 25 '11 at 15:43
  • 1
    Bones are a way to control object hierarchies, meaning that by changing an element in the hierarchy, you affect the rest, depending on how that rig is build(inverse kinematics (IK) or forward kinematics (FK) ). A bone is has transformations(translation,rotation,scale) as you mention, but a bone usually has a head and a tail used to attached other bones and create hierarchies. You could try to write script to export bone data, but it might be wise to learn more about what bones do and how they work and also skinning and based on that choose what technique you will use to implement yourself. – George Profenza May 25 '11 at 16:30
  • 1
    for raw vertex data you can export an MD2 model from Blender or 3dsmax(with a plugin). Bone data can be contained in Collada(.dae) and FBX formats, but do check out what features of the file format are supported by 3d package you'll chose (You might find that Collada might not save bone data or the Blender FBX does not export correctly, etc.). In short either use an existing exporter and write a parser in your project, or use the scripting language in the 3d package to export bone data in the format you need. Personally I find Python scripting in Blender easier than Maxscript in 3dsmax. – George Profenza May 25 '11 at 16:34
  • Good idea, looks like I'll have to put some time aside to work with bones as they are before trying to do stuff with them. – MxLDevs May 25 '11 at 18:07

1 Answers1

5

I think you need to seperate these ideas:

Bones - which as you correcly say have a position and rotation. They are the objects that you can control and will effect the skin of the model. They are usually in a hierarchy so that if you move one bone then it will affect all of the bones connected to it, like a human skeleton.

Skin - this is the polygonal mesh that you can usually see. It is given a base position by you in the editor and the skeleton operates on the skin to move it around.

Animation - This is data to pass to the bones. Usually a rotation, for example to make an arm bend.

http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System gives a good explanation.

Hope that helps :3

ashleysmithgpu
  • 1,867
  • 20
  • 39