IKを試してみよう! 導入編
Unity5から、Pro Onlyだった標準のIK(Inverse Kinematics)も無料で使えるようになりました。
自前でコードを書いても良いですが、とりあえずMecanim Example Scenesに含まれるIK.csを使って試してみます。
対象はいつものようにプロ生ちゃん。
利用は簡単で、適当に6つのオブジェクト(両手、両足、体、視線用)を作成し、プロ生ちゃんにセットしたIK.csのBodyObj~LookAtObjに適用させるだけです。
あとは実行後にIkActiveをチェックして、各オブジェクトを動かせば、対応する部位が連動して動きます。
注意点として、標準IKはAnimatorを利用しているので、対象モデルにAnimatorが適用されている必要があります。
また、AnimatorのContorollerに、IkPassにチェックの入ったControllerが指定されている必要があります(自分はとりあえずユニティちゃんのUnityChanARPoseを利用)。※AnimatorContorollerを開いて、BaseLayer横の歯車マークをクリックし、出てきた設定ウインドウのIKPassにチェック。
IKを使うと、既存ポーズの特定部位を動かしたい場合に、自然な感じで動かせるのでいいですね。
<追記>
ひとつ忘れていた。IKを設定する際、プロ生ちゃんモデルの目をRig/Configureの設定でLeft/Right Eyeに割り当てると視線もある程度動くっぽい?(顔全体も動くので、瞳の動きはあんまりわからない。)