前の記事の『インバースキネマティクス(IK)で骨格を簡単に動かす(その3)』からの続きです。 引き続き、インバースキネマティクスの使用例を紹介します。
まだやっておきたい作業が3つあります。 1つ目は足制御用ボーンで足のボーンの傾きを調整できるようにすること、2つ目は制御用ボーンの形状をボーン以外の形状にすること、3つ目は右側用の制御用ボーンも作成することです。
まずは、足制御用ボーンで足のボーンの傾きを調整する設定から行いましょう。 具体的には、足のボーンが足制御用ボーンの子となるように親子関係を築きます。
キーボードのテンキーの3を押して視点を側面図の位置へ移動します。
上図のように視点を側面図の位置へ移動します。
では、足のボーンと足制御用ボーンの間に親子関係を築きます。 作業はエディットモードで実施します。 エディットモードに切り替えて、まずは子となる足のボーンを選択します。
上図のようにエディットモードで足のボーンを選択します。 次に、親となる足制御用ボーンを追加選択します。
上図のように足制御用ボーンを追加選択します。 これで親子関係を構築する準備ができましたので、キーボードのCTRL+Pを押します。
上図のように "Make Parent" というタイトルのメニューが表示されますので、"Keep Offset" を実行します。
では、足制御用ボーンで足のボーンの傾きを調整できることを確認しましょう。 ポーズモードへ切り替えて、足制御用ボーンを選択してください。
上図のように足制御用ボーンを選択します。 では、このボーンを先端を持ち上げるように傾けてみましょう。
上図のように足先が下がります。 足制御用ボーンと足のボーンが連動していることがわかります。 では、CTRL+Zを押して足制御用ボーンの回転を戻してください。
では続いて、足制御用ボーンを上に移動させてみてください。 すでにテストしましたが、再度動かしてみましょう。
上図のように大腿が持ち上がります。 ただし、1回目のテストの時とは結果が違います。 1回目のテストでは足先がダラリと下がっていましたが、今回は足のボーンは傾いていません。
足のボーンが傾いていないのは、足制御用ボーンと連動させたからです。 足のボーンと足制御用ボーンの間に "Keep Offset" による親子関係を築いた結果です。
では、CTRL+Zを押して足制御用ボーンの位置を戻してください。
では次に、足制御用ボーンを下に移動させてみてください。
上図のように足のボーンが下腿のボーンから離れ、脚が不自然に伸びてしまっています。 足のボーンが下腿のボーンから離れたのも、"Keep Offset" による親子関係を築いた影響です。
では、CTRL+Zを押して膝制御用ボーンの位置を戻してください。
"Keep Offset" による親子関係を築く前は、足のボーンは下腿のボーンの子でした。 しかし今では、足のボーンは足制御用ボーンの子です。 そのため、下腿のボーンから離れてしまうのです。
足制御用ボーンと足のボーンとの間の親子関係を解除するわけにはいきません。 それ以外の方法で、足のボーンと下腿のボーンをくっつけましょう。
今回は、位置コピーのボーン制約でこの問題を解決しましょう。 足のボーンの位置が、常に下腿のボーンからコピーされるようにします。 まずは対象のボーン、つまり足のボーンを選択します。
上図のように足のボーンを選択します。 では、このボーンに位置コピーのボーン制約を追加しましょう。
上図のようにPropertiesのBone Constraint PropertiesタブにあるAdd Bone Constraintをクリックします。
上図のようにボーン制約の一覧が表示されますので、一覧から "Copy Location" を選択します。
これで位置コピーのボーン制約が追加されました。 続けて、追加した位置コピーのボーン制約の設定を行います。
上図のように追加したボーン制約の設定項目のTargetに "Armature" を、Boneに "LowerLeg_L" を設定します。
これにより、下腿のボーンの位置が常に足のボーンにコピーされるようになりました。 では、結果を見てみましょう。
上図のように下腿のボーンの根本から足のボーンが生えています。 これではダメですので調整が必要です。
では、位置コピーの設定を変更しましょう。
上図のようにHead/Tailを 1.0 に変更します。 どう変化するでしょうか。
上図のように期待通りに下腿のボーンの先端から足のボーンが出ています。
Head/Tailは、コピー元のボーンのどの位置をコピーするかを指定します。 この値が 0.0 だとボーンの根本の位置が、1.0 だとボーンの先端の位置がコピーされます。 今回は 1.0 に変更しましたので、下腿のボーンの先端の位置がコピーされるようになりました。
では、足制御用ボーンを下に移動させてみてください。 今度は足のボーンは下腿のボーンから離れないはずです。
上図のように足のボーンは下腿のボーンから離れなくなりました。 これで制御用ボーンの動作には問題はなくなりました。
では、CTRL+Zを押して膝制御用ボーンの位置を戻してください。
インバースキネマティクスの機能だけでは使い勝手が悪いこともあるでしょう。 その場合は、制御用ボーンと通常のボーンの間に "Keep Offset" の親子関係を構築して連動させましょう。 例えば、足制御用ボーンと足のボーンを連動させるなどします。
ただし、制御用ボーンと親子関係を構築すると本来の親との関係がなくなってしまい、関節が離れてしまうことがあります。 そのような場合は、位置コピーのボーン制約などを利用して問題を調整しましょう。