SpineでIK (Inverse Kinematics)を使って自然なアニメーションの手助けに
本章では、SpineでIKの作り方について共有します。
IKの概念について
IKとは
IKは、ある動作で発生するボーンの移動や回転に必要な移動量や回転量を、ソフトウェア側で自動計算し補間する概念です。例えば、腕振りの動作について、どのようにIKを採用できるか確認してみます。上腕・前腕のボーンに対してIKを採用すると、腕振り開始点と終了点の位置を決めるだけで、上腕・前腕・手のアニメーションに必要な移動・回転を計算し反映され、滑らかな動きが作成されます。
IKを使うことによる利点
IKには、以下のような利点があります。
- アニメーション間の自動補間
- 接地面におけるアニメーションの作成
IKの設定・力の流れ方
IKを設定する流れは、「根本から先へ」とボーンを順に指定し、動きの指針となる「IK制約オブジェクト」を設定することで完了します。また力の伝わり方については、IKを設定した順と逆に、「先から根本へ」と力が伝わります。仮にIKを「上腕→前腕→手」といった順で設定すると、「手→前腕→上腕」へと力が伝わります。
なおSpineでは、ボーン2つまでIKを設定することができます。
IKとFK
Mayaなどの一般的な3DCGソフトウェアには、IKの他にFKという概念があります。
※Spineでは、IKのみ設定が可能です。
IKは、「直線的な動き」を演出するに対して、FKでは「回転の動き」を演出できます。IKとFKの違いについては以下の通りです。
IK | FK | |
---|---|---|
利点 | 一定の位置での停止が可能 | フリップの発生が少ない |
直線的なアニメーションの作成が容易 | 親の動きに同期して自然なアニメーションの作成が容易 | |
欠点 | フリップの発生頻度が多い | world座標で指定した位置への移動が困難 |
親の動きと連動したアニメーションの作成が困難 | アニメーション中の一時停止が困難 |
本来は、IKとFKを組み合わせることで、お互いの欠点を埋め合い、非常に滑らかで正しい動きを作成できます。Spineでは、IKのみであるため、アニメーションさせるキーの数を増やすなどで対応しましょう。
それでは、SpineでIKの作り方について解説します。
SpineでのIKの作り方
以下の手順でIK制約を追加します。
- IKを設定するボーンを2つまで指定します
- 「Constraints」を選択します
- 「New IK Constraint」を選択します
- IK制約オブジェクトの名前を入力します
- オブジェクトの配置先を指定します
Spineでは、IKの対象となるボーンが2つまでのみ指定できます。そのため、以下のように「上腕・前腕」と「手」に対するIK制約オブジェクトを2つに分けて配置することで、自然な腕振りのアニメーションを作ることができます。
総括
IKを利用することで、アニメーションの作成工数は大きく減らすことができます。特に、地面といった設置型オブジェクトがある場合、衝突時のアニメーションの再現で役立ちます。作成コストも少ないため、是非ご利用頂けたらと思います。