MayaでFKとIKのマッチング(位置合わせ)方法 part1)

MayaでRigging

前回の記事(MayaでFKとIKブレンド(切り替え)方法)の続きとして、FKとIKのマッチング(位置合わせ)について解説します。前回の記事で作成したシーンを使用します。よって前回の記事をご覧になっていない方はまずはそちらを御覧ください。

MayaでFKとIKブレンド(切り替え)方法
MayaでFKとIKのブレンド(切り替え)方法を解説します。ブレンドと切り替えについては人それぞれ好みがあると思います。私は補間してくれるブレンドは嫌いではありませんが、キーを沢山打たなくてはならないアニメーターとしては数値をいれてキーを...

FKとIKのマッチングというとなにか特別な高等テクニックを使っているように思われるかもしれませんが、実は手作業でも可能です。しかし、手作業の場合は手間がかかったり、ミスも生じるのでスクリプトを使うことになります。

MayaでRiggingというシリーズの記事では知っておくべき基礎的な内容の記事も過去に執筆しています。ぜひこれらの過去記事も参考にしてください。

MayaでRigging(Basic編)
「MayaでRigging」このシリーズではMayaでのリギングについて書きます。リギングといっても様々なレベルがあり、人によって認識がバラバラです。「リグなんてものは簡単だ」という人もいれば、「リグはとても難しい」という人もいます。これ...
ジンバルロックとRotate Order
MayaでRiggingのjoint orient(ジョイントの方向づけ)の項目を書いていましたが、その前にジンバルロックとRotate Order(回転順序)の説明必要だと気づいたのでこちらの記事を先にあげます。ジンバルロックを...
MayaでRigging(joint orient編)
今回はjoint orient編です。キャラクターをバインドする前にjointをきれいな状態にしなければなりません。そうしないと後々やっかいなこと(問題ない場合もあるのでリガーがいない現場によってはこのようなことを考慮しないところも‥)に...
スポンサーリンク

FKをIKにマッチングする方法

まずはFKをIKにマッチングする方法から考えてみます。

真ん中のブレンドされるjointは邪魔なのでHide(非表示)にします。

「L_upperArm_fk_Jnt」(FKのルートの根本の黄色いサークル)を選択し、次に「L_upperArm_ik_Jnt」(IKのルートのjoint)を選択し、Modify > Match Transformations > Match Rotation で角度をあわせます。

肘のjointと手首のjointも同様にMatch Rotationします。

FKをIKにマッチングする方法は「IKのjointにFKのjointの回転を合わせれば良い」だけです。

IKをFKにマッチングする

次はIKをFKにマッチングする方法です。

ブレンドするjointを非表示にしたところからスタートします。

「L_hand_ik_Ctrl」(手のIKのコントローラー)を選択し、次に「L_hand_fk_Jnt」(手のFKのサークル)を選択し、 Modify > Match Transformations > Match Translation で位置をあわせます。

Modify > Match Transformations > Match Rotation で角度をあわせます。

「L_arm_vector」(腕のベクターコントローラー)を選択し、次に「L_elbow_fk_Jnt」(FKの肘のjoint)を選択して、 Modify > Match Transformations > Match Translation で位置をあわせます。

しかし、肘とベクターコントローラーが同じ位置というのはあまり好ましくありません。

そこですべてのjointが同じスタート位置にあるときに「L_upperArm_fk_Jnt」(上腕のjoint)の子にロケーターを配置して、そのロケーターを「L_arm_vector」(ベクターコントローラー)とMatch Translation等で位置合わせします。間違って動いてしまうといけないのでVisibility以外はすべてLock and Hide Selectedしてしまいましょう(誤って選択しないように非表示が好ましいですが、説明のために表示しています)。

このロケーターにMatch Translationすれば上の画像のように肘から離れて配置することが出来ます。

IKをFKにマッチングする方法は「FKの手首のjointにIKのコントローラーの位置と回転を合わせ、次にベクターコントローラーの位置を合わせる」だけです。

MELで実践

それではMELを使った場合です。

FKをIKにマッチングする場合

matchTransform -rot L_upperArm_fk_Jnt L_upperArm_ik_Jnt;
matchTransform -rot L_elbow_fk_Jnt L_elbow_ik_Jnt;
matchTransform -rot L_hand_fk_Jnt L_hand_ik_Jnt;

IKをFKにマッチングする場合

matchTransform -pos L_hand_ik_Ctrl L_hand_fk_Jnt;
matchTransform -rot L_hand_ik_Ctrl L_hand_fk_Jnt;
matchTransform -pos L_arm_vector fk_vector_Loc;

上でやった手順をMELにしただけです。

これらをシェルフにいれるなどすれば作業効率はあがるでしょう。

ぼんやりとした不安

芥川龍之介ではありませんが、ここでぼんやりとした不安が頭をよぎります。

実はこのmatchTransformを使うと数値が微妙にずれてしまったりします。

私はリグが専門ではないのでこれで良いのかは少し不安です。

ですので、次回はちょっと面倒ですが、昔からあるxformコマンドを使った方法を解説します。

今回はFKとIKのマッチング(位置合わせ)はどうやっているのかがわかればそれで良いと思っています。

MayaでFKとIKのマッチング(位置合わせ)方法 part2 (xformコマンド版)
MayaでFKとIKのマッチング(位置合わせ)方法のpart2です。FKとIKのマッチングの前にFKとIKのブレンド(切り替え)の記事を読んでいることを前提としています。まだ読まれていない方は最初にそちらをお読みください。...

Follow me!

コメント

PAGE TOP
タイトルとURLをコピーしました