[Bf-committers] Armatures Bones Poses

Emiliano Gambaretto emiliano at mixamo.com
Thu Nov 25 23:02:00 CET 2010


Dear all,

as Stefano already told you I'm writing a collada 1.4.1 importing plug-in.
I'm now focusing on importing animations.
For that I need to figure out how armature, and motion channels are
defined in Blender.

I'm using this documentation as reference:
http://www.blender.org/development/release-logs/blender-240/how-armatures-work/
Please let me know in case you are aware of others documentation resources.

I believe I understood how armature works, but, I still have some
problems so I want to double check with you:

1)in POSE SPACE is the global position matrix of a bone given by:
"node global position matrix"="global position of the parent" *
armature_bone_matrix * bone_action
where:
- armature_bone_matrix is the matrix that describes the local bone
coordinates system with respect to its parent when the bone is in rest
pose?
- bone_action is the matrix whose rotational portion can be accessed
in python in this way "pose.bones[].pbone.quat"?

2)In the ARMATURE SPACE (edit mode).
- global bone matrices can be accessed in python in this way
"Armature.bones[].matrix["ARMATURESPACE"]"
- referring to the above formula bone_action matrices are Identities
therefore armature_bone_matrix can be computed in this way:
armature_bone_matrix="global position of the parent"^-1 * "node global
position matrix"

3)In POSE SPACE:
- Given the global position matrix of a bone G and of its parent P,
can you confirm the bone action matrix is given by:
 bone_action = armature_bone_matrix^-1*(P^-1*G)

Thanks for your help,
Best regards,

Emiliano


More information about the Bf-committers mailing list