UE4 第三人称完全流程

1、开始项目导入资源

创建一个包含新手包的Blank空项目,在StarterContent目录下创建一个MyCharacter目录用于保存模型和动画;

UE4 第三人称完全流程

准备好动画资源,首先要导入的是骨骼(动画的导入成功的前提是项目中已经存在对应的骨骼)。

UE4 第三人称完全流程

将指定文件拖入MyCharacter文件夹

UE4 第三人称完全流程

因为拖入的文件时骨骼文件,所以不存在动画等其他一些资源,直接点击Import就行了

UE4 第三人称完全流程

警告不用理睬,等待shader的初始化,完成后:

UE4 第三人称完全流程

点击Save All保存导入的所有文件,然后新建一个Animation的文件夹,用于保存所有的动画资源。

UE4 第三人称完全流程

将资源包里面其他所有文件都拖入进来

UE4 第三人称完全流程

骨骼选择,之前导入的骨骼,然后点击Import All 导入所有动画

UE4 第三人称完全流程

UE4 第三人称完全流程

点击Save All 保存所有动画文件。

UE4 第三人称完全流程

设置控制器输入,这里为了简便,主要设置电脑控制,wasd,空格,鼠标,不考虑移动端和手柄。

UE4 第三人称完全流程

修改MyCharacter Event Graph蓝图

UE4 第三人称完全流程

UE4 第三人称完全流程

为了好看,简单修改一下Material颜色表现一下:

UE4 第三人称完全流程

2、Blend Space 1D 一维混合空间

在Animation文件夹中创建Blend Space 1D,用于表示和定义Idle,Walk和Run动画之间的关系。

UE4 第三人称完全流程

UE4 第三人称完全流程

双击打开

UE4 第三人称完全流程

在左侧,找到Axis Setting 并做如下设置

UE4 第三人称完全流程

将右侧动画片段拖动到速度轴上面

UE4 第三人称完全流程

3、动画蓝图 Animation BP

创建动画蓝图,并命名为CharacterAnimBp

UE4 第三人称完全流程

UE4 第三人称完全流程

UE4 第三人称完全流程

双击打开动画蓝图

UE4 第三人称完全流程

右键空白处,键入state machine,添加状态机,并且命名为locomotion,

UE4 第三人称完全流程

UE4 第三人称完全流程

双击状态机,进入,右键空白处,创建一个state,并将其重命名后,双击进入。

UE4 第三人称完全流程

UE4 第三人称完全流程

UE4 第三人称完全流程

将右侧资源(第二部中准备得Blend Space)拖入进来,并连线

UE4 第三人称完全流程

创建速度变量Speed,这个变量会在Event Graph里面被改变,从而控制动画

UE4 第三人称完全流程

这时,切换到最外层,并连线

UE4 第三人称完全流程

通过改变右侧的Speed值,可以看到左侧视窗中人物的动画变化。

UE4 第三人称完全流程

进入状态机内,完成状态机

创建跳跃开始状态
UE4 第三人称完全流程

设置跳跃开始动画
UE4 第三人称完全流程

设置可以从混合空间包含的动画转换到JumpStart状态的条件,当绑定了该动画蓝图的Pawn在空中时,执行此起跳动画。
UE4 第三人称完全流程
UE4 第三人称完全流程

设置跳跃循环动画,并设置转换条件,动画过渡比率为0.5,
UE4 第三人称完全流程
UE4 第三人称完全流程
UE4 第三人称完全流程

设置跳跃结束动画,并设置转换条件——当Pawn不在空中,也就是在地面的时候,播放此动画
UE4 第三人称完全流程
UE4 第三人称完全流程
UE4 第三人称完全流程

连接结束动画和一维混合动画,并设置条件,比率为百分之十
UE4 第三人称完全流程
UE4 第三人称完全流程

在Event Graph中进行逻辑判断

UE4 第三人称完全流程

  • 当该动画蓝图附加给一个实例化的对象时, Set (Is In Air和Speed才会执行下去);
  • 其中Try Get Pawn Owner 是尝试获取场景中存在的Pawn;
  • Get Movement Component 是获取该Pawn的Movement组件,通过Movement组件判断该Pawn是否在空中;
  • Is Falling正在下落,也就是不在地面,在空中时,返回true;
  • Get Velocity获取Pawn的向量速度;
  • VectorLength获取向量的长度;

4、MyCharacter角色蓝图之ViewPort

创建角色蓝图,命名为MyCharacter
UE4 第三人称完全流程
UE4 第三人称完全流程
UE4 第三人称完全流程

双击打开MyCharacter,选中Mesh组件,在Details面板中修改Mesh和Animation,使用我们自己的骨骼,使用在第三步中创建的动画蓝图。
UE4 第三人称完全流程

使用移动快捷键W,上下移动,得到合适的位置,使用旋转工具,让Character面向淡蓝色箭头
UE4 第三人称完全流程

选中CapsuleComponent,在Details面板中修改Shape,使得Capsule Collision组件与Character差不多
UE4 第三人称完全流程

添加相机,添加相机之前先给相机添加一个父组件Spring Arm,用于管理相机,修改名字,并在Details面板中的Camera Settings勾选Use Pawn Control Rotation,勾选之后,相机会跟随控制器旋转,这里,我们的控制器是鼠标
UE4 第三人称完全流程
UE4 第三人称完全流程
UE4 第三人称完全流程

选中Movement组件,修改Jump Z Velocity为600,跳的时候,向上的速度就是600了
UE4 第三人称完全流程

勾选 Orient Rotation to Movement,当角色发生旋转的时候,旋转的速度会使用上面设置的Rotation Rate
UE4 第三人称完全流程

点击Class Defaults ,搜索controller,取消勾选Use Controller Rotation Yaw,使用控制器来旋转Z轴,这里我们会自己来控制,所以不需要勾选
UE4 第三人称完全流程

5、角色蓝图之EventGraph

跳转到Event Graph选项卡,删除原有的事件,输入如下节点,这里是控制WASD 行走

UE4 第三人称完全流程

添加鼠标输入,鼠标作为控制器,控制着Spawn后面的摄像机依据Spawn的世界坐标系进行旋转。

UE4 第三人称完全流程

添加键盘空格键控制角色跳跃的操作

UE4 第三人称完全流程

6、创建游戏模式蓝图

创建GameStateBase类型的蓝图,打开后,在Class Defaults的Details面板下,更改Default Pawn Class 改成我们自己的

UE4 第三人称完全流程

UE4 第三人称完全流程

UE4 第三人称完全流程

在主窗口的世界设置的下,更换GameMode

UE4 第三人称完全流程

UE4 第三人称完全流程

7、运行游戏

按键WASD,空格,鼠标都可以正常运行
UE4 第三人称完全流程

Bug解决:
当Pawn跳跃的时候,下落的过程中,主角会抖一抖,落地的时候也会抽搐的样子……

Loop动画需要循环,Start和End动画不需要循环,另一方面,当动画表现不好的时候,修改的动画的相关属性可以得到比较好的表现。

UE4 第三人称完全流程

UE4 第三人称完全流程

UE4 第三人称完全流程