UE4 第三人称完全流程

1、开始项目导入资源

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

这里写图片描述

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

这里写图片描述

将指定文件拖入MyCharacter文件夹

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

这里写图片描述

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

这里写图片描述

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

这里写图片描述

修改MyCharacter Event Graph蓝图

这里写图片描述

这里写图片描述

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

这里写图片描述

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

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

这里写图片描述

这里写图片描述

双击打开

这里写图片描述

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

这里写图片描述

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

这里写图片描述

3、动画蓝图 Animation BP

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

这里写图片描述

这里写图片描述

这里写图片描述

双击打开动画蓝图

这里写图片描述

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

这里写图片描述

这里写图片描述

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

这里写图片描述

这里写图片描述

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

创建跳跃开始状态
这里写图片描述

设置跳跃开始动画
这里写图片描述

设置可以从混合空间包含的动画转换到JumpStart状态的条件,当绑定了该动画蓝图的Pawn在空中时,执行此起跳动画。
这里写图片描述
这里写图片描述

设置跳跃循环动画,并设置转换条件,动画过渡比率为0.5,
这里写图片描述
这里写图片描述
这里写图片描述

设置跳跃结束动画,并设置转换条件——当Pawn不在空中,也就是在地面的时候,播放此动画
这里写图片描述
这里写图片描述
这里写图片描述

连接结束动画和一维混合动画,并设置条件,比率为百分之十
这里写图片描述
这里写图片描述

在Event Graph中进行逻辑判断

这里写图片描述

  • 当该动画蓝图附加给一个实例化的对象时, 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
这里写图片描述
这里写图片描述
这里写图片描述

双击打开MyCharacter,选中Mesh组件,在Details面板中修改Mesh和Animation,使用我们自己的骨骼,使用在第三步中创建的动画蓝图。
这里写图片描述

使用移动快捷键W,上下移动,得到合适的位置,使用旋转工具,让Character面向淡蓝色箭头
这里写图片描述

选中CapsuleComponent,在Details面板中修改Shape,使得Capsule Collision组件与Character差不多
这里写图片描述

添加相机,添加相机之前先给相机添加一个父组件Spring Arm,用于管理相机,修改名字,并在Details面板中的Camera Settings勾选Use Pawn Control Rotation,勾选之后,相机会跟随控制器旋转,这里,我们的控制器是鼠标
这里写图片描述
这里写图片描述
这里写图片描述

选中Movement组件,修改Jump Z Velocity为600,跳的时候,向上的速度就是600了
这里写图片描述

勾选 Orient Rotation to Movement,当角色发生旋转的时候,旋转的速度会使用上面设置的Rotation Rate
这里写图片描述

点击Class Defaults ,搜索controller,取消勾选Use Controller Rotation Yaw,使用控制器来旋转Z轴,这里我们会自己来控制,所以不需要勾选
这里写图片描述

5、角色蓝图之EventGraph

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

6、创建游戏模式蓝图

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

这里写图片描述

这里写图片描述

这里写图片描述

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

这里写图片描述

这里写图片描述

7、运行游戏

按键WASD,空格,鼠标都可以正常运行
这里写图片描述

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

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

这里写图片描述

这里写图片描述

这里写图片描述

  • 13
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值