I downloaded character models and animations from Mixamo, put them in blender and exported them for use with Babylon.
The skeleton animates correctly but the animation is choppy. It appears to play frame by frame; there does not appear to be any interpolation between frames. This is clearly apparent when played at a slower speed.
Despite there there being only two key frames for the cube animation, the cube moves smoothly regardless of what speed the animation is played at. Why does the skeleton animation not perform this way and how do I get it to perform this way?
A temporary solution I found was to download the character animation from Mixamo at a slower speed so that there would be more frames in the animation. I would then play that animation at a faster rate in Babylon to undo the slowness set in Mixamo. Since there are more frames in the animation, it appears smoother.
Skeleton is animated by updating the matrices per frame with the data stored in the animation. There is no interpolation (but only replacement) for matrices unfortunately so your solution is probably the best (more keys)
Fortunately we can force the system to take the slow (but smooth path) by adding this:
BABYLON.Animation.AllowMatricesInterpolation = true;
scene.animationPropertiesOverride = new BABYLON.AnimationPropertiesOverride();
scene.animationPropertiesOverride.loopMode = BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE;
Thanks for the clarification, your solution is a lot simpler and easier since I could just throw in a couple lines at the beginning of my script and use skeleton animations directly.
I was wondering, when you say slow, do you know if there will be any negative impact on overall performance using your method? Say for example, if I had many models and many animations happening at the same time in a fast FPS game.