スケルトンを手先や足先から動かすIKハンドルの設定方法を説明する。
英語インターフェース版はこちらをご覧ください。
Maya チュートリアル:キャラクターセットアップ その③:IKハンドル
キャラクターのモデリングデータにジョイントを設定し、バインドしてスキンウェイトを
調整したら、ジョイントにキーを設定していけば、アニメーションを作ることができる。
ただ、例えば、キャラクターがボールを掴む動作をするとき、上半身から、肩、ひじ、手首の
各
ジョイントを回転させて、手のひらをボールの位置に持っていっても、"親"のジョイントの
角度を変えると、手はボールから離れてしまい、再度、各ジョイントの角度調整が必要になる。
そこで、ジョイントの"子"からジョイントを制御するためにIK(インバース・キネマティクス)ハンドル
を設定する。
■IKハンドルの設定
スケルトン > IK ハンドル ツール で
肩のジョイント→手首のジョイントの順にクリックする。
IKハンドルが作られ、移動ツールで動かすことができる。
アウトライナでは上図のようなアイコンで表示されている。
IKハンドルを両手、両足に設定する。
IKハンドルを選択して、(マピュレータの表示ツール)をクリックすると、
上図のように、肩にポールベクター、手首にツイストディスクが表示される。
ポールベクターは移動ツールで、ツイストディスクは直接クリックして、動かすことができる。
両方とも、腕ならひじの方向、足ならひざの方向を制御するのに使う。
(ポールベクターは選択しやすいところまでドラッグして引っ張ればよい)
あとはIKハンドルにキーフレームを設定していけば、アニメーションができあがる。
■優先回転角の設定
IKハンドルを設定したとき、ジョイントが意図しない角度に曲がることがある。
(ジョイントをバインドする前に、あらかじめ角度がついてると起こらない)
このときは、ジョイントを曲げたい方向に曲げておき、
スケルトン > 優先回転角に設定する を行なってから
IKハンドルを設定する。
■
IKハンドルとジョイントのツリー構造
上図のようにIKハンドルとジョイントに"親子"関係がないツリー構造で、
腕、足のIKハンドルにキーフレームを(1ヶ所)打ち、bodyRoot(ルートジョイント)に
キーフレームを打つと上図のように、bodyRootと腕、足が連動しないアニメーションが出来る。
腕のIKハンドルをbodyRootの"子"にすると、足は連動せず、
腕は連動するアニメーションになる。
歩行、走行といった、足が接地している状態のあるアニメーションは、
足のIKハンドルはルートジョイントの"子"にしないほうがアニメーションを設定しやすいだろう。
逆に、飛び上がって1回転するといったアニメーションでは、ルートジョイントの"子"にした方が、
アニメーションはつけやすいだろう。
腕の場合は一般的にルートジョイントの"子"したほうがアニメーションはつけやすいだろう。
いずれにしても、 IKハンドルとジョイントの"親子"関係は、
設定するアニメーションによって検討する必要がある。
■IKスプラインハンドル
例えば、しっぽのようにジョイントが数多くつながって動くような場合、
IKスプラインハンドルを設定する。
スケルトン > IK スプライン ハンドル ツール でジョイントの始めと終わりをクリックすると、
上図のように、IKハンドルとともに、Nurbsカーブが作られる。
このNurbsカーブのCVを動かすと、カーブにそって、ジョイントが動く。
初期設定では、Nurbsカーブのスパンが1になっているので、必要なら
スケルトン > IK スプライン ハンドル ツール でスパン数を変更する。
また、
Nurbsカーブを自動生成せず、別に作ったNurbsカーブでIKスプラインハンドルを
制御することができる。
Nurbsカーブを作り
スケルトン > IK スプライン ハンドル ツール でカーブの自動作成のチェックをはずし、
ジョイントの始め→終わり→Nurbsカーブの順で選択する。
English article
Maya tutorials:character setup (3): IK handle