这一节主要以两个实例说明 IK 拾取对象的用法
1.开门动作
2.骑独轮车
开门动作,先做一个开门的姿势,然后给门一个旋转的动画:
接下来要做的就是,让手臂跟着门一起运动,可以看到门的运动轨迹,虽然是弧线,但是是非常规则的弧线,非常有规律的。可以想象一下,如果用正向动力学,使用胳膊带动手,当然可以做一个弧线,但是没有办法做很规则的弧线,因为这里是要和门的轨迹一样,实质上是受门的约束的,而正向动力学是不受约束的,很难和们的轨迹一模一样。
因为手是和门把手交互的,是受把手的约束,是IK,但是,在前面也已经做过,如果把手的两个关键帧,打成IK,它的运动其实是直线(比如前面的做的招手和擦玻璃),那使用什么办法呢,这里就要用到拾取对象了。
还和之前一样,先给手打上IK关键帧:
上几节课提到了,Body 和object的两种方式,这里依然是使用Object的方式,仔细看的话,这个Object下面其实是可以拾取物体的,前面几节课都没有用到,如果不拾取,默认的是以世界空间作为对象的。这里我们拾取一下门把手:
这时候会弹出一个提示,意思是这个操作会把 IK混合数值改为0. 点击确定:
然后这个门把手就添加进来的,这时候,我们拖动时间轴,发现手并没有跟着把手运动:
还记得那个提示框吗,仔细看一下我们的IK混合,数值被改为0了:
重新改回到1,这时候再次拖动时间轴:
发现手臂跟着门运动了!,这个例子其实是一个反作用力的例子,门带动把手,把手反作用与手腕,手腕有带动胳膊,但是动视觉上来看,好像是人去拉的门,把门拉开,但其实是给门做的动画而不是手臂,这也是很典型的例子,有些时候,做动画不能完全按照现实去走,有时候用反想动力学去做看似是正向动力学的动画反而简单很多,这在后面会经常用到。
2.骑脚踏车
已经做了一个简易的独轮车,我们知道这种有踏板的独轮车的运动规律,就是踏板虽然随着轮子转而转,但是自身是不转的,当然实现这种规律的方法很多,这里面就使用约束里面的位置约束来实现。
首先先把踏板的轴连接到轮子上,让它随着轮子转而转:
然后使用位置约束,把踏板约束的到轴上:
发现连接完以后,位置便宜了,这时候需要把保持初始偏移给勾上:
这样位置才正确,另一半也做相同的操作。
再次旋转轮子,发现踏板就对了,先给轮子一段旋转动画,然后把骨骼放到轮子上,调整好位置:
跟之前一样,给两只脚打上IK关键帧,这一次,为了避免弹出对话框,数字自动改回去,所以,先给两只脚添加 IK对象,然后再打关键帧:
给两只脚都添加好,IK对象
拖动时间轴,发现脚就跟着脚踏板一起动了。
最终动画: