Sign in to follow this  

Questions about bone orientations in Matrix Palette Skinning

Recommended Posts

I am currently adding the option to import many 3D file formats into our engine.  Collada/FBX/etc.  Some formats like Collada explicitly give a bone Matrix/Orientation like so:


<node name="leg_left_toes" id="leg_left_toes" sid="leg_left_toes" type="JOINT">

<matrix sid="matrix">1.000000 0.000000 -0.000000 0.135309 -0.000000 1.000000 0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 0.000000 1.000000</matrix>


While others only give a position and then just give xyz translation for each bone:


spine lower
1 //This is a joint index
0 1.06035 -0.00128843


In formats where there is only a position when they are imported into Max/Maya/Motionbuilder they somehow recalculate the same orientations.  


A) How can you get the bone orientations from a list of positions?

B) From what I can tell it looks like it has to do with their children bones with a single child simply point their X-Axis to their child, but what about bones with multiple children (Like the Hips in most skeletons)?  Or no children (Like fingertips)?

C) Why do all of these toolsets choose to face the X axis to the child/children?  I would figure Z would be the most natural choice.  Easy mirroring perhaps?


Thank you in advance to all who help =).  

Edited by jchmack

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