2012年4月12日木曜日

Cheetah3D:IKの設定

前回の骨を流用して、IKの設定してしまいます。

IKとは、インバースキネマティクスの略。
詳しいことはボクはわからないのでパスw ググってw

前回、骨のローテーションで膝をまげたように動かしたのは、FK(フォワードキネマティクス)というやり方です。

ではIKやってみましょ~。
IKを設定するにはまず、末端の骨を選択します。


ジョイント3ですね。
骨というか、先端の球体っぽいやつですね。











ジョイント3を選択したら、タグをつけるメニューで、IKハンドルを選択します。


















とりあえず、デフォルトの設定でIKがつきました。


紫色の線がみえるでしょうか? 
この線がついていることで、IKの設定が入っていることがわかります。
















IKの設定は、プロパティにあります。
IKのタグをつけたら、プロパティは、IKの内容に変わります。



色々設定がありますが、ほとんどデフォルトのままでも、大丈夫です。

変える点は、IKソルバー:の項目です。
図では、2Dになっていますが、
これをクリックで選択して、3Dに切り替えます。













なぜか、2Dの状態でIKを動かそうとすると、うまく動いてくれなくて・・・
設定がわるいのかなんなのか、時間があればつきとめたいw

上記までのじょうたいでもIKとしては機能するのですが、もう一個手順を踏みます。
プロパティの図の下の方に、「ターゲットの追加:」という項目と、OKボタンがあります。
このOKボタンをクリックして、ターゲットを追加してしまいましょう。

追加するとこんな感じです。















ターゲットは何かというと、
IKで骨を動かすときに、骨(ジョイント3)を直接トランスレートするのではなく、ターゲットをトランスレートすることで、骨を動かせるようにするものです。
ターゲットの居る方向に骨の向きが向くという感じでしょうか。
便利に使えるので、必ずつけておくのがいいと思います。
(今回の実験的なオブジェクトだと、恩恵を説明しきれないw 人間型モデルとかで改めて解説したいですね)

では、早速ターゲットをトランスレートして、骨と”肉”を動かします。


ターゲットを選択した状態で、トランスレートすると、膝が曲がります。

ターゲットを、腿に近づけるほど膝が深く曲がり、遠ざけるほど膝が伸びます。

この挙動はやっぱり楽しいですw 
無意味にぐりぐりやってしまいます。










さて。
腿の上にちょこんとくっついているジョイント(親)なのですが、
なぜこれをつけたかというと、”膝の向き”を変えるためなのです。

MAYAや、Blenderだと、ポーラベクターとか、アップベクターとかいう設定で、膝の向きを変えられるのですが、Cheetah3Dの、3DのIKソルバだとなんでかうまくいかなかったのです。
IKのプロパティに、「ポールの追加」という項目があるのですが、これがポーラベクターの事なのだな? と思い設定してみたのですが、思惑通り行かなかった……。
何か設定が間違っているのか、根本的に勘違いしているのかもしれません。
このあたりも、探りたいところですね。

話を戻して。
ポーラベクターのような物がつかえないとなると、膝の向きを変えるための「何か」が必要なので、その「何か」の役割をさせるのが、ジョイント(親)です。
ジョイント(親)をローテーションさせることで、膝の向きを変えることができます。


こんな感じですね。

マニピュレーターが、ローテーション用になってるのがおわかりいただけるでしょうか。















図のは一本だけしかなくて、脚っぽくないですが、人型にすれば、がに股と内股が表現できるようになります。


アニメーションをつくるとき、ジョイント(親)は、トランスレーションさせたらダメです。
ローテーションだけキーを設定します。

膝を曲げるときは、ターゲットのトランスレーションだけに、キーを設定します。
ターゲットはローテーションさせてもあんまり意味は無いです。







IKの設定はこんな感じです。
めちゃくちゃ簡単ですよ。

コンストレイントとか駆使すれば、高度なリグとか構築できそうなのですが、
その辺は、まだ探れてないですね。
色々やっていきたいです。

0 件のコメント:

コメントを投稿