I know the 1.4.1 Rev. B and I am still confused about animations in COLLADA.
Why is the INTERPOLATION array of same size as the INPUT/OUTPUT array ?
3 points give 2 segments, so I would expect an array size of n-1.
The same for IN_TANGENT and OUT_TANGENT
IN_TANGENT starts indexing at 1, OUT_TANGENT's index will never be n.
If I program a iteration loop I will use
Code :n = Length(INPUT) k = [0;stride[ for i = 0; i<n-1; ; i++ X1 = INPUT[i]; X2 = INPUT[i+1]; C/T1 = OUT_TANGENT[i]; C/T2 = IN_TANGENT[i+1]; INTERPOLATION = INTERPOLATION[i]; //or INTERPOLATION[i+1] ? OUTPUT1[k] = OUTPUT[i*stride+k]; OUTPUT2[k] = OUTPUT[(i+1)*stride+k];
Is this right for a TIME input and e.g. a vector3 output ?
Why is there no possibility to instanciate an <animation> within an <animation> ?
I have a lot of animations which start at time 0 and the possibilities with animations_clips are limited, so hat I cannot move such animations in time because the animation_clips start attribute is the start value for the INPUT.
So this gets an application specific problem or has to be in extended by <extra>-functionality.
So why is there no possibility for cascading animation_clips ?
For example, I have a car model and it contains animations for rotating the wheels and another two animations for acceleration and slowing down.
In a new COLLADA file I want to compound an animation of
accleration, driving, slowing down, acceleration, driving, ... and so on.
Assuming that all animations start at timeoffset 0, how can I solve this ?
Code :<animation clip start=0 end=10> <instance_animation url="#acc"> </animation_clip>
Problem here: What happens if animations is not defined for the time interval ? For the drive animation an additional attribute would be fine to add loopcount (including infinity). This could be included in into the end attribute as well:
Code :maxt = max(animationtime) if end > max(animationtime) : t = t mod maxt
end could be -1 for infinity repeatition of the referenced animations.
Animations exceeding their time range keep their last output value constant.
Code :<animation_clip end=10> <instance_animation url="extfile.dae#accel"> </animation_clip> <animation_clip start=10 end=20> <instance_animation url="extfile.dae#drive"> </animation_clip> <animation_clip start=20> <instance_animation url="extfile.dae#slow"> </animation_clip>
But I cannot group it (of cource I could use a naming schema for this in the name/id attributes but that's application specific)
Assuming #slow begins not at 0s but at 10s. How can I get the same result as before, since the animation may come from a foreign source ?
So If all animations are defined at absolute times, why is there no timeoffset attribute to make them relative ?