Control Rig:藤编植物

前言

用Control Rig为主来制作一个藤编植物的攻击行为

image-20241205110725024

image-20241205110835304

需求

  • 攻击行为的时候需要需要动态的指定打击点
  • 特定时间段需要跟随玩家平滑旋转
  • 是否可以增加物理动态效果?

攻击方案

  • 旋转骨骼
  • IK
  • 其他

旋转骨骼

https://www.youtube.com/watch?v=uuFWqFExlW4&t=934s

录制_2024_12_05_10_20_30_946

思路采取的是上面这个up的方式,通过旋转某根骨骼来对齐某个目标点

但是这个方法比较局限,只能在小范围内相对的对准某个点,即使上面的案例里,也只是对准,但是无法让拳头正好打中目标点

录制_2024_12_05_10_26_08_245~1

如上图所示,追求准确性的话那么这个方式暂时放弃

IK

最容易实现的方案应该就是IK了

目前5.4中ABP中的IK方式有如下

image-20241205111027501

ControlRig中稍微多几个,如下

image-20241205111041414

TwoBoneIK / BasicIK

这俩差不多,是最常见的那种IK方式,因为怪物的脖子一共有18个关节,此方式不合适也无法实现

Spline IK

这个是最容易想到的IK,但是结果差强人意,看下图

image-20241205111102448

SplineIK会覆盖动画效果,这个功能应用场景比较偏向于离线编辑或者程序化的动画

与我们的需求不符

类似的还有ControlRig中的SpringIK 和 几个Chain节点,比如

image-20241205111114513

FABRIK / CCDIK

那么剩下的只有这俩选择了

这两个一起看,因为最终的效果是有相似之处的,只是实现方式不同

先放两张图简单解释一下2种IK

  • FABRIK(前后延伸逆向动力学 Forward And Backward Reaching Inverse Kinematic)

image-20241205111132747

  • CCDIK 循环坐标下降逆向动力学(Cyclic Coordinate Descent IK)

image-20241205111149025

最终的效果是前者比较好一点

这里为了效果更好可以做一个额外的处理

最开始的关节的旋转有点太不利于IK结算

image-20241205111214136

最终的效果比较理想

录制_2024_12_05_11_02_22_665

其他方案

理论上可以用动画混合的方式来动态的控制落点, 先留个坑,资源问题不尝试

旋转方案

  • Body骨骼缓速跟随目标点旋转
  • 头部骨骼快速跟随目标点旋转

需要注意的是, ControlRig种做多层骨骼旋转的 时候要先转根骨再转子骨骼,否则可能会造成子骨骼多次叠加旋转效果

身体旋转

Control Rig中最简单的方式就是用Aim节点

录制_2024_12_05_11_25_03_900

在一般情况下效果很好,但是在目标点快速变化的时候,会有太快的旋转表现,属于有瑕疵

但是我们也无法对aim的计算方式进行修改

所以对于身体的旋转我们需要手动的计算旋转差值

方法是记录初始旋转,然后计算旋转差值的方式,感觉ControlRig里实现这个不如蓝图方便

image-20241205113335637

改善以后的效果

录制_2024_12_05_11_34_30_971

头部旋转

然后是头部

image-20241205113550282

使用多跟骨骼按不同权重朝向目标点

录制_2024_12_05_11_36_32_649

其他

还可以再额外增加一点动态效果

image-20241205114603458

下图的黄点就是最终的效果,蓝色是添加动态之前的效果

录制_2024_12_05_11_44_11_546

物理效果

因为这个是需要继承动画的,所以ABP里的用来模拟尾巴或者辫子的就先pass了

image-20241205134600530

那么就只有物理动画比较合适了

录制_2024_12_05_13_46_41_916

image-20241205134749861

编辑好碰撞,参数调大一点(因为需要继承较多的动画效果)

适当的调一下碰撞体的质量

物理效果跟IK是分离的,意味着在攻击打开IK之前需要慢慢的把物理动画关掉

IK关闭以后在逐步打开

不可以瞬间打开,会导致快速的跳变

image-20241205140215355

最终效果

录制_2024_12_05_13_58_09_161