ソラマメブログ

2009年03月11日

Blenderでアニメの作成:第六回「IK」

BlenderでSL用のアニメを作りましょうの第六回。

前回までの内容で、Blenderによるアニメの作成とbvhファイルの出力を一通り説明しました。


今回から、ポージングに非常に便利な機能である「IK(インバースキネマティクス)」について解説をしたいと
思います。IKとは、通常の操作とは逆に、体の末端を基準としてポージングを行う機能です。


例を挙げてみましょう。


普段、腕の動きをつけるときのことを考えてみてください。
たとえば、握手をするように手を前に差し出すポーズをつけようとしたとします。
まず上腕を回転させて、次に肘を曲げ、最後に手首を・・・という順番でポージングを行うことになりますね。

Blenderでアニメの作成:第六回「IK」
<いつものやり方>



これに対して、IKを使った方法とは、手首を移動させ、回転を調整する。これだけです。
上腕や肘の動きに関しては何も操作していません。

Blenderでアニメの作成:第六回「IK」
<IKを使ったやり方>
IKを使ったやり方では何が起きているのでしょうか?
ポーズをつけるときに動かす棒のことを「ボーン」と呼ぶのだということを、以前に書きました。ボーンには親
ボーンと子ボーンという概念があり、あるボーンから先にボーンがつながっているとき、体の中心に近いボ
ーンが親ボーン、遠い方が子ボーンになります。

ポージングをするときには、親ボーンの動きに合わせて子ボーンから先も動きます。上腕を動かした時に、
手首がもとの位置のままで、肘がそれを維持するために折れ曲がる・・・なんていうことはありません。

IKの機能を用いると、これとは逆に、子ボーンの動きに合わせて親ボーンが動くようになります。
このとき、IKが効果をおよぼす範囲、いくつ前までの親ボーンを動かすかは任意に設定することができ、例
えば手首にIKを設定し2つ前の親ボーンまでを範囲にした場合には、手首の動きに追従して上腕まで、つ
まり肩から先が動くことになります。もし一番前の親ボーンまでを効果範囲とすると、体全体に影響すること
になります。

Blenderでアニメの作成:第六回「IK」
<IKの範囲による効果の違い:(左)操作前(中)手首から2ボーンまで、(右)一番元の親ボーンまで>



「IKの設定方法」

それではIKの設定方法を見て行きましょう。

 ちなみに・・・わたし自身IKにそれほど詳しくなく、チュートリアルにもIKの記述はないので、以降のやり方
 が正しいかどうかはわかりません。少なくとも意図した通りに動けばよい、という考え方で進めていきます。


ここで、第二回「設定の追加」のところで追加した、ボタンウィンドウの出番になります。
実は、このエクスポート用blendファイルのボーンには、両手と両足にもともとIKが設定されていますが(これ
らの部位だけボーンが黄色く表示されているのがわかります)、初期状態ではこのIKの機能を一時的に制
限する処理がなされています。

ここではこれらを「IKボーン」と呼びましょう。下の図で選択状態になっているボーンがそれです。


Blenderでアニメの作成:第六回「IK」

<IKボーン>



IKボーンをを選択した状態で、ボタンウィンドウの中の「Editing」パネルを表示し、その中の「Armature」タブ
を見つけて下さい。タブの中に「Auto IK」というボタンが見つかるはずです。最初はこれが有効になっていま
すので、これを押して解除します。

次に、IK機能を使いたい部位をIKボーンから選んで選択状態にし、今度はボタンウィンドウ内の「Object」パ
ネルの中から「Constraints」タブを見つけます。タブの中には2つの設定があって、各一つずつ「influence」
というスライダーを持っています。このスライダーを右端まで一気に引き上げてください。


Blenderでアニメの作成:第六回「IK」




これでIK機能が使えるようになりました。


ただし、使用方法には少し特徴があります。
それは、ポージングの際にこのIKを設定したIKボーンそのものを使うのではなく、「hand_ctl.L」「hand_ctl.R」
「foot_ctl.L」「foot_ctl.R」という4つの独立したボーンを使うということです。

これらをここでは「コントロールボーン」とでも呼びましょう。下の図で選択状態になっているボーンがそれです。


Blenderでアニメの作成:第六回「IK」

<コントロールボーン>



なぜこういう処理をしているかというと、末端部分、IKボーンのポージングをしやすくするためです。
IKボーンを設定しただけの場合には、IKボーンを単に動かしただけでも、IKボーンまでがクネクネと回転してし
まうことがあり、IKを設定したボーンそのものでポージングをするのは少し不自由なことがあります。そのため
コントロールボーンという動きをつける専門のボーンを新たに使用して、実際のポージングを行います。

さて、具体的な使い方ですが、このコントロールボーンを動かしたり回転させたりすると、IKボーンはコントロー
ルボーンと同じ向き、同じ位置を保とうとします。つまり、コントロールボーンを動かすことでIKボーンを動かして
いるのと同じことになり、かつ先に書いたような妙なクネクネ挙動が起きず、いつもの使用感で作業ができます。

そしてこの結果として、IKが設定されていますから、IKボーンの動きにあわせて連結された何個かの親ボーン
がそれに応じて動くことになります。仮に、コントロールボーンがIKボーンが届く範囲を超えた場所に移動したと
きは、IKボーンは最短距離を保てる位置に移動します。不自然に手足が伸ばされることになりますので、基本
的には避けたほうがよいでしょう。


さて、これでめでたくIK機能を使ったポージングが可能になります。
IK機能によって、通常時と違ってどのような挙動になるのか確かめてみて下さい。
ポージングが終わったら通常時と同じようにキーフレームを挿入してポージング完了です。

なお、コントロールボーンについてもキーフレームが記録されますが、書き出しに際してコントロールボーンの情
報が混入することはないので問題ありません。

IKの機能を停止したいときには、「influence」スライダーの適用量を両方とも0にすれば、いつも通り、IKボーン
は親ボーンの動きに追従するようになります。



次回からは、個人的にBlenderを使うと便利ではないかと思っている、いくつかのポージングのやり方について
書いていきたいと思います。


同じカテゴリー(アニメ)の記事画像
Blenderでアニメの作成:第五回「bvhファイルの出力」
Blenderでアニメの作成:第四回「キーフレームの編集」
Blenderでアニメの作成:第三回「ポージング」
Blenderでアニメの作成:第二回「設定の追加」
Blenderでアニメの作成:第一回「インターフェイス」
同じカテゴリー(アニメ)の記事
 Blenderでアニメの作成:第五回「bvhファイルの出力」 (2009-03-08 18:56)
 Blenderでアニメの作成:第四回「キーフレームの編集」 (2009-03-08 18:41)
 Blenderでアニメの作成:第三回「ポージング」 (2009-03-08 09:50)
 Blenderでアニメの作成:第二回「設定の追加」 (2009-03-07 14:09)
 Blenderでアニメの作成:第一回「インターフェイス」 (2009-03-04 20:05)
 Blenderでアニメの作成:イントロ (2009-03-04 18:09)
Posted by Nori at 18:07│Comments(0)アニメ
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。