I have an animated model in Blender of football player with a ball. Ball is attached to bone. I’ve managed to import it to playcanvas but the ball is moving not in the right spot. Already tried Autodesk FBX Converter, but it does not make any changes.
Here is a screenshot of the lowest point of the ball, it is way too far from the leg.
What we figured out is that PlayCanvas samples the animation every 0.1 seconds. That is not nearly frequently enough for a typical 30 fps animation. It is enough for a 5fps animation. So if your original animation is 30 fps, you need to scale out the keyframes so that they are six times as far apart if you want to guarantee an accurate conversion. You then play it back at 6x speed in PlayCanvas. This doesn’t appear to be a bug so much as it is a limitation of the conversion process. Sampling every 0.1 seconds is simply too crude for 30 fps animations where keyframes can occur at 0.033333 second intervals.
If your animation is long and/or complex, this may make for fairly large animation files. Depending on your animation, you might want to try animating at a slower frame rate like 15 fps and then multiplying the keyframe spacing by 3x.
I have no idea. Coming from a background in 3D animation, it seems pretty crazy to me. But I’m assuming that there sure there is some background/context that I’m just ignorant of and that the underlying reasons make the decision more sensible than it appears. Either that or maybe establishing such a low effective frame rate was an oversight.
My main problem with this is that the re-sampling of the motions at such a low effective frame rate isn’t made super-clear/obvious in the online documentation. This is a pretty fundamental feature and it should be more thoroughly explained IMO.
You can use the network tab on Chrome Dev Tools. Hovering on any connection will report the compressed size of the resource transferred over the network versus the real size of the file.