本文使用Blender自带的Rigify插件对角色进行绑定,文中提到的解决方法并不仅限于Rigify,只要和Rigify有类似的功能结构就可以。
- 效果对比
- 修正前
- 修正后
- 什么是膝跳问题
- 修正方法
膝盖有明显的跳动(抖动)
修复后,膝盖的运动基本稳定了
这个定义部分来自网络部分来自老王自己的理解(实在没找到权威解释)
膝跳问题(Knee Popping Issue),这个问题不太好用语言描述,它常常会出现在IK链的关节处,尤其是出现在IK链被拉直的帧前后范围,视觉上就是这个关键 关节很不自然地抖动了一下。比较典型地就是制作WalkCycle时,膝盖部位常出现的异常跳动。
简单分析一下原因:IK链的关节位置,是由IK链两端的相对位置以及IK极向等位置和角度决定的,这个位置的形成很 “被动”,在IK链的某些极限状态(比如被拉直)前后范围,很容易出现这个 “位置值的跳动”。
WalkCycle中的膝跳问题算是最典型和常见的例子了,下面就以WalkCycle为例介绍一下解决方法。
下面的截图就是出现了膝跳问题的例子:
第19和22帧是相邻的两个关键帧,分别对应角色的Pass姿势和High姿势,从运动轨迹可以看出来,由Blender自动补间的第20和21帧出现了加大的跳动
注意:本例中使用使用Rigify中Leg(Tweak)对应的膝盖骨头shin_tweak
作为运动轨迹的追踪对象,下面介绍的膝跳问题的修正方法,也是利用这个骨头。它是本文的关键,如果使用非Rigify的其它绑定,如果具备这个结构也可以参照本文的方法。
黄圈里面(20和21帧)的位置,应该在19~22帧位置的连线附近,就不会出现明显抖动了
在19到20帧为shin_tweak
插入关键帧,然后分别在20和21帧将shin_tweak
移动到合理的位置并插帧
然后更新一下运动路径
修复后,膝盖的运动基本稳定了