スケルトンを手先や足先から動かすIKハンドルの設定方法を説明する。
日本語インターフェース版はこちらをご覧ください。
Maya チュートリアル[日本語]:キャラクターセットアップ その③:IKハンドル
キャラクターのモデリングデータにジョイントを設定し、バインドしてスキンウェイトを
調整したら、ジョイントにキーを設定していけば、アニメーションを作ることができる。
ただ、例えば、キャラクターがボールを掴む動作をするとき、上半身から、肩、ひじ、手首の
各
ジョイントを回転させて、手のひらをボールの位置に持っていっても、"親"のジョイントの
角度を変えると、手はボールから離れてしまい、再度、各ジョイントの角度調整が必要になる。
そこで、ジョイントの"子"からジョイントを制御するためにIK(インバース・キネマティクス)ハンドル
を設定する。
■IKハンドルの設定
Skeleton > IK Handle Tool で
肩のジョイント→手首のジョイントの順にクリックする。
IKハンドルが作られ、Moveツールで動かすことができる。
Outlinerでは上図のようなアイコンで表示されている。
IKハンドルを両手、両足に設定する。
IKハンドルを選択して、(Show Manipulator Tool)をクリックすると、
上図のように、肩にポールベクター、手首にツイストディスクが表示される。
ポールベクターはMoveツールで、ツイストディスクは直接クリックして、動かすことができる。
両方とも、腕ならひじの方向、足ならひざの方向を制御するのに使う。
(ポールベクターは選択しやすいところまで引っ張ればよい)
あとはIKハンドルにキーフレームを設定していけば、アニメーションができあがる。
■優先角(プレファードアングル)の設定
IKハンドルを設定したとき、ジョイントが意図しない角度に曲がることがある。
(ジョイントをバインドする前に、あらかじめ角度がついてると起こらないが)
このときは、ジョイントを曲げたい方向に曲げておき、
Skeleton > Set Preferred Angle を行なってから
IKハンドルを設定する。
■
IKハンドルとジョイントのツリー構造
上図のようにIKハンドルとジョイントに"親子"関係がないツリー構造で、
腕、足のIKハンドルにキーフレームを(1ヶ所)打ち、bodyRoot(ルートジョイント)に
キーフレームを打つと上図のように、bodyRootと腕、足が連動しないアニメーションが出来る。
腕のIKハンドルを
bodyRootの"子"にすると、足は連動せず、腕は連動するアニメーションになる。
歩行、走行といった、足が接地している状態のあるアニメーションは、足のIKハンドルはルートジョイントの
"子"にしないほうがアニメーションを設定しやすいだろう。
逆に、飛び上がって1回転するといったアニメーションでは、ルートジョイントの"子"にした方が、アニメーションは
つけやすいだろう。
腕の場合は一般的にルートジョイントの"子"したほうがアニメーションはつけやすいだろう。
いずれにしても、
IKハンドルとジョイントの"親子"関係は、設定するアニメーションによって検討する必要がある。
■IKスプラインハンドル
例えば、しっぽのようにジョイントが数多くつながって動くような場合、
IKスプラインハンドルを設定する。
Skeleton > IK Spline
Handle Tool でジョイントの始めと終わりをクリックすると、
上図のように、IKハンドルとともに、Nurbsカーブが作られる。
このNurbsカーブのCVを動かすと、カーブにそって、ジョイントが動く。
初期設定では、Nurbsカーブのスパンが1になっているので、必要なら
Skeleton > IK Spline Handle Tool ■ でNumber of Spansを変更する。
また、
Nurbsカーブを自動生成せず、別に作ったNurbsカーブでIKスプラインハンドルを
制御することができる。
Nurbsカーブを作り、
Skeleton > IK Spline Handle Tool ■ でAuto Create Curveのチェックをはずし、
ジョイントの始め→終わり→Nurbsカーブの順で選択する。
English article
Maya tutorials:character setup (3): IK handle
TIPSお疲れ様です。
キャラクターアニメーション関連のTIPS、
参考にさせていただいてます。
まあ、本当はこういう技術的な設定よりも、
アニメーションそれ自体が難しいんですがね。
頑張ってください。
キャラクターアニメーションに関しても
先生のTIPSが読めれば嬉しく思います・・・。
是非とも、特集していただければと思います。
キャラクターアニメーションのサンプルは
ゲームのデータとかあるんですが、そのままは
出せないので、ちょっと考えてみます。
ありがとうございます!
素直にリクエストして良かったです。
どうぞよろしくお願いします。
すいません。単純な質問ですがいいでしょうか。
アニメーションで床の上でしゃがんだり、立ち上がったりするのをIKでさせたいのですが、うまくいきません。体の重心を上げたり下げたりするにはどうしたらよいのでしょうか。
ここで説明しているように、IKハンドルとジョイントのツリー構造を確認してください。
足を床に固定して、重心を上下させるには、IKハンドルとジョイントに親子関係がないグループ構造にして、IKハンドルにキーフレームをセットしてください。
それでジョイントを動かすと、足が固定して体が上下すると思います。
質問失礼します。
キャラクターがスノーボードに乗って滑るアニメーションを作っているのですが、うまく滑っている感じが出せず
困ってます。ジョイントの設定方法が悪いのはわかっているのですが、どうしたらよいかわかりません。
この場合のジョイントの設定はどうすればいいでしょうか?
今の設定はキャラクター用のジョイントとボード用のジョイントを別々に構成してます。
良い方法がありましたら、教えてください。
宜しくお願いします。
一番単純なのはスノーボードのモデルデータを足の『子供』に
してしまうことですね。あるいは、スノーボードを足の一部として
片方の足のジョイントとバインドするのも考えられます。
また、足との位置関係を固定して、ある程度、足とは別の動きかたを
しないのなら、スノーボードはバインドせず、足のジョイトまたは
モデルデータにpoint constrainするのがいいと思います。
(わたしは、手に剣を握ってるような時はpoint constrainを使ってます)
突然で申し訳ありませんが、質問させてください。
IKスプラインハンドルで触手のようなオブジェにグニャグニャとした動きをつけました。
それを複数、基本的には直立している状態にしました。
そのシーンファイルを別シーンにインポートすると、なぜかジョイントが45度程回転し、
寝転がった状態になってしまいます。
何とか動きをつけたポジションのまま、別ファイルにインポートできないものでしょうか?
よろしくおねがいします。
残念ながら、解決策はまったく思い浮かびません。
動きをつけたポジションのシーンファイル方に、必要なデータをインポートして回避されてはいかがでしょう?
質問なんですが、今までiMAC G-5にMaya7 Unlimitedをインストールしてひとつの
作品を作ってきました。メモリーもマックスまで拡張していす。しかしデスクトップ一体型
のパソコンは解像度に限界がありレンダリングに影響を与えているようです。
そこで質問なんですが、Mayaを動かすのに、お勧めの手軽な値段なマックはないでしょうか?
よろしくお願いします。
残念ながら、わたしはWindowsマシンを使っているので、
MACのことはわかりません。
質問に答えてくれてありがとうございます。