Procedural animation technology application for humanoid game agents
Abstract
This article analyzes inverse kinematics algorithms and demonstrates the application of the chosen algorithm to the Unity game engine. It has been found that Unity inverse kinematics solvers do not offer functionality necessary to apply anatomically correct animation to a humanoid agent. A few inverse kinematics algorithms were chosen for comparison, such as Cyclic Coordinate Descent, FABRIK and triangulation; due to the support of multiple end effectors and possible optimizations, FABRIK was chosen to be implemented in the “FABRIK IK” solver. After comparing the functionality of “FABRIK IK” to Unity’s “Two Bone IK” and “Chain IK” solvers, it was found that “FABRIK IK” has more built-in functionality than “Two Bone IK” and “Chain IK” in the analyzed areas. The measurement of framerate has shown that the application of either solver has not posed a significant difference in performance on Unity (the difference in performance ranges from –8.29% to 5.89%). The visual demonstration that shows the application of “FABRIK IK” demonstrates an anatomically sound and accurate walking cycle, especially compared to “Chain IK”; the accuracy of the animation is comparable to “Two Bone IK”.
Article in Lithuanian.
Procedūrinės animacijos technologijų taikymas humanoidiniams žaidimų agentams
Santrauka
Straipsnyje analizuojami atvirkštinės kinematikos algoritmai ir pasirinkto algoritmo taikymas „Unity“ žaidimo variklyje. Pastebėta, kad „Unity“ variklio siūlomi sprendikliai neturi funkcionalumo, reikalingo atvaizduoti anatomiškai teisingą humanoidinio agento judesį. Išrinkti ir palyginti keli atvirkštinės kinematikos algoritmai, tokie kaip CCD, FABRIK, ir trianguliacijos algoritmas – dėl kelių galinių vykdymo įtaisų palaikymo ir optimizacijos būdų išrinktas algoritmas FABRIK tolesniam užduočių vykdymui ir sprendiklio „FABRIK IK“ kūrimui. Palyginus sprendiklių funkcionalumo lygį, galima teigti, kad funkcionaliai „FABRIK IK“ sprendiklis yra pranašus „Two Bone IK“ ir „Chain IK“ sprendikliams analizuotose srityse. Pamatavus našumą kadravimo dažniu, matoma, jog šių atvirkštinės kinematikos sprendiklių taikymas „Unity“ aplinkoje neišreiškia didelio skirtumo (nuo –8,29 % iki 5,89 % skirtumo). Demonstracinis ėjimo ciklas, taikantis „FABRIK IK“, veikia demonstracinėje aplinkoje ir juda anatomiškai ir fiziškai tiksliau nei ėjimo ciklas, kuriam pritaikytas „Chain IK“ sprendiklis; judėjimo anatominis tikslumas sutampa su „Two Bone IK“ implementacijos demonstracija.
Reikšminiai žodžiai: procedūrinė animacija, „Unity“ žaidimų variklis, atvirkštinės kinematikos algoritmas, sprendiklis, FABRIK, humanoidinis personažas.
Keyword : procedural animation, Unity game engine, inverse kinematics algorithm, solver, FABRIK, humanoid character
This work is licensed under a Creative Commons Attribution 4.0 International License.
References
Aristidou, A., Lasenby, J., Chrysanthou, Y., & Shamir, A. (2018). Inverse kinematics techniques in computer graphics: A survey. Computer Graphics Forum, 37(6), 35–58. https://doi.org/10.1111/cgf.13310
Aristidou, A., & Lasenby, J. (2009). Inverse Kinematics: A review of existing techniques and introduction of a new fast iterative solver. http://andreasaristidou.com/publications/papers/CUEDF-INFENG,%20TR-632.pdf
Aristidou, A., & Lasenby, J. (2011). FABRIK: A fast, iterative solver for the Inverse Kinematics problem. Graphical Models, 73(5), 243–260. https://doi.org/10.1016/j.gmod.2011.05.003
Bhatti, Z. (2019). Oscillator driven central pattern generator (CPG) system for procedural animation of quadruped locomotion. Multimedia Tools and Applications, 78(21), 30485–30502. https://doi.org/10.1007/s11042-019-7641-1
Bhatti, Z., Shah, A., Karabasi, M., & Mahesar, W. (2013). Expression driven trignometric based procedural animation of quadrupeds. In 2013 International Conference on Informatics and Creative Multimedia (pp. 104–109). IEEE. https://doi.org/10.1109/ICICM.2013.25
Erleben, K., & Andrews, S. (2019). Solving inverse kinematics using exact Hessian matrices. Computers & Graphics, 78, 1–11. https://doi.org/10.1016/j.cag.2018.10.012
Kenwright, B. (2018, December 4). Neural network in combination with a differential evolutionary training algorithm for addressing ambiguous articulated inverse kinematic problems. In SIGGRAPH Asia 2018 Technical Briefs, SA 2018 (pp. 1–4). https://doi.org/10.1145/3283254.3283262
Muller-Cajar, R., & Mukundan, R. (2007, December 5–7). Triangualation - A new algorithm for inverse kinematics. In Image and Vision Computing New Zealand (IVCNZ) 2007 Conference (pp. 181–186). http://ir.canterbury.ac.nz/handle/10092/743
Seller, M. (2019). Performing animation, animating performance. https://necs.org/node/117209
Stenlund, P. (2019). Simulating realistic ragdoll behaviour in physical situations. https://www.diva-portal.org/smash/get/diva2:1328413/FULLTEXT01.pdf
Unity Technologies. (2020). Animation rigging 1.0.3: ChainIK constraint. https://docs.unity3d.com/Packages/com.unity.animation.rigging@1.0/manual/constraints/ChainIKConstraint.html?q=chainIK
Wampler, K. (2016). Fast and reliable example-based mesh IK for stylized deformations. ACM Transactions on Graphics, 35(6), 1–12. https://doi.org/10.1145/2980179.2982433