interactive avatar

hy.
I’m still creating a 3d interactive avatar (with keyboard control).
I would export from 3dsmax or blender a collada file with avatar multiple “animation sections” , one for the walk , one for the jump ecc…
Is possible?
How is organized the collada format for this sections?
I’m not understand the animation section:
i have:


<source id="Bone03-node-transform_Bone03-node_transform-input">
        <float_array id="Bone03-node-transform_Bone03-node_transform-input-array" count="101">0 0.033333 0.066666 0.1 0.133333 0.166667 0.2 0.233333 0.266667 0.3 0.333333 0.366667 0.4 0.433333 0.466667 0.5 0.533333 0.566667 0.6 0.633333 0.666667 0.7 0.733333 0.766667 0.8 0.833333 0.866667 0.9 0.933333 0.966667 1 1.03333 1.06667 1.1 1.13333 1.16667 1.2 1.23333 1.26667 1.3 1.33333 1.36667 1.4 1.43333 1.46667 1.5 1.53333 1.56667 1.6 1.63333 1.66667 1.7 1.73333 1.76667 1.8 1.83333 1.86667 1.9 1.93333 1.96667 2 2.03333 2.06667 2.1 2.13333 2.16667 2.2 2.23333 2.26667 2.3 2.33333 2.36667 2.4 2.43333 2.46667 2.5 2.53333 2.56667 2.6 2.63333 2.66667 2.7 2.73333 2.76667 2.8 2.83333 2.86667 2.9 2.93333 2.96667 3 3.03333 3.06667 3.1 3.13333 3.16667 3.2 3.23333 3.26667 3.3 3.33333</float_array>
        <technique_common>
          <accessor source="#Bone03-node-transform_Bone03-node_transform-input-array" count="101" stride="1">
            <param name="TIME" type="float"/>
          </accessor>
        </technique_common>
        <technique profile="MAYA">
          <pre_infinity>CONSTANT</pre_infinity>
          <post_infinity>CONSTANT</post_infinity>
        </technique>
      </source>
      <source id="Bone03-node-transform_Bone03-node_transform-output">
        <float_array id="Bone03-node-transform_Bone03-node_transform-output-array" count="1616">...the data</float_array>
        <technique_common>
          <accessor source="#Bone03-node-transform_Bone03-node_transform-output-array" count="101" stride="16">
            <param name="TRANSFORM" type="float4x4"/>
          </accessor>
        </technique_common>
      </source>


id=“Bone03-node-transform_Bone03-node_transform-output-array” count=“1616”
1616 / 16(a matrix)= 101 matrix .
each matrix modify a bone??
have 101 frame??
I’m usually think at the animation such a list of transform , but with an index , how i understand the collada animation?

Thanks

Thanks

In COLLADA animation, you can treat animation INPUT as TIME.
In your example, your “OUTPUT” is FLOAT4X4 or a matrix transform of a node. (bone is represented as node and transform)
There are 101 matrices in your “OUTPUT” for each of your 101 time frame.
That means…
At time 0.0, you use the first matrix,
At time 0.33333, you use the second matrix.

At time 3.33333, you use the last matrix.

You use that matrix of that given time to replace the matrix transform of the target node.
You can find the target information in <channel> element.

Herbert

and for this:

I’m still creating a 3d interactive avatar (with keyboard control).
I would export from 3dsmax or blender a collada file with avatar multiple “animation sections” , one for the walk , one for the jump ecc…
Is possible?
How?

COLLADA doesn’t have keyboard interaction yet, so you have to start your appropriate animation in your runtime engine with your keyboard binding.
COLLADA doesn’t have play, stop, pause interaction either, so you have to do your own timing in your runtime engine.
The short reason behind that is because we want COLLADA to be runtime independent as much as possible.

You can have <animation> inside <animation>, it gives a sense of grouping.
You can have a group of <animation> in a <animation id=“walk”>.
You can have another group of <animation> in a <animation id=“jump”>.

A common pipeline practice for mutiple animation is to export your different <animation> sequence in different .dae file.
Export these .dae file into binary format for you runtime engine.
And have your engine read all these animation and “bind” them with your playback and keyboard. This “binding” is not provided in COLLADA yet.

Herbert