Onoty3D

Unityに関するメモとか

IKを試してみよう! 導入編

Unity5から、Pro Onlyだった標準のIK(Inverse Kinematics)も無料で使えるようになりました。

自前でコードを書いても良いですが、とりあえずMecanim Example Scenesに含まれるIK.csを使って試してみます。

Mecanim Example Scenes


対象はいつものようにプロ生ちゃん。

利用は簡単で、適当に6つのオブジェクト(両手、両足、体、視線用)を作成し、プロ生ちゃんにセットしたIK.csのBodyObj~LookAtObjに適用させるだけです。
あとは実行後にIkActiveをチェックして、各オブジェクトを動かせば、対応する部位が連動して動きます。

f:id:onoty3d:20150316182919g:plain

f:id:onoty3d:20150316183029g:plain

注意点として、標準IKはAnimatorを利用しているので、対象モデルにAnimatorが適用されている必要があります。

また、AnimatorのContorollerに、IkPassにチェックの入ったControllerが指定されている必要があります(自分はとりあえずユニティちゃんのUnityChanARPoseを利用)。※AnimatorContorollerを開いて、BaseLayer横の歯車マークをクリックし、出てきた設定ウインドウのIKPassにチェック。

f:id:onoty3d:20150316183201p:plain

IKを使うと、既存ポーズの特定部位を動かしたい場合に、自然な感じで動かせるのでいいですね。

<追記>

ひとつ忘れていた。IKを設定する際、プロ生ちゃんモデルの目をRig/Configureの設定でLeft/Right Eyeに割り当てると視線もある程度動くっぽい?(顔全体も動くので、瞳の動きはあんまりわからない。)

f:id:onoty3d:20150316203840p:plain

f:id:onoty3d:20150316204500p:plain