なんとなくとりとめもない方向に進んでいますが、モチベーションをキープするために、あちこち興味のあるとこを彷徨ってます。
ロボットのアニメをつくるとすると、一番簡単そうなのが、二足歩行のロボットかなー、と思い、もうちょっとボーンについてみてみました。
やってみたいのは、IKを使って、一方方向にのみひざが曲がるようなボーン設定をしたい、というところです。
それではArmatureを追加して、以下のような名前でボーンを追加します。
最後のControlを使ってUpperLeg、LowerLegを動かしたいので、まずはControlのParrentをはずします(どこかのチュートリアルでは、最後のボーンをIKのターゲットにしていたと思うので、別にはずさなくてもよいのかもしれませんが、要確認…)
LowerLegにIK Constraintを追加して、Target BoneにControlを指定。
すると、PoseモードでTargetを動かすと他のボーンを追随します。
ただ、Baseは動かしたくないので、IK ConstraintのパネルのChain Lengthを2にして、Lower LegとUpper Legまでを動かす範囲とします(ちなみに0は、親全てが対象ということらしいです)。
今度はBaseは動かなくなりました。
Controlをうーんと離すと、そちらにむかってぴーんと足が伸びます。
横からみてるといいのですが、3Dでみると、ひざにあたる部分が自由に曲がってます。
ここはロボット前提にしたいので、あくまで決めた軸方向にのみ動かしたい…。
制限をかけたいボーンを選んで、IKのパネルで、Limitを指定します。
すると、決めた軸方法にのみ動くようになります。
実はここの設定が最初は全くわからなくて、FKでの制限をかけていたので、そのままIKでも制限がかかるのかとおもっていたら、設定パネルは違うところにありました。よーく考えてみるとFKとIKはシステムが違うので、IKでの設定はあくまでIKで設定する必要があるのですよね。
もうひとつは、ひざのように、あくまで一方方向に関節が曲がるようにする方法です。
これは、チュートリアルで見たのそのままで、まだちゃんと理解できてません…。
この設定をしないと、Controlを動かすとわりと勝手にひざが曲がり、あるところで急反転する、という動きになる場合があります。
まずは、Targetというボーンを追加(親はControlにしてます)。
そしてLowerLegにTrackTo Constraintを追加して、TargetをTargetに指定します。
あとはターゲットの方向を指定すれば、LowerLegが指定した方を向くようにうごきますので、びざが思った方向に動くようになります(Controlをむちゃに動かすと変な動きにはなるのですが、その解消方法はわからず…。LowerLegの稼働範囲に制限をかけると大丈夫かとは思います)。
これで基本的なひざの動きはできました。