Inverse Kinematics(1/2)
今日は、ビデオの35番目の1/2「Inverse Kinematics – Blender 2.80 Fundamentals」。「インキネ」なんかかっこいい。
IK(Inverse Kinematics)を利用すると手足のアニメーションなどに役立つ。ビデオでは、手のモデルを例にしてIKについて説明している。なんとなく要約すると、通常の親子関係は、親を動かすと子も動く。これをForward Kinematicsという。逆に子を動かして親が動くのがIKということらしい。
このビデオは、デモ見るだけみたいな感じだが、手を動かさないと覚えないので、それっぽく作成して練習してみた。
CubeをXキーで削除して、Shift+A > Armature > Single Boneを作成。Sキーで作業しやすいように拡大した。
Edit ModeにしてBoneを選択した状態で、右クリック > Subdivideを選択して分割数を3にした。
上の3つのBoneを選択した状態でGZキーで上に移動して一番下のBoneを大きくした。
下から2番めのBoneを選択してAlt+P > Disconnect Boneで連結を解除。上の3つのBoneを選択して(ドラッグだと下のBoneのTailも選択されてしまうので、Shiftクリックで解除した)RXキーでX軸を中心に回転してGキーで位置を調整した。これでなんとなく大きいBoneが胴で小さい3つのBoneが腕のイメージになった。
Pose Modeに変更して、最先端のBoneを選択してGキーで移動してもただ、回転するだけ。
NキーでSidebarを表示させてToolタブをクリックしてAuto IKにチェックを入れる。今度は、GキーでドラッグするとParentでつながっているBoneも動くようになった。
もっと腕らしく動くようにするために、Auto IKのチェックをはずす。小さい中央のBoneを選択して、PropertiesエディタのBone Constraintタブをクリックする。Add Bone Constraint > Inverse Kinematicsを選択する。TargetをAumatureにしてBoneをBone.001(小さい左側のBone)にした。Targetを動かすと選択しているBoneが動くという意味のようだ。
ただ、このままでは、左側のBoneを選択して、Gキーでドラッグしても回転するだけ。
理由は、左側のBoneは、中央のBoneをParentとして設定されているから。(接続されている。)それを解除するためにEdit Modeに変更してAlt+P > Disconnect Boneを選択する。再びPose Modeに変更してGキーでドラッグすると、動きがとともおかしくなっている。(ドラッグしても思った位置に移動できない。)
理由は、ループしてしまっているから。左側のBoneを動かすとIKの設定のために中央のBoneが動く。中央のBoneが動くとその子である左側のBoneが動く。という永久ループになってしまう。
解決策は、Edit Modeに変更しAlt+P > Clear Parentで親子関係を断つ。(たぶん、IKのTargetになるものは、Parentしちゃいかん!といいたかったんだと思う。)そして、Pose Modeに変更して、左側のBoneを選択してGキーで移動させると動くことは、動くが作成したBone全体が動いてしまう。
中央のBoneを選択してBone Constraintタブを確認するとChain Lengthの値が0になっている。0だとParent関係のあるBoneの最初と結びついてしまうようだ。今回は、右のBoneと結びついてほしいので、2に変更する。(どこと結びついているか確認したいときは、Wireframeに変更すると黄色い点線で表示される。)
左のBone選択すると最初のAuto-IKとほぼ同じ動作になる。
ただ、左のBoneをより左にドラッグするとロケットパンチのように左のBoneが離れてしまう。(ビデオでは、BoneをMeshとParentしているので、腕が伸びてしまい人間の動きでなくなってしまう。)
左のBone(手)をTargetと設定すると不都合があることがわかった。Edit Modeに戻って左のBoneを選択、中央のBoneをShiftクリックで追加選択してCtrl+P > Connectedする。
左のBoneを選択して、Shift+Dで複製を作成し、Sキーで少し大きくした。そして、Alt+P > Clear ParentでParentを解除する。
Boneタブに切り替えて、このBoneの名前をIK-Targetにした。(ほんとは、すべてのBoneに名前をつけておくと後でわかりやすい。)
Pose Modeに変更して、中央のBoneを選択する。Bone Constraintタブを選択して、TargetのBoneをIK-Targetに設定する。これで、IK-TargetのBoneを選択して、Gキーでドラッグすると腕のように動くようになる。
次回は、ビデオの7:00から。