[玩转UE4/UE5动画系统>Control Rig篇] 之 使用Control Rig实现目标偏移(Aim Offset)(附项目代码)
Posted 开发游戏的老王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[玩转UE4/UE5动画系统>Control Rig篇] 之 使用Control Rig实现目标偏移(Aim Offset)(附项目代码)相关的知识,希望对你有一定的参考价值。
本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式。教程内容将同步免费发布于开发游戏的老王(知乎|CSDN)的专栏《玩转UE4/UE5动画系统》。教程中使用的资源及工程将以开源项目的形式更新到GitHub:玩转UE4上。
工程文件: 玩转UE4(GitHub)
0. 效果演示
演示视频:用ControlRig实现目标偏移(Aim Offset)
1. 传统实现方法
传统的目标偏移主要是基于混合空间或目标偏移空间实现的,缺点就是需要准备相应的动画资源,还有就是目标偏移的方向角度以及幅度局限性都比较大,控制起来也不太直观。
2. Control Rig实现方法
2.1 原理
使用Control Rig实现,仅需要一个基础的Pose资源就可以了
本文是以射击动画为例,如果是其它动画可以参考原理使用合适的骨骼
射击动画的目标偏移主要是在脊椎上三根骨骼(spine_01,spine_02,spine_03)的扭转作用下产生的。
注意:为了让整个肢体平滑过渡,这三根骨骼扭转的幅度由下到上依次增大。
使用Control Rig中的Aim节点让骨头朝向目标位置(目标位置所在空间为骨骼空间即root空间)
关键参数是扭转的第一轴向(Primary Axis)和第二轴向(Secondary Axis)以及目标类型Kind
2.2 Control Rig绑定
可以先添加一个AimCtrl控制器,并按照下面的测试连接实验一下绑定效果
测试连接
测试完绑定效果,可以把AimCtrl替换成实际实际位置,这里的AimLocation就是目标在世界空间的位置坐标,传递进入Control Rig以后首先要使用From World节点将它转换到骨骼空间。
2.3 动画蓝图
在动画蓝图或者角色蓝图中获取目标位置传递给Control Rig就可以了
2.4 范围限制
使用Control Rig实现目标偏移需要注意目标范围的限制以防止骨骼出现不合理的扭曲
范围限制的方式很多而且要结合具体项目需求实现,范例项目中使用的方式比较偷懒也简单粗暴(仅供参考):使用了一个射线检测目标区域是否在角色前方
绿色区域(Trigger Box)为目标范围。
3. 小结
最近老王在挖掘Control Rig,逐渐感觉有了Control Rig以前一些零散的“传统手艺”都有了更加灵活简单且统一的实现方案,这对虚幻引擎的初学者也算是一个大大的福音了。
参考
UE4Tuts For You的油管教程。
以上是关于[玩转UE4/UE5动画系统>Control Rig篇] 之 使用Control Rig实现目标偏移(Aim Offset)(附项目代码)的主要内容,如果未能解决你的问题,请参考以下文章