• 联系我们   Contact
    您的位置:首页 > 新闻动态 > 技术文章

    简单的IK骨骼动画IK解算方法

    2018/11/15      点击:
    我们知道一般的骨骼动画就是FK骨骼动画即正向骨骼动画,它的实现相信大家都以经很清楚,我假设你们都已经了解了。 IK骨骼动画就是逆向骨骼动画,如果需要高级的动画效果我们就要用到它。如果对游戏角色来说FK骨骼动画的作用带有主观性,那么IK骨骼动画的作用则是环境对角色的客观影响。
           说到IK骨骼动画,我们就需要谈到IK解算器。在3DSMAX中我们可以很轻易的创建它,我们这里以HI解算器为例,除此之外还有HD解算器IK肢体解算器。

    它的效果如下图所示:


          效果说明:假设黄色的线段为父骨头,绿色的线段为子骨头,红色的为IK解算线(姑且这么叫吧),当IK解算线的右端向左端靠近时会带动骨骼做弯曲运动。

          上图告诉我们可以用圆的当然三维空间中是球的方程来求交点实现,不过我想谁也不希望用计算机来求解这个方程,所以有一种替代方案它的实现原理,这是一种独立历史记录的IK骨骼动画,过程如下图所示:

    实现方法大致分为三步:
          假设上图是当前动画帧的骨骼状态。
          首先我们需要做出IK解算线并记录下来,即红色的线段。
          其次先让子骨头做一次旋转运动,再做一次IK解算线,即橙色的线段。这时我们就可以算出红色线段和橙色线段之间夹角。
          最后让父骨头反向旋转相应度数,由于父骨头会带动子骨头,使得橙色线段与红色线段重合。此时就是想要的结果了。

          这只是众多方法中的一种,当然这还有缺点,比如旋角度不能过大,骨头只间不能成一条直线,但是这些都可以通过加入条件判断来解决。