之前的博客说的是第一人称视角下的东西,今天要来做第三人称视角下的运动系统和任务动画
第三人称人物运动系统
第三人称视角实现
首先我们打开我们的BP_character,打开后看到"视口"界面

在右边"细节"找到网路体->点击"网路骨骼体资产"->选择"SKM_Manny_Simple"

我们看到胶囊体中有一个蓝色的箭头,那个代表是角色的正前方
接下来我们把"位置"和"旋转"的Z轴调成-90°

调整之后的样子

先运行一次

看着视角很奇怪,接下来开始设置第三人称视角
接下来在"组件"那一栏添加"弹簧臂组件"和"摄像机组件"

添加后需要将摄像机调整到合适的位置,调整后的样子

先运行一次

我们看到了视角已经变成了第三人称,这里补充下弹簧臂是做什么的
首先我们将角色移动到角落

接下来将摄像机转向另一边

我们可以看到视角会进行缩放,如果没有弹簧臂则会穿模
现在看到角色运动的模式和市面上的第三人称的游戏相差甚远,这里需要改两个设置
首先我们来到蓝图,找到"弹簧臂"并点击,在"细节"中找到"摄像机设置",并勾选"使用Pwan"控制旋转,那么Pawn是什么呢?
Pwan就是由鼠标来操控视角
把"Pwan"进行勾选时,我们看到摄像机不会跟着转

可是把"Pwan"取消勾选的时候,摄像机就会跟着动

接下来点击BP_character(自我)->找到"使用控制器"(也可以直接搜"使用控制器")->把"使用控制器旋转Yaw"取消勾选

可以自行运行下
第三人称运动系统实现
运行后发现无论鼠标怎么转角色永远保持在同一个方向,并不会随着鼠标改变朝向,举个例子:正常来说,如果将鼠标朝向后边按下"W"的时候角色应该转身往另一个方向走,可是目前并不会转向,那么该怎么办呢?
先打开蓝图并看到之前角色移动这里

可以看到"获取"Actor的向前向量,也就是视口中的蓝色箭头,不过在第三人称这里是不对的,应该改为摄像机的朝向
这里将"camera"拖出来

搜索"获取世界旋转"并分割结构体引脚



接下来搜索"获取向前向量"并分割结构体引脚



接下来将Z轴连起来

接下来把之前的"获取Actor向前向量"删除并将其接上

再来要把"camera"和"获取世界旋转"复制下

这次我们要搜索的是"获取向右向量"

然后重复上述步骤

可自行测试
还能看到角色按照摄像机的方向走了,可是角色本身还是不会随着转动,这里只要再改一个设置就行
点击"BP_character"->找到"角色移动(旋转设置)",也可以直接搜索"角色移动"->勾选"将旋转朝向运动"

这样就完成了,可自行测试
第三人称人物动画
先打开"内容侧滑菜单"->创建新资料夹,名字叫"Animation"

打开资料夹后创建"动画蓝图"->选择"SK_Mannequin"->命名为"ABP_Main"



在创建一个"混合空间"->选择"SK_Mannequin"->命名为"BS_walk"



先打开"BS_walk",界面是这样的

接下来进行动画制作
奔跑动画制作
首先找到"水平坐标",把"最大轴值"改成600(最大为600)、"网格划分"改成2格、把"与网格对齐"进行勾选

垂直坐标的"与网格对齐也要勾选"

我们在"资产浏览器"搜索:jog_fwd,选择MF_Unarmed_Jog_Fwd

将他拖到"动画曲线编辑器"的末尾

再搜索:MM_idle

将其拖到开头

之后可以住Ctrl,可以进行动画浏览
动画蓝图制作
打开动画蓝图的时会看到这个

首先要创建"BS_walk"

再看到"事件图表"->搜索"获取移动组件"->把它和"尝试获取Pwan拥有者"进行链接

接下来拖曳"Return Value"->搜索"velo"关键字->选择"获取velocity"

接下来搜索"获取向量XY"并将它和"velocity"链接

之后拖曳"return value"->选择"提升为变量"

将其命名为"Speed"

最后将set和"事件蓝图更新动画"链接

蓝图:

最后将speed从"变量"拖曳出来和"BS_walk"进行链接

之后回到BP_Character,找到"动画"->动画模式选择"使用动画蓝图"->动画类"选择ABP_Main_C"

之后就OK了,可以自行测试
补充
如果觉得停顿不自然的话,找到"BS_walk",找到"平滑时间"改成0.2秒,找到"平滑类型"选择"立方"
