Control Rig:藤编植物
前言
用Control Rig为主来制作一个藤编植物的攻击行为
需求
- 攻击行为的时候需要需要动态的指定打击点
- 特定时间段需要跟随玩家平滑旋转
- 是否可以增加物理动态效果?
攻击方案
- 旋转骨骼
- IK
- 其他
旋转骨骼
https://www.youtube.com/watch?v=uuFWqFExlW4&t=934s
思路采取的是上面这个up的方式,通过旋转某根骨骼来对齐某个目标点
但是这个方法比较局限,只能在小范围内相对的对准某个点,即使上面的案例里,也只是对准,但是无法让拳头正好打中目标点
如上图所示,追求准确性的话那么这个方式暂时放弃
IK
最容易实现的方案应该就是IK了
目前5.4中ABP中的IK方式有如下
ControlRig中稍微多几个,如下
TwoBoneIK / BasicIK
这俩差不多,是最常见的那种IK方式,因为怪物的脖子一共有18个关节,此方式不合适也无法实现
Spline IK
这个是最容易想到的IK,但是结果差强人意,看下图
SplineIK会覆盖动画效果,这个功能应用场景比较偏向于离线编辑或者程序化的动画
与我们的需求不符
类似的还有ControlRig中的SpringIK 和 几个Chain节点,比如
FABRIK / CCDIK
那么剩下的只有这俩选择了
这两个一起看,因为最终的效果是有相似之处的,只是实现方式不同
先放两张图简单解释一下2种IK
- FABRIK(前后延伸逆向动力学 Forward And Backward Reaching Inverse Kinematic)
- CCDIK 循环坐标下降逆向动力学(Cyclic Coordinate Descent IK)
最终的效果是前者比较好一点
这里为了效果更好可以做一个额外的处理
最开始的关节的旋转有点太不利于IK结算
最终的效果比较理想
其他方案
理论上可以用动画混合的方式来动态的控制落点, 先留个坑,资源问题不尝试
旋转方案
- Body骨骼缓速跟随目标点旋转
- 头部骨骼快速跟随目标点旋转
需要注意的是, ControlRig种做多层骨骼旋转的 时候要先转根骨再转子骨骼,否则可能会造成子骨骼多次叠加旋转效果
身体旋转
Control Rig中最简单的方式就是用Aim节点
在一般情况下效果很好,但是在目标点快速变化的时候,会有太快的旋转表现,属于有瑕疵
但是我们也无法对aim的计算方式进行修改
所以对于身体的旋转我们需要手动的计算旋转差值
方法是记录初始旋转,然后计算旋转差值的方式,感觉ControlRig里实现这个不如蓝图方便
改善以后的效果
头部旋转
然后是头部
使用多跟骨骼按不同权重朝向目标点
其他
还可以再额外增加一点动态效果
下图的黄点就是最终的效果,蓝色是添加动态之前的效果
物理效果
因为这个是需要继承动画的,所以ABP里的用来模拟尾巴或者辫子的就先pass了
那么就只有物理动画比较合适了
编辑好碰撞,参数调大一点(因为需要继承较多的动画效果)
适当的调一下碰撞体的质量
物理效果跟IK是分离的,意味着在攻击打开IK之前需要慢慢的把物理动画关掉
IK关闭以后在逐步打开
不可以瞬间打开,会导致快速的跳变