Share:


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

How to Cite
Builisova, K. (2023). Procedural animation technology application for humanoid game agents. Mokslas – Lietuvos Ateitis / Science – Future of Lithuania, 15. https://doi.org/10.3846/mla.2023.19216
Published in Issue
Jul 14, 2023
Abstract Views
472
PDF Downloads
368
Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

References

Aliaga, D. G., Demir, I., Benes, B., & Wand, M. (2016, July 24). Inverse procedural modeling of 3D models for virtual worlds. In ACM SIGGRAPH 2016 Courses. https://doi.org/10.1145/2897826.2927323

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