Is there a way to make the animation resources in ABP not load all at once initially, but rather load dynamically during runtime? As the number of animations in ABP increases, the overall memory usage of ABP also rises rapidly. It seems that handling this situation could be achieved through loading and unloading during runtime, but so far, a reasonable solution has not been found.
Soft object references?
(post deleted by author)
(post deleted by author)
Yes, but there seems to be no official native method. What I can think of for now is to initiate a loading request in the animation thread when the AnimPlayerNode is activated, while leaving the actual animation loading to the main thread. However, this seems to require configuring the entry function for each PlayerNode, and there might be delays, which feels rather cumbersome. I wonder if there’s a simpler approach. (Sorry for replying multiple times; this reply function is really hard to use.)
it could be weird loading animations async, even though its on a different thread, whats your character doing during that delay?
what id suggest is using LinkedAnimLayers to separate different anims by context and then async load the AnimLayer when its relevant
so for instance i have rifles in one layer, pistols in another, you could put swimming/climbing in others and so on
(post deleted by author)
This approach is indeed feasible, essentially dividing the player’s movement into multiple modules. However, the granularity of dynamic loading is ABP (or Layer) rather than individual animations
With this method, it seems that basic locomotion remains resident in memory. For example, resources like start running, stopping, running, etc., are still loaded all at once rather than loaded when needed. Only some less commonly used features (like wall climbing) can be separated out
Previously, I used a self-developed animation system that would only load specific animation resources when needed. During asynchronous loading, it would maintain the pose from the previous frame to prevent T-Pose from appearing. Although there’s theoretically latency, it’s not noticeable in practice
It seems that UE itself doesn’t have asynchronous loading at the granularity of individual animation resources?
you can definitely do it, i use it for montages. i havent tried doing it inside the AnimBP itself although i cant see why it wouldnt work. you just need to make a custom system around the AsyncLoadAsset node