~基礎編~こんにちは。ほげたつ(@HogeTatu)です。ついて書いていきたいと思います。アニメーションは基本的にボーンを移動/回転/拡縮させることで実現します。ボーンは階層構造となっているため、親ボーンが動くと小ボーンもそれに合わせて動きます。膝を持ち上げた時、それに合わせて足首も上方向に移動しますよね。小ボーンの状態は親から受け継がれてきた状態を受けて最終的に決定されるのです。ここで人体を例に考えてみましょう。何か前方の物を掴もうとする時、肩の位置を決定して、肘の位置を決定して、手首の位置を決定して、指を動かして物を掴む...なんて事をやりますか?そんな事はまずやらないと思います。前方の物を掴むときは、物がある場所に合わせて手首の位置を決定し、それによって自動的に肩や肘の位置や回転が決まる、といった流れになりますね。アニメーターにアニメーションを作ってもらう時、基本的には平面上に存在するという前提で作ってもらいます。待機時用の二足立ちしているアニメーションの場合、両足の高さは揃えて作ってもらいます。ゲーム中は平面ばかりではありません。坂があったり、段差があったり、そんな場所で待機すると両足の高さが揃っているばかりに足がめり込んだり浮いたりしてしまいますね。こんな時、IKを使ってアニメーションの上からボーン制御をする事で、自然な見た目に近付けることができます。具体的にどうするのか解決すべき問題は2つあります。簡単に説明だけ行いますが、詳細な説明と実装は次回以降で紹介していく予定です。立っている場所よりも低い位置に足を着こうとすると浮いてしまうキャラクターが重力がある空間に立っている時、全身を覆うカプセルコリジョンの当たり判定結果から立ち位置を決めています。何もしなければ、カプセルコリジョンが覆っている空間よりも下に足を伸ばすことができません。これが浮いてしまう問題の原因です。逆に言えば、コリジョンとメッシュの位置関係を可変にすることで対応できるということです。使用する事で対応できます。地面に対して当たり判定を行い、当たった場所まで足首を引き上げてあげれば良いのです。使ってやりたいこと、解決すべき問題を紹介しました。具体的な実装は次回以降で紹介していきます。