Final IKは、Unityで開発している人なら一度は聞いたことがあるのではないでしょうか?
IKはなんか重要そうな感じもするし、使えるなら使いたいと思っている人も多いのではないかと思います。私もそんな一人でした。
そこでFinal IKを使ってみようとしたら、IKの種類も多いし、何からどう手をつけたらいいのかわからんと思ったので、そんな私にこのページがあったらよかったとになと思って作った記事です。
0. はじめに
今回はFinal IKの基本的な設定を知って、歩きながらデコボコの地面に足をつける、目でターゲットを追う、どの向きからでもボタンを押す、銃口を常にターゲットに向ける、みたいなことを表現できる 入り口 に立つことを目標としています。
とりあえずどんなことができるか知りたい
長くなったので以下にリンクをまとめました。
- 腕をものに連動させて動かす
- 角棒で叩くAnimation ClipをIKで動く物体に合わせる
- マウスで選択されたところをヒットエフェクトでのけぞりさせる
- 4足ロボットがぼこぼこの地面にIKで足を付けて歩く
- 眼球動くLookAt
本記事の流れ
- 共通の話。ここではIKの詳細に入る前に、FinalIKの各IKに対して使える共通的な見方を説明しています。
- Limb IK。比較的簡単なIKで、設定項目が少なくわかりやすいです。手をある位置にもっていきたいとか、何かに追随して動かしたいとか、そういうときに使えます。
- Aim IK。こちらも比較的簡単なIKです。Limb IKと異なり、IKで位置固定するのではなく、Animation Clipなどと併用して使うことで目標に対して調和しているように見せるIKです。
パンチアニメーションだけだと動く目標物は捉えられないと思いますが、Aim IKで体の軸を回転させて、動く目標物を狙ってパンチしているように見せたりすることができます。 - Full Body Biped IK。フルボディ用のIKです。体全体のバランスが取れるようになっていたりするので、当然できることも多くなり、より自然な感じになります。
- その他諸々。他のIKやIKをフォローするような機能もあるので、サンプルと合わせて、いくつか簡単に紹介します。
前提
- Unity 6000.0.58f2
- Final IK v2.4
1. 共通の話
IKの詳細に入る前に、FinalIKの各IKに対して使える共通的な見方を説明しておきます。Sceneで何が見えるかを知っておけば、どういうIKなのかある程度推測できます。
IKのあるGameObjectをHierarchy上で選択した上で、Playしていると①、②が表示されます。③はプレイすると表示されるものと、プレイしなくても表示されるものとあり、IKなどによって異なります。
-
IKの種類がわかります(①)。IKによって色や形が異なります
-
IKによって設定されているボーンとそれらのつながりが、赤い丸ポチとつながっている線で表現されています(②)。IKによって色が異なります
-
IKのターゲットになっているものと各ボーンとの関係がわかります(③)。IKによって実行しないと表示されないものもあります
補足
ScriptとしてAimSwing(④)がアタッチされているのが上の画像からわかると思います。これはIKではないのですが、Final IKのサンプルでは多くのものが、IK以外にもこのようなScriptがついています。何かを実現しようとしたときにIKだけではできないことが多いので、こういったScriptで実現していると思うのですが、IKと似た名前のことも多いので、混乱しやすいです。サンプルを見るときにはIKをフォローするスクリプトであることを念頭に置いて確認されるとよいかと思います。
2. Limb IK
四肢のためのIKです。他のIKと比較するとシンプルな構成になるので、設定項目も少なくわかりやすいです。
例えば自転車のペダルに合わせて足を動かしたいみたいなときに使えるIKです。
こんなことができます
黄色の球の位置に手の位置を合わせます。最初にPosition Weightを0から1に変えていくことで、初期の姿勢から黄色の球の位置までIKとして位置を合わせます。その後は黄色の球の動きに合わせて、各関節も破綻しないようにIKによって動かされます。

