Open1

【学習メモ】FinalIKとは何なのか?

hanchahancha

Overview

優良アセットと聞いてセール時に購入したはいいものの、用途が今ひとつ分からなかったFinalIKについて調べていく。初学者である自分向けのメモ。

FinalIKとは

https://assetstore.unity.com/packages/tools/animation/final-ik-14290?locale=ja-JP

Unity の最終的な Inverse Kinematics ソリューション。(公式説明より抜粋)

...Inverse Kinematicsとは?

Inverse Kinematicsとは

Inverse Kinematics(インバースキネマティックス)は、3DCGキャラクターを動かすためのスケルトン構造を制御する方法の1つ。まず先端の位置を決め、そこからそれぞれの関節の位置や動きを計算していく。

このスケルトン構造を制御する方法でIK以外にForward Kinematics(以下、FK)というものがある。FKとは、アニメーション制御に関する技術のひとつ。肩から肘、手首といったように、原点となるボーンから末端にかけて順番に角度計算を行い、最終的な姿勢を決定する方法のこと。

IKとFKについては他の方の記事で詳しくまとめられているので、こちらでは割愛。
https://techblog.sega.jp/entry/sega_inverse_kinematics202210
https://shade3d.jp/store/marketplace/articles/startanimation/vol9.html

例えば地面を歩かせようとした場合に、FKで動かす場合は、腰→足→足先と動かし、地面に接地する箇所まで伸ばして姿勢を調整するという流れになるため「足を地面に接地させる」という目的を実現させるために手間がかかる。それに対し、IKはまず足先を地面に接地させてから逆算的に腰や足の姿勢を調整するので「足を地面に接地させる」目的を確実に実現させてから、ちょうどいい姿勢に調整してくれるというもの。

つまり、FinalIKとは何?

参考にさせていただいた記事
https://orotiyamatano.hatenablog.com/entry/FinalIK
Unity標準でもIKは用意されているが、上記の記事にある通りFinalIKの方がよりゲーム開発やVR開発で活用しやすい内容が揃っている...らしい。

一人称視点でモデルを動かすは、XRトレーニング系のアプリケーションで必要としそうな内容なので実践してみる。
https://qiita.com/szgk/items/f90fa74683bd010cefc0
https://qiita.com/Miicoco/items/a3e10cd50d10883aa50b

今回調べる上で参考にした動画
https://www.youtube.com/watch?v=cZGcoT4o5vE