Please exmplain Animation Key in X format (Blender exporter)


I am trying to export from Blender all chains of bones from one armature to DirectX format.

This is an original script from: … d.8.0.html

I add few lines to this file (from line 563). Let’s do the export for all chains of bones:

root_bon = amt.getBones() 

# this FrameBlock should be placed in cycle 
for bone in range(len(root_bon)): 
  if not root_bon[bone].hasParent(): 
  mat_r = self.getCombineMatrix(root_bon[bone]) 
  name_r = root_bon[bone].getName() 
  self.openFrameBlock(mat_r, name_r) # opens "Frame {" 
# end of cycle 

self.exportMesh(obj, armatures[i]) 

In the output DirectX file I found a problem with animation. This is because AnimationKey {…} transformation matrix is wrong.

Does anybody know is this transformation matrix shoud be in world system for each bode, or it should be relatively computed from parent bone?

Thank you very much for help,

It appears, based on empirically studying existing x files, that it is intended to be a relative transform from the frame’s parent.