I am writing this to hopefully illicit some helpful tips.
I have been transitioning from built-in animation to the Enhanced Animation addon. I have noticed an extreme operating performance drop.
EnAn_oacSetLimbPlayAnimSpeed oacID, Limb, Speed#, ExChild
This command is taking a very long time to execute. Every loop I was setting the animation speed of every game character. So when I switched to Enhanced Animations, I continued to do this even though you can play around with timing with the
EnAn_oacUpdate oacID, Time instead.
I set it to include child limbs in a way that would control separately the upper and lower body. Then I tried to manually control speed on each limb thinking it would help. But it only made the whole thing 5 times slower.
Part of the issue is that characters can walk at differing speeds from a slow crawl to speed walking before running animation is used. So it makes sense to tweak the speed every game loop. Now the legs might be walking but the upper body might be shooting, walking, etc. So controlling the entire objects overall speed won't cut it.
I've got in some cases 100 people walking around and doing various animations across game levels. So it ends up taking anywhere between 2-20ms to process these speeds.
Character models have about 20 bones/limbs. I find myself having to creatively find automated methods for the mathematically setting the speed as least often as possible. Not just for efficiency's sake, but because the situation is so dire.
Setting animation speed with the built-in system is lighting fast. I'm not sure what it could possibly be doing here to be so slow. It's not looking up the next frame, it needs the timing value and that's only given to the
EnAn_oacUpdate command.
Any info would be helpful, Thanks.