YAMADA TAISHI’s diary

ゲームについてとか私の日記とか。このブログのあらゆるコードは好きにどうぞ。利用規約があるものは記事内のGitHubのRepositoryのリンクで貼られていると思うので、そちらを参照ください。

【Unity】アセットFinalIKって結局何ができるの?

こんにちは、やまだたいし( やまだ たいし (@OrotiYamatano) / Twitter )です。
むかーしにFinalIKというアセットを買ったのですが、ずっと積んでいたので今回はアセット紹介です。

目次


そもそもFinalIKってどんな商品?


assetstore.unity.com

いい感じのIKです。
IKとはInverse kinematicsの略です。
無理やり日本語で表すと逆運動学です。
まぁ3Dモデリングにおいては3DCGキャラクターを動かすためのスケルトン構造を制御する方法の1つ程度の理解でOKです。

ジョイントの位置に対して自動的に角度とかを決定してくれるもの程度に理解しておいてもらえればと思います。

で、その中でUnityのFinalIKとはかつてUnity界隈では様々なVRのアセット戦争がありました。
それぞれの開発者が独自のIKを作りました。
ソレもそのはずでUnityでVRの開発が簡単でしたOculusのDK(デベロッパーキット)を買うとUnityのProライセンスが一緒についてくると言った時代もあったようです。
また、Kinectの開発も行いやすく、人のトラッキングVR、ARにおいて無くてはならないのがIKなのです。

VR黎明期、様々なIKがあったなか生き残ったのがFinalIKというわけです。
もちろん各用途に応じて近年は開発をしている会社も今は少なくないと思います。

とはいえ、このFinalIK、VRIK以外にも機能が入っています。
今回は簡単に一緒に中身を見ていきましょう。

全部で16種類の機能


基礎的なIKは数種類だとは思うのですが、
そこから実際の実装例としてDemoが13種類ほどあります。
(Demoがないコンポーネントもある)

1. Aim IK


AimIKソルバーは、CCDアルゴリズムの変更であり、階層の骨を回転させて、その階層の子Transformがターゲットを目指すようにするらしい……。

言葉じゃ分かりづらいのでgifです。

↓こういう銃のDEMOもあります

2. Biped IK


標準的な二足キャラクター向けのIKシステムで、Unityの組み込みキャラクターIKセットアップの動作を複製し、強化するように設計されています。
とあります。

よくわかりませんが、要はアニメーターで変なアニメーション例えば首の骨が折れたようなアニメーションが出来ないように補助してくれるもののようです。

まぁこれはUnity標準のAnimatiorIKも進化してきているので目立った機能には見えないですね。

3. CCD IK


よくわからないですが、紐みたいなIKですね?

DDCとはCyclic-Coordinate-Descent
階層構造の各関節を一つずつ動かし、目標に向かってエフェクタ(アームの先端部分)を動かす方法らしい。

ロボットとか動かすのに向いてそう

www.youtube.com

4. FABRIK


CCDIKと似ています。

どうやらFABRIKとCCDIKはどちらも多関節アームで
違いはBoneの計算方法が違うらしいです。

FABRIKの方が良さそう?

qiita.com

5. FABRIK Root


FABRIK をつなぐ機能みたいです。

6. Full Body Biped IK(FBBIK)


日本語訳すると全身二足歩行IKという名前……

ヒューマノイドキャラクターの全身をIKで制御するためのコンポーネントらしい。
ヒューマノイドをFKではなくIK制御するためのコンポーネント程度の理解で良さそう。

7. Limb IK


リムIK。
連結された2本の骨の先端位置が与えられた目標位置に到達するように、2本それぞれの骨の姿勢を同時に決定するIK処理。

8. Trigonometric IK


余弦の法則に基づいて 3 セグメントのボーン階層を解決する最も基本的な IK ソルバー。
超基礎的なIK処理が基礎的な挙動だからか、Demoすらない。

9. Interaction System


FullBodyBipedIKで作られていることを前提に、
インタラクション、もとい相互作用的に色々できる様になるコンポーネントらしいです。

主にドアノブを掴むとかボタンを押すとかものを持つとか。

10. Grounder


俗に言うFootIK。
犬とかロボとか人間とか関係なくできるっぽい。

11. Rotation Limits


回転制限をつけるものみたいです。
肘など関節が反対方向に曲がってしまう問題などの対処に使えそうです。

12.Baker


モーションキャプチャなどアニメーション クリップの内容を記録してくれる。

youtu.be

13. VRIK


VR アバターのアニメーション化専用の高速全身ソルバーです。

まぁ英語だけどこの記事見るのが早そう。

root-motion.com

14. Look At IK


任意のキャラクタまたは他のボーン階層で使用して、ボーンのセットを回転してターゲットに面することができる。
いわゆる任意のボーンをターゲットの方向に向かせるようにする機能。

キャラクターがカメラの方向に顔を傾けてたりしてくれるやつ。

15. Arm IK


VRIK の 4 関節二足歩行アーム ソルバーのラッパー コンポーネントらしい
腕の動き自体を制御するもの。
ドアノブを掴むとか。
Interaction Systemと似てる部分もあるがInteraction Systemは総括的なシステム。

16. LegIK


VRIK の 4 関節二足歩行ソルバーのラッパー コンポーネントらしい
FootIKといえばGrounderにも使われてそうだが、多分Grounderは設置判定に対する総括的な機能で、LegIKは足だけの機能。

おわり


意外と拡張性が高く、開発者として勉強になるアセットです。
ここでIKの作り方について理解できれば、今後別のゲームエンジンでも利用可能だと思うので一度参考に買ってみるのも有りなアセットだと思いました。

以上、やまだたいしでした。