AutomatonRigのIK/FKBlendを利用するとジャンプなどのモーションの接地感を向上させることが出来ます。
IK/FKBlendサンプル ik_fk_blend.zip (113k)
以下のサンプルは
ik_fk_blend_1.lws IKのみのシーン
ik_fk_blend_1.lws 接地時にIKを、空中にいる時にFKを使用したもの
になっています。また、腕のモーションはポージング時にIKを動作時にはFKを利用することで滑らかに動かしています。
注意)
・シーンファイルにはIKBlenderAMEx.pを使用します。また、予めIKSlidHolder.lwoをコンテント ディレクトリへ移動してください(すでにある場合はコピーの必要はありません)。
・チュートリアルにはATIKtoFK.ls、ATFKtoIK.p、ATCopy/PastePose.ls、Load/SaveLocalRot.ls等のツールを使用します。
1)まずIK/FKでAutomatonRigを生成します。
2)IKモードでモーションを作成します。
モーションが完成したらシーンを一旦セーブします。(後でモーションの修正に使用します)
3)空中に浮かんでいる部分のIKをFKに焼き付けます(ATIKtoFK.lsを使用)。
4)空中の部分のIKControlからキーを削除します。
5)IKControlがオーバーランしないように、グラフエディタ上でキー補完を「直線」に変更します。
6)IK_1:Both_Legs_IKをコントロールし空中にいる間は0(FK制御)、接地したときに1に(IK制御) にします。
以下に完成したIK/FKBlendモーションとIKのみのモーションのFlashを示します。
左がIK/FKBlend、右がIKのみのモーションです。
右のIKのみのシーンでは足のIKControlがオーバランしている為、ブレが生じています。
一方、左のIK/FKBlendを利用するものは、IKControlに足が吸い付くような感じになり、接地感を向上させることが出来ます。また、空中でのモーションをRootを動かすことで簡単に修正出来る為、迫力あるシーンが作れます。
一旦、作成した空中のモーションはIKで制御出来なくなってしまいます。実際は可能ですが4,5,6を繰り返し作業することになり、とても面倒です。
こんな時はLayoutをもう一つ立ち上げてIKモードで作成したモーションをLoadします。
修正を加えた後、IKをFKに焼き付けます(ATIKtoFK.lsを使用)。このFK情報をSaveLocalRot.ls(Root以下)を使用してセーブします。
このファイルを実際のシーンにLoadLocalRot.lsで読み込んでやればOKです。
SaveLocalRot->LoadLocalRot
このときATCopyPose/ATPastePoseを使用しないのはなぜでしょうか?これらを使用するとIKControllerが動いてしまいます。これでは、シーンでIKを使用するのと変わらなくなってしまいます。Save/LoadLocalRotを使えばFK情報のみ取得できるのではるかに簡単にポーズを移すことが出来ます。
ツールAddSlider.lscを使うとAutomatonRigににスライダーコントローラーを追加することが可能です。(上図参照)
注意)このツールはキャラクタ1体の時のみ使用可能です。
スライダの詳細についてはここを参照してください。
スライダは初心者に判り易く状態を知るのには便利なんですが、ワンクリックで操作出来ない不便さも有ります。ある程度操作に慣れてきたらATIKCtrlを使用してください。
これで上記図の基本IK部分をワンクリックで修正することが出来ます。この機能はポーズ付けでIK<->FKを行き来するような場合に非常に有効です。