目标
目标是在上一篇博客《学习UE4动画蓝图:创建一个射击姿势并使用》的基础上,让射击姿势可以瞄准朝向相机的方向。
学习过程中主要参考了《创建瞄准偏移 | Unreal Engine Documentation》。
1. 创建9方向的单帧动画序列
我之前的一个误区是:瞄准偏移由静态(指单帧)的姿势混合,但是当我试图将姿势拖入新建的瞄准偏移时发现被提示是个无效的资源类型:
也就是说,瞄准偏移是由动态(指多帧)的动画序列混合而成的,其本身也可以是动态的。这样看来它和2维的混合空间就类似了,只不过区别在于它要求动画序列是Additive的(即表示一个增量),否则拖入动画序列时会被提示:
不过,我目前的这个资源(
Aim_Space_Ironsights动画序列
)是一个瞄准方向只对应一帧,因此用来混合的动画都是单帧的(即虽然只有一帧,但资源类型不是姿势,而是动画序列)。
下面创建9个方向的单帧动画:
1.1 复制
先将
Aim_Space_Ironsights
复制出9份来,并分别以方向来命名:
1.2 保留需要的姿势帧删除其他所有帧
各个方向的帧在
Aim_Space_Ironsights
中在:
方向 | 帧 |
---|---|
Aim_Center_Center | |
Aim_Center_Up | 10 |
Aim_Center_Down | 20 |
Aim_Left_Center | 30 |
Aim_Left_Up | 40 |
Aim_Left_Down | 50 |
Aim_Right_Center | 60 |
Aim_Right_Up | 70 |
Aim_Right_Down | 80 |
例如对于
Aim_Center_Down
,所做的操作如下:
1) 打开
Aim_Center_Down
2) 选择到第20帧
3) 右键,点移除帧0到帧20之间的帧
4) 回到0帧,右键点移除帧1到帧68之间的帧
1.3 批量设置属性
接下来需要设置 Additive 动画相关的属性。一共有九个,批量设置会更快。
选中9个动画,右键选择通过属性矩阵进行批量编辑
随后编辑属性:
- 附加动画类型(Additive Anim Type) 更改为 模型空间(Mesh Space)
- 基础姿势类型(Base Pose Type) 更改为 选定动画帧(Selected animation frame)
- 基础姿势动画(Base Pose Animation)选择
,记住现在的选择。ThirdPersonIdle
2.创建瞄准偏移资源
2.1创建
右键骨架选择创建目标偏移(我翻译成瞄准偏移)。这将从这个骨架创建一个瞄准偏移资源。
命名为
ShootingAimOffset
:
2.2编辑
双击打开资源,在细节面板中设置水平和垂直轴的名字与值范围:
将之前做的9个单帧动画拖入到对应位置:
2.3预览
在 资源详情(Asset Details) 面板中,将 附加设置(Additive Settings) 下的预览基础姿势(Preview Base Pose) 选项设置为
ThirdPersonIdle
可预览:
3. 动画蓝图的 AnimGraph
上一篇《学习UE4动画蓝图:创建一个射击姿势并使用》中的设计姿势节点(Aim_Center_Center : Pose_0)将由
ShootingAimOffset
取代(只要将瞄准偏移资源拖入就可以创建节点):
另外需要注意的是:
- 其输入的姿势应该是
ThirdPersonIdle
- Yaw和Pitch的值是变量,将会在之后的事件图表中设置
4. 动画蓝图的 事件图表
在事件图表中添加设置瞄准角度的内容:
需要注意的是:
- 旋转的偏移是由
和GetControlRotation
通过GetActorRotation
函数计算得来Delta
- 获得的角度需要
到Clamp
到-90
之间。90