0 votes
asked in General Help by
If so,

Is there a guide in how to structure entities and jobs to suit this asset?

1 Answer

0 votes
answered by (22.7k points)

I have already done a lot of testing with the jobs, I have written AnimationJob versions of LimbIK, AimIK and CCDIK, also tried Animation Rigging and IJob versions of LimbIK. BUT here's the thing - they are all much slower than their old single threaded counterparts, even if used on 100 characters, even with IL2CPP, Burst, Unity.Mathematics and what not tested in a build. I know it's not something I was doing wrong because my LimbIK job was running faster than the similar 2 bone IK from Unity's own examples. It's just that there is so much overhead to multithreading itself that even an empty IK job with all the solving code commented out still performs slower than it's fully functional single threaded sibling.

Animation and especially IK are terrible candidates for multi-threading by nature because they need to work on hierarchical data structures and be solved in specific linear order. DOTS animation is gonna be faster, but I think not nearly as much as you've seen in some of the DOTS tech demos that are about moving tens of thousands of independent objects. So for now I have given up on the AnimationJobs as there is no point in using them at all. I am looking forward to the new DOTS animation tools that should be made public any day now, then I'm gonna run some tests again and see how that compares. It will require a complete rewrite though.

Welcome to RootMotion Q&A, where you can ask questions and receive answers from the developer of Final IK and PuppetMaster and other members of the community.

Post as a guest, create an account or login via Facebook.

Please use the correct category when you post your questions.