AimOffset是动画叠加(偏移)

AimOffset简单说就是叠加动作,如射击游戏中敌人射击时,根据人物位置不同造成的身体旋转角度的不同。

1.创建AimOffset 文件夹空白处右键选择Animation下的目标偏移(AimOffset),并选择对应的骨骼进行创建

UE4-(蓝图)第四十二课AimOffset(动画偏移)  UE4-(蓝图)第四十二课AimOffset(动画偏移)

2.参数设置

UE4-(蓝图)第四十二课AimOffset(动画偏移)

水平坐标指的是动画融合框中X轴的值范围

垂直坐标指的是动画融合框中Y轴的值范围

注:根据需求设置不同的值,这些值可以控制模型动画的动作(这里设置为 -90 90 的范围)

要声明Name  名称 (在动画蓝图中进行赋值时的名称参数)以及取值范围   也可以设置将融合框的轴 分为几个区域 可以存放不同的动画 

插值类型以及插值时间 暂无涉及 此处选择默认即可

UE4-(蓝图)第四十二课AimOffset(动画偏移)

3.设置需要融合的动画

在资源浏览器中选择要融合的动画,双击打开其中一个。(以AimOffsetDown为例,这是动画中的一帧)

UE4-(蓝图)第四十二课AimOffset(动画偏移)

在资源详情中,设置Additive Settings ,将Additive Anim Type 设置为Mesh Space , Base Pose Type 设置为 Selected animation(将动画的一帧用作一个基础姿势) 参考动画 设置为基础动画此处选择Idle(在AimOffset设置混合空间中的基础动画也选择Idle)

UE4-(蓝图)第四十二课AimOffset(动画偏移)

MeshSpace:网格体空间是一种略有不同的提取附加动画的差量的方法,因为它只用于特定的实例,如瞄准偏移资源。网格体空间使用网格体的边界框作为其旋转的基础,允许向相同的方向旋转,而不管骨架网格体中骨骼链的方向如何。考虑这样一个角色,身体向一侧倾斜,但需要将手枪向上瞄准。如果向上的瞄准运动是在局部空间内,那么瞄准就会向外旋转,向着倾斜的方向。

示例:

UE4-(蓝图)第四十二课AimOffset(动画偏移)

如果要设置的动画较多,挨个设置操作不方便可以,选中动画右键浏览至资源,选中所有需要设置的动画,右键选择资源操作 通过属性矩阵进行批量修改,将Additive Setting 选项中的参数全部更该为上面的值

UE4-(蓝图)第四十二课AimOffset(动画偏移)  UE4-(蓝图)第四十二课AimOffset(动画偏移)

UE4-(蓝图)第四十二课AimOffset(动画偏移)

UE4-(蓝图)第四十二课AimOffset(动画偏移)

选择基础动画,点击右侧的九宫格选项进行动作设置。

UE4-(蓝图)第四十二课AimOffset(动画偏移)

一定要记得设置完成后返回文件夹下保存所有修改,如果不保存会导致无法将帧动画拖入到融合框中的情况。

 4.设置AimOffset 融合框中的动画,打开AimOffset

在资源详情Additive Setting 设置基础动画姿势为Idle

根据动画方向设置位置,设置完成后保存。

注:设置融合框动画,设置动作左右的时候要注意是设置我们面对电脑方向的左右(按照自己的左右)来设置人物的动作朝向,在融合框中按住Shift并移动鼠标就可以查看融合动画效果。

UE4-(蓝图)第四十二课AimOffset(动画偏移)

5.将上面制作的目标偏移拖拽到动画蓝图中,可以在动画蓝图的动画图表中右键搜索创建的AimOffset创建目标偏移,也可以在资源浏览器中找到对应的目标偏移直接拖拽到动画图表中

UE4-(蓝图)第四十二课AimOffset(动画偏移)    UE4-(蓝图)第四十二课AimOffset(动画偏移)

6.与状态机连接,编写给水平偏移 及 垂直偏移传递参数的方法 (如果关闭了动画蓝图多线程的限制,此处可以使用纯虚函数进行值的获取及传递,如果没有关闭多线程限制,则需要在事件图表中编辑逻辑,将获取到的值提升为变量,在动画图表中获取并连接值即可)

UE4-(蓝图)第四十二课AimOffset(动画偏移)

7.敌人AI 向自己射击时,获取的水平及垂直方向的值

通过敌人及主角两个位置点,获取到射击朝向,再获取到敌人自身的朝向,此时只需要获取到射击朝向与自身朝向之间的差值(要转换成同一种格式,要么四元数,要么Vector3 ,相减),然后获取到的变量通过Break Rotator 节点,转换为Roll Pitch Yaw 水平方向获取Z轴得值,垂直方向获取Y轴的值即可。

UE4-(蓝图)第四十二课AimOffset(动画偏移)

 

相关文章: