What is the purpose of there being an Animation instance?

As far as I can tell, Animation only exists to store a Content ID, and be passed to Humanoid:LoadAnimation(). But from an engine design standpoint, why would this be necessary? Why not just make it so that you pass the Content ID directly to LoadAnimation() instead of needing a middle-man Animation object? Maybe someone with a more in-depth knowledge of asset loading can enlighten me. Is it that somehow Animation objects cache their animations, whereas passing a Content ID every time would require re-downloading the same animation over and over? But can’t that be trivially solved with a cache table in the LoadAnimation() function?

1 Like

personally I like having animation objects, I can store animations where I need them at as a physical instance without needing to keep a list of IDs somewhere. I’m sure there are other reasons but for me personally it makes the workflow easier.