使い方
上記動画のように左手がボールを追随するようにするための使い方です。
-
Limb IKを追加します。
-
三箇所のBoneを設定します(①)。これがIK対象となるボーンです。
-
Targetを設定します(②)。これに対してボーンが調整されます。
-
Position Weightを1に設定します(③)。最終的なIKの調整のための比率です。(本画像ではプレイ後に1にするために、0に設定してあります)
-
Avatar IK GoalをLeft Handに選択します(④)
補足
右手や両足などの場合は、上記使い方の1、4のところを該当の内容に変更すれば良いです。
またLimb IKは複数設定することもできるので、全四肢に設定したりすることもできます。上の例であげた自転車のペダルの場合、このLimb IKを両脚に一つずつ設定することになるでしょう。
3. Aim IK
ターゲットに向かせるためのIKです。Limb IKは完全にそこぴったり一致するところまで行こうとしますが、こちらのIKは腰や背骨などを設定し、体を捻ってターゲットの方に向かせます。
例えば銃口を構えるアニメーションを再生している状態で、このIKで体を捻ってターゲットに方に向かせたりすときに使えるIKです。
こんなことができます
AnimationClipを単純に再生するだけでは動的なものに当てることはできませんが、Aim IKでターゲットを設定することで表現することができます。スウィングするアニメーションで、動く黄色の球を青い角材で叩きます。
使い方
基本的なところはLimb IKと同じです。
-
Aim IKを追加して、Limb IKと同様にBones、Targetを設定します。(画像での補足は割愛)
-
Aim Transformを設定します(①)。
-
Bonesの各ボーンのWeightを調整します(②)。この値はプレイしてアニメーションを見ながら、黄色の球を動かしながら設定していけばいいかと思います。
4. Full Body Biped IK
全身用のIKです。Limb IKやAim IKは体の一部でしたが、こちらは体全体でバランスを取ってくれます。
例えば肩を押されたときに肩だけ下がるのではなく、その押された影響を体全体で表現するようなヒットエフェクトにできます。
FBB IKと頭文字だけで表現されているところもあります。基本的にこの記事でもFBB IKと記載しています。
こんなことができます
何かが当たった風のヒットエフェクトです。正確にはFBB IKだけで実現しているわけではなく、ScriptからFBB IKを使用して実現されています。
頭、手、胸、腰を順に選択して、それぞれ何かが当たって後ろに下がる動きを表現しています。
使い方
- Full Body Biped IKを追加します
- このときReferences(①)はLimb IK、Aim IKと異なり自動で設定してくれます
- Eyes、足りていないSpine(②)、他にもたくさんの設定値がありますが、この辺は必要に応じて設定してくことになります。
ヒットエフェクトであればスクリプト、足を地面につけて歩きたいとかであればここにGrounder IKなどを追加していくことになります。
設定項目が少ないわけではなく、やれることが多いため、これ以上の項目はやりたいことに合わせて設定する必要があり、ここでの説明は割愛さえてもらっています。
5. その他諸々
サンプル
FinalIKはサンプルをたくさん用意してくれています。シーンを紹介しようとすると多すぎて紹介できないので、フォルダ単位(Assets/Plugins/RootMotion/FinalIK/_DEMOS配下)のおおまかなところで紹介します。
| フォルダ名 | 概要 |
|---|---|
| Aim IK | 上記参照 |
| Baker | 未確認です。 |
| Biped IK | フルボディ用のIK。FBB IKのほうが新しいのでそちらを使えばよく、後方互換用として残されています。 |
| CCD IK | 多関節用のIK。FARB IKと比較して軽量。 |
| FABRIK | 多関節用のIK。CCD IKと比較して高品質。 |
| FBBIK | 上記参照 |
| Finger Rig | Limb IKのリゾルバを使用して、指をIKで動かしているサンプルです。 |
| Grounder | Grounder FBB IK、Grounder IK(下に動画あります)。二足歩行のキャラクターはFBB IK、多足の動物やロボットはLimb IKを使って、歩いたりする際に、地面に設置するよるIKを設定できるようになっています。 |
| Leg IK | 脚用のIKのようですが、古いもので後方互換ように残されているみたいです。精度が高くないのか、サンプルの動きも今ひとつでした。 |
| Limb IK | 上記参照 |
| Look At IK | 目も追随させることができるIKです。下に動画があります。 |
| Rotation Limits | IKする際に曲げる角度や軸を制限できる機能です。 |
| VRIK | 未確認です。 |
Grounder IK + Limb IK
デコボコの地面を多足ロボットが歩くときに、Limb IKを設定しつつ、それを利用したGrounder IKで地面にきちんと足がつくようになっているものです。

LookAtIK
所感
ある動きをさせるときに、違和感をなくしたい、より自然に見せたい、さらにパフォーマンスよくとか、簡単に実装したいとか、そういうことを考えたこのFinal IKを思い出して使えたらと思っています。
そして、この記事が皆様のIKライフに一役買えたら幸いです。






