About obj file.
After bone_id there are 5 matrices 4x4. (5 x 64 bytes)
For bone transform use first as inverted matrix.
Armature use absolute position for bones, not relative, so don't need multiply bone with its parent.
Code: Select all
offset 0 (27,)
offset 4 (3,)
offset 6 (27, 0, 26, 5, 13, 9, 3)
offset 20 (-2.8798000812530518, 0.0, -2.6598999500274658, 2.8798000812530518, 5.4362001419067383, 2.6598999500274658)
bone id=0
offset 44 (0, 0, 0, 0, -1, 0, 0)
offset 72 (65535,)
offset 74 (0.0, -0.0, 1.0, 0.0, -0.0, 1.0, -0.0, 0.0, -1.0, -0.0, 0.0, 0.0, -0.54830002784729004, -1.9815000295639038, 0.0, 1.0) - use as inverted matrix
offset 138 (0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.0, 1.9815000295639038, -0.54830002784729004, 1.0)
offset 202 (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0)
offset 266 (0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -0.0, 1.9815000295639038, -0.54830002784729004, 1.0)
offset 330 (5.5298845836659893e-05, -0.28511077165603638, -0.95849454402923584, 0.0, 1.8247339539811946e-05, 0.95849436521530151, -0.28511145710945129, 0.0, 1.0, -9.6857297648966778e-07, 5.8097844885196537e-05, 0.0, -0.0, 69.0906982421875, -39.635898590087891, 1.0)
bone id=1
offset 394 (0, 0, 0, 0, 0, 1, 0)
offset 422 (65535,)
offset 424 (1.0, -0.0, 0.0, 0.0, -0.0, 1.0, -0.0, 0.0, 0.0, -0.0, 1.0, 0.0, 0.0, -0.023900000378489494, 0.54830002784729004, 1.0) - use as inverted matrix
offset 488 (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.0, 0.023900000378489494, -0.54830002784729004, 1.0)
offset 552 (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0)
offset 616 (0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, -1.9575999975204468, 0.0, 1.0)
offset 680 (1.0, -1.8471942894393578e-05, 2.6907043775281636e-06, 0.0, 1.9977556803496554e-05, 0.99999982118606567, 8.0607776453689439e-08, 0.0, -2.9073123641865095e-06, 7.9493574389744026e-08, 1.0000001192092896, 0.0, -7.0832584242452867e-06, 64.9638671875, -39.63641357421875, 1.0)
bone id=2
offset 744 (0, 0, 0, 0, 0, 2, 0)
offset 772 (65535,)
offset 774 (-0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -0.0, 0.0, 0.0, 0.0, -1.0, 0.0, -1.9815000295639038, -0.0, -0.62940001487731934, 1.0) - use as inverted matrix
offset 838 (-0.0, 1.0, -0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, -0.0, 1.9815000295639038, -0.62940001487731934, 1.0)
offset 902 (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0)
offset 966 (0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.081099987030029297, 0.0, 0.0, 1.0)
offset 1030 (-2.2470583644462749e-05, 0.95854431390762329, -0.28494349122047424, 0.0, 1.0, 8.7463713498436846e-06, 9.7682801424525678e-05, 0.0, 5.3326890338212252e-05, -0.28498372435569763, -0.95853233337402344, 0.0, 4.490266292123124e-06, 69.067550659179688, -39.713729858398437, 1.0)
offset 1094 (0, 0, 0, 0, 2, 3, 0)
offset 1122 (65535,)
....
About ani file.
Armature use absolute position for bones.
It is important . You must multiply each bone frame transform (matrix 4x3) with bone position from armature from obj file.