虚幻引擎4笔记(13)-游戏地图

前言

蓝图是虚幻引擎的一个可视化编码语言,不会编程的朋友也能通过蓝图来实现游戏的制作。
本人于2020年的3月份入坑虚幻4,可能技术上有些欠缺,要是有大佬发现哪里错了的话敬请指出。写文章的主要目的是为了记录自己的学习过程,不过也希望能帮助到其他像我一样的朋友学习虚幻蓝图。不同版本的虚幻引擎有进行不同程度的汉化,相应蓝图节点也会变化。
此文章中使用的虚幻引擎版本: 4.23.1

随着学习的深入,后面的笔记会慢慢省略一些前面笔记写的内容,有需要的话可以去看较基础的笔记内容。
虚幻4官方文档
虚幻4中文官网
虚幻引擎蓝图API参考文档
虚幻引擎4蓝图节点-小狐狸233
注:此篇文章仅实现游戏的小地图、大地图的简易实现方式,不对其他的内容进行介绍,此文章需要导入一个第三人称包,实现地图的蓝图不止文章中的一种方法,你还可以选择其他的蓝图节点来实现地图的功能。

上一篇笔记

虚幻引擎4笔记(12)-游戏界面

下一篇笔记

虚幻引擎4笔记(14)-测量模型长宽高

动态预览图

在这里插入图片描述

预览

关卡蓝图

在这里插入图片描述
在这里插入图片描述

一、小地图的实现

[1]. 创建渲染目标

这个渲染目标主要是为了从俯视镜头中获取信息,可以通过渲染目标来创建材质,以便之后地图的显示。
在这里插入图片描述
在这里插入图片描述

[2]. 角色蓝图

此处使用的是第三人称的默认角色蓝图,蓝图的位置如下
在这里插入图片描述

(1) 添加移臂

在这里插入图片描述
在这里插入图片描述

(2) 添加场景镜头组件

先选择刚刚创建的移臂,然后再添加Scene Capture Component 2D组件附属到移臂下方
在这里插入图片描述
在这里插入图片描述

(3) 移臂调整

因为我们需要做的是一个小地图,而小地图的视角是俯视向下的,所以我们需要调整镜头的位置到人物的头顶。
通过移臂我们可以直接调整移臂附属下的组件位置。
绕Y轴的旋转改为 -90度 ,高度随意
在这里插入图片描述

(4) 输出渲染目标

选择刚刚的Scene Capture Component 2D组件,
在这里插入图片描述
Texture Target中选择刚刚创建的渲染目标,选中之后就能将这个组件的捕捉到的镜头信息输出到该渲染目标中去。
在这里插入图片描述
选择完毕后编译保存角色蓝图

[3] 创建材质

如果你之前的操作没有出现错误的话,渲染目标将会显示相应的镜头信息。
在这里插入图片描述
右键渲染目标点击创建材质
在这里插入图片描述
材质的名称会默认在渲染目标的基础之上添加 _Mat 的后缀
在这里插入图片描述

[4]. 材质

因为当前创建的材质是一个3D类型的,如果需要弄成小地图进行显示的话,就需要变成2D,即平面的。
先打开材质,从左侧的视口就可以看见是一个立体的材质。
在这里插入图片描述
然后修改Material Domain的参数为User Interface,变更后材质的蓝图会发生变更
在这里插入图片描述
将RGB输出与最终颜色相连即可。
在这里插入图片描述
视图变为2D
在这里插入图片描述

[5]. 控件

以上的步骤完成之后,我们需要有一个控件能够将材质中的镜头输出到屏幕。
具体的操作方法与上一个笔记内容类似:虚幻引擎4笔记(12)-游戏界面

(1) 创建控件蓝图

在这里插入图片描述

(2) image组件

点开控件蓝图,并添加一个image组件到面板中
在这里插入图片描述
调整好小地图在屏幕当中的位置。
在这里插入图片描述

(3) 绘制图像

选择刚刚的image组件,并在细节面板中找到Brush的参数,选择之前创建的地图材质。
在这里插入图片描述
编译保存

[6]. 关卡蓝图

控件创建完毕后,就需要使用他

(1) 帧事件

如果使用的事件节点只是触发一次的话,在大地图功能中需要将所有控件删除,而无法实现小地图的显示,所以不能使用事件Begin Play来触发相应的控件。
该事件节点每经过一帧就会触发一次与其连接的节点。

注:因为这个Tick节点是每经过一个帧就执行一次,所以会比较消耗性能。
在这里插入图片描述

(2) 创建控件

之前我很疑惑的是为什么不是直接使用控件,而是创建控件。
之后思考了一下,可能就是由于创建了控件之后,才有办法对控件中的内容进行操作。

在这里插入图片描述

(3) 玩家控制器

如果你的游戏中不只有你一个玩家,且没有指定玩家的话,你的小地图可能就会显示的是其他玩家的镜头。这个节点相当于指明了为玩家0(即自身)创建一个小地图控件。
在这里插入图片描述

(4) 添加到屏幕

Add to Viewport的作用就是将控件之中的东西显示到相应的玩家屏幕中。
注:该节点没法直接搜索创建,需要通过其他节点的输出接口创建
在这里插入图片描述
连接相应接口
在这里插入图片描述
编译保存

二、大地图的实现

因为在之前的小地图操作中已经设置好了相应的组件和材质,两个地图可以使用同一个材质来进行显示,所以要弄一个大地图就只需要再创建一个控件即可。

[1]. 控件

因为相应的操作和步骤一中的类似,所以就不再赘述了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编译保存

[2]. 操作映射

我们需要绑定一个按键M,然后实现按下M之后就显示大的地图,松开M后大地图就消失。

在这里插入图片描述

[3]. 关卡蓝图

(1) 操作事件

创建一个刚刚绑定好的事件节点
在这里插入图片描述

(2) 创建控件

在这里插入图片描述

(3) 玩家控制器

在这里插入图片描述

(4) 添加到屏幕

在这里插入图片描述

(5) 删除地图

添加一个 Remove all widget节点,这个节点的功能就是执行该节点后,删除所有的控件,从而使得地图消失。因为小地图是每帧都会绘制一次,所以不用担心小地图会被删除。
将事件节点的Released接口与该节点相连,当松开M键之后就会执行这个节点了。
在这里插入图片描述
记得编译保存,然后你就能将那个角色蓝图类拖动到地图中使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章