虚幻5简单第三人称游戏制作文档
基本需求
最后成果与ue5引擎第三人称初始化后的内容类似(但要从空白项目做起)
![9627b64fa3ba6fd5f18789bd24da7bb](https://i-blog.csdnimg.cn/blog_migrate/86032b44e6c1586013f1715c3b4b1de8.png)
基础创建
- 登录到 Epic Games启动程序,通过 新建(New)>游戏(Games)>空白(Blank)>项目(Project)
文件结构目录
ctrl
+space
可快速打开内容浏览器
-
_项目名
-
Blueprints 蓝图
-
Maps 地图
-
Materials 材质
-
Meshes 网格体
-
Textures 纹理
-
FXs 粒子与特效
-
Audio 音频
-
Cinematics 过场动画
-
Characters 角色
- 角色名
- Animations 动画
- Mesh
- Textures
- Materials
- 角色名
- Props
- 资产名
- Materials
- Textures
- 资产名
-
角色
[虚幻引擎5.0文档 设置角色动作] //官方文档
创建玩家角色
在角色下的Mesh里添加->蓝图->角色,命名为**BP_name (所有命名前要写元素的类型)
导入角色骨骼体和动画
获取骨骼体和动画的两种方式
- 进入虚幻商场下载动画初学者内容包,在平台将保管库内容添加到项目里
- 创建现成的工程,在文件夹里打开,将content文件里的内容复制到你的项目文件夹的content里。
在内容管理器里将所需要的骨骼体拖入到之间建立好的项目文件夹Characters->角色名->Mesh里,动画放在Characters->角色名->Animations里。
绑定骨骼体
双击 BP_name 打开 类默认值,然后在组件(components)选项卡中,选择 网格体(CharacterMesh0) 骨骼网格体组件(Skeletal Mesh Component),并导航至 细节面板(Details panel)。在 网格体(Mesh) 类别中,选择 骨骼网格体变量(Skeletal Mesh variable) 旁边的下拉箭头,并从下拉菜单中选择SK_Mannequin。(即你下载好的骨骼体)
![变换设置](https://docs.unrealengine.com/5.0/Images/making-interactive-experiences/Tutorials/CharacterMovement/SettingUpCharacterMovement-BP/TransformSettings.jpg)
将位置和旋转值如上图调节后,角色的骨骼网格体将出现在箭头组件方向。
弹簧臂和摄像机设置
分别在网格体下按上图层次添加SpringArm和Camera组件
在SpingArm组件的细节面板里,在 摄像机设置(Camera Settings) 类别,启用 使用Pawn控制旋转(Use Pawn Control Rotation)。(不打开的话视角只能水平移动)
![4ed7a4fe657160efc8f59a483d81250](https://i-blog.csdnimg.cn/blog_migrate/629a34ac0f4d7ea143dbdaa858fa3817.png)
弹簧臂长度调节远近,目标偏移调节角度
角色移动设置
![223387011c42fec64dd13ed405a6cc6](https://i-blog.csdnimg.cn/blog_migrate/c2029396f3eaf274f1ab5ba1b70ae0ba.png)
实现基本移动功能
-
导航至 编辑(Edit)>项目设置(Project Settings)>输入(Input),然后在 绑定类别(Bindings Category) 中点击 操作映射(Action Mappings) 旁边的 + 号,添加以下内容:
-
在 内容浏览器(Content Browser) 中,双击 BP_name 打开 类默认值,然后右键点击 事件图表(Event Graph),并在下拉菜单中搜索和选择 MoveForward。(这里可以搜到Moveforward是因为上面步骤添加了)
用相同步骤完成上图的蓝图,这个蓝图实现了角色前后左右移动的能力。
镜头可跟随鼠标上下移动
蹲伏和跳跃
冲刺
但此时虽然看似完成了移动的操作,但运行起来任务模型只能像个架子移来移去,没有动作
这是因为我们还没有做动作的动画
设置游戏模式
-
在 **内容浏览器(Content Browser)**项目的蓝图文件夹中,点击 添加/导入(Add/Import) 按钮,并创建新的 蓝图(Blueprint) 类,当 选择父类(Pick a Parent Class) 菜单显示时,选择 游戏模式基础(Game Mode Base),并将新游戏模式类命名为 Bp_GameMode。
-
双击 Bp_GameMode 打开类默认值,然后导航至 细节面板类类别(Details panel Classes category),默认Pawn类选择Bp_name。
-
导航至 编辑(Edit)>项目设置(Project Settings)>地图和模式(Maps & Modes),在 默认模式类别(Default Modes category),选择 Bp_GameMode。
创建移动混合空间
也就是动作的动画
-
在 内容浏览器(Content Browser) Character->Animations中,点击 (添加/导入)Add/Import > 动画(Animation) > 混合空间(BlendSpace),当提示选择骨架时,选择 UE4_Mannequin_Skeleton(角色的骨架),然后将你的混合空间命名为 Locomotion_BS。
-
双击打开 Locomotion_BS 混合空间。在 资产详情选项卡(Asset Details tab) 中,导航至 轴设置(Axis Settings) 类别,然后选择 水平轴(Horizontal Axis) 和 垂直轴(Vertical Axis) 旁边的箭头,查看更多变量详情。
这样设置的目的是,能在速度和方向两个维度上选择该放什么动画
-
导航至 资产浏览器(Asset Browser),然后在过滤器搜索栏中,输入 Idle_Rifle_Hip,然后将 Idle_Rifle_Hip 资产拖放到 **方向0.0*和*速度0.0 的 混合空间。之后分别搜索不同的动画,放置在正确的位置
按住
ctrl
可以查看不同位置的动画效果
创建蹲伏混合空间
-
在 内容浏览器(Content Browser) Character->Animations 中,点击 (添加/导入)Add/Import > 动画(Animation) > BlendSpace,当提示选择骨架时,选择 UE4_Mannequin_Skeleton,然后将你的混合空间命名为 LocomotionCrouch_BS。
-
双击打开 LocomotionCrouch_BS 混合空间。在 资产详情选项卡(Asset Details tab) 中,导航至 轴设置(Axis Settings) 类别,然后选择 水平轴(Horizontal Axis) 和 垂直轴(Vertical Axis) 旁边的箭头,查看更多变量详情。
-
与之前相同
创建动画蓝图
你将需要 动画蓝图,它将根据玩家的当前动作确定要播放的角色动画。此外,你将需要设置 状态机(State Machine) 以便创建 行走(Walk) 和 蹲伏(Crouch) 状态,然后设置状态之间的过渡。
-
在 内容浏览器(Content Browser) 中,点击 添加/导入(Add/Import)>动画(Animation)>动画蓝图(Animation Blueprint),当提示选择骨架时,选择 UE4_Mannequin_Skeleton,然后将你的动画蓝图命名为 PlayerCharacter_AB。
-
双击 PlayerCharacter_AB 打开动画蓝图。在 我的蓝图选项卡(My Blueprint tab) 中,导航至 变量(Variables) 类别 ,并选择旁边的 + 号,创建名为 Is Crouched 和 Is Jumping 的 两个 布尔 及Speed和Direction 两个 浮点变量。
-
点击 事件图表(Event Graph) 选项卡, 建立动画的蓝图。通过蓝图获取运动状态。
创建动画状态机
状态机 可以用图形显示骨骼网格体的动画组织成一系列 状态。这些状态会在 过渡规则 的控制下从一种状态过渡到另一种状态。你将使用布尔变量在前面分段中创建的不同运动混合空间之间过渡。
-
在 PlayerCharacter_AB 动画蓝图中,导航至 动画图表(Anim Graph)。
动画图表 Anim Graph用于评估骨骼网格体的最终姿势。
-
右键点击 AnimGraph,并从 操作(Actions) 下拉菜单搜索并选择 添加新的状态机(Add New State Machine)。将State Machine节点重命名为 Locomotion.
-
双击状态机打开图表。从 条目(Entry) 引脚拖移,并从 操作(Actions) 下拉菜单中选择 添加状态(Add State)。将新状态命名为 动作(Movement),用同样操作创建Jump和Crouch的状态机。
-
双击打开 动作状态节点(Movement State Node)。导航至 资产浏览器(Asset browser),搜索 Locomotion_BS,然后点击并将其拖放到图表中。将变量Direction和Speed拖入并连接。
-
Jump和Crouch状态机如下
由于这个简单的角色没有判断 是否在空中 ,所以跳跃动画其实无法触发。
- 从 内容浏览器(Content Browser) 双击 Bp_name,打开 类默认值,然后在 组件(Components) 选项卡中,选择 网格体组件(Mesh component),然后导航至 细节面板动画类别,在 动画类变量下拉菜单中,搜索并选择 PlayerCharacter_AB。
环境
平面地图
- 快捷键
shift
+2
打开地形编辑
地形->材质中,可以搜索grass,选择后,在调整地形大小和位置,最后点击创建。
用雕刻中的工具可以实现山,谷各种形状,按住shift
键可以使地形往下凹。
- 可以创造海洋将边界挡住,先选择一个小立方体,调整大小,长宽100000,高100,选中后在上边的工具栏Actor中将其转换为静态网格体,存放在文件目录Meshes中,命名为SM_Ocean。选择材质,搜索water,即可创造大海。
基本几何体
两种方法
- 自带了一些基本网格体可以添加
- 将喜欢的资源直接拖到项目的content文件夹里
结语
如何改进
-
添加检查是否在空中的蓝图,完成空中的动画。
-
解决当左右冲刺时,冲刺方向的动画。