   Making a character animate in 3D
  Ive been doing a little research on making a 3d model have bone animations. I read stuff about keyframe animations, bone animations, and skeletal animations. I dont understand the difference between any of them or how they work. So i started designing my own class to handle animations using multiple 3d models (or meshes whichever it is) to make an animated character.So far how my design works is i will have a file, weather it be script, xml, or some custom file, which contains filenames to each model associated to the character. It will also have IDs for each bone, and other bone data.Each bone has a Starting Point, which is where it connects to its parent bone. Bones have multiple Pin Points, which is where more bones connect at.There will be one "Mother" bone, which would be the torso, that other bones will connect to using the Pin Points stated above. The Mother Bone is the bone that is first given the display information such as transformation and rotation. The Mother Bone will pass this information down to other bones connected to it. The next bone, lets say an 'upper left arm', will retrieve the point info it needs (from the Mother Bone), and its Starting Point will be set to that point. And the next bone can attach to whichever bone it needs to pin to and so on.I dont know how well this design will work. The main thing i dont like is that a single character will have a number of mesh files associated to it (head,torso, upper left arm, lower left arm, and so on).If theres a better way to make a 3d character animate, please tell me. And im sorry if my explanation to my design was confusing.   
  sounds like you are heading in the right direction.for my part my skeletal animation goes something like this... i wrote a function that you pass any 3d vector to and a 'starting joint' (and which skeleton in the array im referring to obviously).  from there the function rotates the vector as needed around the starting joint and then proceeds to be rotated by next joint that the 'starting joint' is connected to.  this is a loop that continues until whatever joint the vector is being rotated around has no further joint it connects itself to.if you can keep it as open as that then it allows you to do the following :1. you can pass joint info to be rotated and then display a whole connected skeleton posed2. you can pass the mesh data and it will be rotated and posed as per the skeleton3. you can 'connect' anything you like to a joint on the skeleton, such as a weapon etcso in my animation i have the connections like so... left hand -> left elbow -> left shoulder -> center neck -> center waist -> skeleton ground base pointright hand is similar, and then the left and right feet go upwards to the hip and then mid waist and from there the connection to the skeleton ground base point is already done anyway.from this i can have a model (or skeletal animated model) of a weapon... animate the weapon as per it's own animation requirements, then pass all the animated mesh data through to the left hand if i wanted to of my characters skeleton.  this then has an animating weapon being effectively held by another skeleton by it's left hand.your confusion over the keyframe animation etc etc and how they are different is probably an answer in itself... they are all basically talking about different aspects of the same process.  a keyframe is as it's name says ... a KEY frame.  key as in important as in defined.  to make anything animate you need to define where 'things' are starting from and where they are going to.  in a walking animation you need keyframes for left foot forward and right foot back, both feet side by side, right foot forward left foot back.  well to do it nicely you need to have a few in between to make it look more natural and fluid.bone animation and skeletal animation i imagine (here i'm guestimating) are simply being specific about the type of animation they are referring to.  bone animation as in 'what the left hand joint is currently doing', and skeletal animation as in 'what all the joints are doing'.cartoons have 'keyframes'... flash after flash after flash at something like 24fps (depending on where in the world you live).  the master cartoonist draws the keyframes for the main movements and scenes etc, then the team beneath him draw the needed frames needed to go from one keyframe drawn for them to the other.so from this you can take the the term keyframe is a bit of a universal term, whereas talking about bone animation and skeletal animation is a very specific set of terms.it's been a long time since i've looked at my skeletal animation code so hopefully this isn't too far off the mark of true.   