I am sorry for writing here, but Collada forum is dead.
And so could you get me an advice how to store animation from Collada? Usually I have to store one bone matrix and animate it, but here I must store a sequence of functions (rotation, translation, … its parameters) for each bone. In each frame I must evaluate parameters of this functions (make animation because in models there are interpolation of parameters of functions(for instance an interpolation of an angle of rotation function)) and then for each bone evaluate bone matrix.
A XML code for example:
<animation id="joint11_rotateZ2">
<source id="joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-input">
<float_array id="joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-input-array" count="26">0.041667 0.083333 0.125 0.166667 0.208333 0.25 0.291667 0.333333 0.375 0.416667 0.458333 0.5 0.541667 0.583333 0.625 0.666667 0.708333 0.75 0.791667 0.833333 0.875 0.916667 0.958333 1 1.04167 1.08333</float_array>
<technique_common>
<accessor count="26" source="#joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-input-array">
<param name="TIME" type="float"/>
</accessor>
</technique_common>
</source>
<source id="joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-output">
<float_array id="joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-output-array" count="26">-4.93792 -5.17142 -5.42837 -5.70291 -5.98917 -6.28129 -6.57341 -6.85966 -7.1342 -7.39115 -7.62465 -7.82884 -7.99786 -8.12585 -8.20694 -8.23527 -8.15847 -7.9479 -7.63328 -7.24433 -6.8108 -6.3624 -5.92886 -5.53992 -5.2253 -5.01472</float_array>
<technique_common>
<accessor count="26" source="#joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-output-array">
<param name="ANGLE" type="float"/>
</accessor>
</technique_common>
</source>
<sampler id="joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-sampler">
<input semantic="INPUT" source="#joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-input"/>
<input semantic="OUTPUT" source="#joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-output"/>
</sampler>
<channel source="#joint11_rotateZ2_right_shoulder_joint11_rotateZ_ANGLE-sampler" target="right_shoulder_joint11/rotateZ.ANGLE"/>
</animation>
<node id="right_shoulder_joint11" name="joint11" sid="right_shoulder_joint11" type="JOINT">
<translate sid="translate">-1.20726 2e-006 0.012825</translate>
<rotate sid="jointOrientZ">0 0 1 -0.34889</rotate>
<rotate sid="jointOrientY">0 1 0 0</rotate>
<rotate sid="jointOrientX">1 0 0 0</rotate>
<rotate sid="rotateZ">0 0 1 -6.8108</rotate>
<rotate sid="rotateY">0 1 0 -57.0018</rotate>
<rotate sid="rotateX">1 0 0 2.43798</rotate>
I think this is an inconvenient method for programming and very hard for graphics performance.
Could somebody explain or give links me how to use this Collada data in good form?