I have a conceptual question about animated models. While my project is in OpenGL 4.5, this question is not really specific to OpenGL but I believe this is a good place to ask.
I have already implemented animated models in my engine, and it works reasonably well (“works” being broadly defined as “they load, it interpolates between keyframes and the model doesn’t turn into spaghetti the instant you apply the bone matrices”). My implementation loads the models using Assimp.NET.
Unfortunately, I am not at all experienced when it comes to creating 3D models (I made an OK looking end table in Blender once, that’s about it), so I have to rely on free ones I can find on various websites like turbosquid. I have been working with a little minotaur model I found online that has animations; it’s been a while but I think it may have come from a tutorial site.
However, said model contains multiple FBX files - Each one appears to be a copy of the entire model (~50MB) with a single animation. If I point my model loader at one of them, it works - But it only has the one animation.
So my question is, am I fundamentally misunderstanding something here? Am I pointing my model loader at the wrong file? There is a mesh folder with a Mesh.FBX file, but if I point my loader at that file Assimp doesn’t see any animations at all. I was thinking that I might need to make my model loader loop through a list of files and pick out the animations from each while only keeping the meshes from one - But that seems quite unusual, especially the implications of loading a whole list of 50MB files for a single model, and the few other free animated models I’ve been able to find that Assimp will load don’t seem to be structured that way, but none of those so far had multiple animations. Is this a common thing with animated models that I’m not aware of, or did I just end up with a weird sample model?
Additionally, any recommendations on where I might have better luck finding animated models to work with are welcome - Theme doesn’t matter here; anything I can use to test out my code is good.