デュアルIKと上方(アップ)ベクトルの使い方
https://www.youtube.com/watch?v=bP-uDrzt0kA
今回はショベルカーのアームやピストンといった動きを表現するのに便利に使用できるデュアルIKと上方(アップ)ベクトルの使用法について、解説していきます。
サンプルとなるシーンには赤・青・緑の矢印、そして黄色いボールの順番で親子関係がつけられています。この状態で全ての親に当たる赤い矢印を回転させてみると、その動きに合わせて子アイテムである青・緑の矢印と黄色いボールが動いているのが確認できます。このように通常は親の動きを子供が継承するようになりますが、この仕組みをフォワードキネマティクス(FK)といいます。ちょうど、人間の体で言うと、肩が動くと二の腕から肘の先、手首までが一緒に動いていくような感じです。
ですが逆にボールを動かすことで、階層をさかのぼって動かしたい場合があります。ちょうど手首が動くことで、ひじや二の腕、肩が動くような感じです。この場合には、ボールから緑、そして青の矢印まで逆に動くことになりますが、この仕組みを先ほどとは逆、インバースキネマティクス(IK)といいます。ではこのサンプルに対して、インバースキネマティクスを適用していきましょう。
今回使用するIKは、セットアップレイアウトのインバースキネマティクスサブタブの中のデュアル2DというカテゴリにあるIKを使用します。MODOでは他にもキャラクタアニメーションで使用するIKもありますが、今回はアームや車輪といったメッシュレイヤー同士の動きに便利に使えるデュアルIKを使用します。
デュアルIKでは逆に動かしたい部分、黄色いボールの部分から青の矢印までを選択し、IKの適用ボタンをクリックします。すると、一番上の階層にある青い矢印から、一番下の階層にある黄色いボールまで直線が描画されるようになり、黄色いボールのところには新たにIKGoalというロケータが作成されるようになりました。このゴールアイテムを動かすことで、緑・青の矢印が動くようになります。
ゴールを動かさず、静止させたままで、赤い矢印を回転させてみると、青い矢印はFKの影響により赤い矢印の影響を受けて位置が移動しますが、黄色いボールの箇所にあるゴールオブジェクトの位置が静止したままなので、IKの影響を受けた回転となります。この仕組みを利用すると、自動車のサスペンションなどの動きが簡単に作れるようになります。
このIKの動きは青・緑・黄色のアイテムの中心点を結ぶ平面上で行われることになりますが、さらに上方(アップ)ベクトルを利用することで、ひねりを加えることができます。これはちょうど手首を動かすことで肘が曲がった時に、肘の向きをコントロールするような機能になります。
IK上方ベクトルの作成ボタンをクリックすると、シーンに新たにIK_Up_Vectorというロケータが作成されます。これが向きを制御するアイテムとなります。このアイテムを動かしてみると、IK階層の一番上と一番下にある青の矢印の中心点とゴールオブジェクトを結ぶラインに対して、階層の中にある緑の中心点の位置が回転するようになるのが確認できます。
このようにデュアルIKは非常に簡単な仕組みで、インバースキネマティクスの動きを設定できますので、メカなどのリグに活用するようにしてみてください。