I'm importing a simple model with one fixed element and the other rotating around an edge. The start and end positions are correct but in-between the two elements detached. Normally they should stay attached together. When you open this animation with the assimp viewer you see the problem but if you open it in other viewers it's working fine.
Have a look at the model in Augment (our app where we use assimp) : http://agmt.it/20608
You can get the file there to test : http://augmentedev.com/files/simplest.dae
Do you know if the problem comes from the collada importer, from the file, or from the way we interpret the animation data provided by assimp?
Thank you !
at first I thought that this would be the point where Assimp's lack of complex keyframe interpolation methods is showing. But I was wrong. What actually happens here is:
- Collada is using a "special" animation system in which you can concatenate a lot of different transformations, and animate parts of it.
- Assimp is using a "standard" animation system with a single sequence of keyframes for position, rotation and scaling.
- The Collada loader resolves the whole transform chain of a node for every keyframe and stores the result in the Assimp keyframe system.
- This specific file uses a special transformation chain that offsets 100 to the right, rotates, and then offsets 100 back to the left.
- This results in the pivot point of the rotation being different from the node origin.
- This results in Assimp having to generate keyframe sequences for both rotation and translation.
- And the position sequence is linearly interpolated but it should actually move along a circular path.
I don't see what I could here to solve this issue. It's a specific problem to Collada, one I've never seen in use before. What application did create this file? For the moment, a simple solution would be to have the f2 mesh origin at the pivot point of the rotation. A long-term solution would require the Collada loader to detect these kinds of transform setup and generate a dense keyframe sequence to closely match the actual path of the node translation, but it will never be a perfect match.
Thank you very much for you quick and precise answer, thanks to you we were able to fix the export mechanism.
You can see how the corrected version looks like here : http://agmt.it/20761
Log in to post a comment.