Sign in to follow this  
gorgorath

Stick Figure, Biped model

Recommended Posts

hi, I want to create a simple(but effective) program to manipulate the bones, of a creature( in this case it's a human ). This human is composed of several bones, e.g. upper arm, lower arm etc. etc. Say now i want to move the lower arm of the model. I only want that this part( and it's sibblings, like hand and fingers ) move with it. But only in the direction that is allowed by it's movement direction, in this case a hinge joint( elbow ). Where can i find some good resources, that explain me how to intregate this. I've searched on the internet, and found lots of 'skeletal animation' sites but most of these sites are about actually about interpolating between animations( MD5, MD3 halflife models etc.etc ) cheera, Paul

Share this post


Link to post
Share on other sites
I think what you want to implement is an IK chain/hierarchy, where IK stands for inverse kinematics. The idea is that, given some "goal" affectors low in the skeletal hierarchy, (a wrist, a foot etc.) you can place/rotate them in space, and the rest of the chain will adjust to the motion in a natural way. (hence the name)

I cannot help you with this as I have no idea how it works too(!), but at least you can google "IK chains" :)

edit:
hmm, I've been going through your post again, and it seems that I may have misunderstood...
Do you want the entire body to be affected by the motion of the lower arm? (to the degree that it should)? Or just the bones "lower"?

Share this post


Link to post
Share on other sites
well, you want forward kinematics then... These things are implemented with matrix stacks. You start with the orientation of the highest object in the hierarchy, and then "push" and "pop" mutrices as you traverse down and up the hierarchy.

Each matrix represents a specific link, (it can be a translation, a rotation, or both depending on the type of link) and expresses the local space of the next link, in the local space of the previous.

This effectively controls the orientation of the linked objects in world coordinates.

E.g. to descibe the link from the upper arm to the lower arm, you would have to define a matrix (in "upper arm" space) that translates the origin to the pivot of the next link, and then rotates around the appropriate axis by an angle equal to desired elbow bend angle... The world transformation for the lower arm would be the product of all matrices of the previous links.

Of course hinge joints are easy to implement, but the body has more complex ones... You may have some trouble when there is more than one rotational degree of freedom...

You may want to google "forward kinematics tutorial"... I believe you'll find something useful...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this