基于虚幻4引擎的道路交通场景逼真化建模外文翻译资料

 2021-12-02 10:12

英语原文共 27 页

1 使用蓝图进行对象交互

在开始开发一个游戏时,你想到的第一步应该是建立一个原型。 幸运的是,虚幻引擎4和蓝图能让基本的游戏功能实现起来比以往任何时候都容易。这样用户便可以很快地开始测试自己的想法。 为了让大家熟悉虚幻编辑器和蓝图,我们将使用一些自带的资源和蓝图建立游戏玩法机制。

本章我们将学习以下内容:

bull;创建新的项目和关卡。

bull;在关卡中置入对象。

bull;通过蓝图改变对象的材质。

bull;使用蓝图编辑器链接所有的蓝图。

bull;编译、保存并试玩游戏。

bull;使用蓝图移动游戏世界中的对象。

创建项目和关卡

在开始创造游戏元素之前,我们需要创建一个包含游戏内容的项目。为了获取虚幻引擎4,并开始设置我们的项目,首先要打开Epic Games Launcher,通过它便可以从UE4官网下载UE4引擎。从Epic Games Launcher中,单击标有虚幻引擎的选项卡。如果您是第一次在你的计算机上使用虚幻引擎,您将看到一个灰色的未安装按钮。在Launcher左侧,您将看到一些选项。

工作标签可以让你选择已经安装的引擎版本及已经创建好的项目。现在请单击工作标签,找到黄色的安装按钮并单击,如图所示。

当引擎已经完成安装时,安装按钮将会变成启动按钮,如图所示。单击任意一个启动按钮即可启动引擎。

为新建的项目设置模板

单击启动按钮后,虚幻项目浏览器就会呈现在眼前。默认显示的是项目标签,它呈现的是已创建的所有工程的缩略图,同时也展示示例工程模板。我们的目的是要新建项目,因此单击新建项目标签。

从新建项目标签下,你可以选择一个模板,这个模板将为游戏项目提供初始的资源;或者用户也可以选择空白(不使用模板)开始你的项目。在新建项目标签下,用户会发现有两个子标签:蓝图和C 。蓝图标签用自身提供的模板创建项目,且该项目自带的蓝图具有一些基本的行为。通过C 标签下的模板创建项目,其核心的一些行为都是通过C 语言编写的。因为我们想快速启动和运行第一人称射击游戏的原型,而不是从头开始创建基本的控制功能,所以我们要确保已经选择了蓝图标签,然后选择First Person模板,如图所示。

理解项目设置

下一步是根据我们的偏好调整项目设置。在模板选择器下有3个灰色的选项,允许我们选择目标平台(桌面/游戏机、移动设备/平板电脑)、图像识别(最高质量、可缩放的3D或2D)、是否具有初学者内容。这里我们保持默认设置(桌面/游戏机,最高质量,具有初学者内容)。在这3个灰色选项的下面,用户将看到文件存储路径,可以根据自己的偏好将项目存储到硬盘相应路径下,项目名输入框内则需要你输入项目的名称。在这里将项目命名为BlueprintScripting,并将项目保存到操作系统虚幻项目的默认文件夹,如图所示。

创建项目

既然我们已经选择了模板,并且将项目按自己的偏好设置好了,那么我们就可以单击绿色的创建项目按钮创建项目。当引擎初始化资源和设置项目进程完毕后,虚幻编辑器便会打开关卡编辑器,在关卡编辑器中,你可以创建并预览关卡,放置和修改对象,如果你修改了项目,还可以及时测试。

按下工作栏顶部的播放按钮,如下图所示,用户将可以试玩第一人称模板内置的游戏。这个游戏包括了角色移动、发射子弹、使用子弹给立方体对象施加力。在游戏模式中,播放按钮将会变成暂停按钮和停止按钮。用户可以单击暂停按钮暂停游戏,当用户在运行游戏的时候,如果希望知道一个交互或者actor属性,暂停游戏会很有用。单击停止按钮将会停止运行游戏并返回编辑模式。在继续创作之前,先试玩一下游戏吧。

为关卡添加对象

现在我们希望添加自定义对象到关卡中。在关卡编辑器的中心面板是3D视口,视口为我们呈现游戏的3D内容。这是,熟悉在3D视口中的移动很重要。可以通过使用鼠标按键和拖动鼠标向周围移动控制摄像机来改变视角。在视口中按住鼠标左键并拖动光标将可以操控摄像机向前后左右移动,按住鼠标右键拖动光标将会旋转摄像机的视角。最后,按住鼠标中键并拖动光标将可以调整相机的位置(上下左右)。

UE4中最简单的对象称为actor。它可以被拖拽到游戏世界中。Actor是最基本的对象,除了能够旋转、移动、缩放之外,没有继承其他的行为,但是可以通过添加组件来获取更多的复杂行为。我们的想法是创建一个简单的目标actor,当使用枪发射子弹击中它时能够改变自身的颜色。我们可以在模式面板创建一个简单的actor,选中模式标签,单击基本然后拖拽Cylinder到3D视口当中。这个操作将创建一个新的圆柱体actor并置入到关卡中,你将在3D视口和世界大纲视图中看到它,单击鼠标右键,转到“编辑”,然后选择“重命名”,将默认的名称Cylinder重命名为CylinderTarget,如图所示。

材质

之前我们设定的目标是:当圆柱体被射弹击中后,能够改变自身的颜色。因此,我们需要改变圆柱体actor的材质。材质是一种资源,能被添加到actor的网格中(网格定义了actor的物理形状)。可以认为材质就像油漆一样作用于actor的网格或外形之上。因为actor的材质决定了它的颜色,所以改变actor颜色的方法之一就是将原先的材质替换为另一种颜色的材质。因此,我们首要任务是创建材质,这个材质将使actor呈现红色。

创建材质

在内容浏览器里找到FirstPersonBP文件夹,创建子文件夹并命名为Materials,进入Materials目录,在空白处单击鼠标右键,在弹出的菜单表中选择创建高级资源gt;gt;材质amp;贴图gt;gt;材质,将新建的材质命名为TargetRed。

材质属性与蓝图节点

双击TargetRed材质,打开编辑标签,如图所示。

上图所示为材质编辑器,其与蓝图拥有同样的特性。这个屏幕的中心称为网格。我们可以将所有的定义蓝图多级的对象放置到网格上,该网格的标签名为material,术语为节点。在之前的截图中,有一系列的输入引脚,这样其他的材质节点可以添加到上面,也因此可以定义它的属性。

为了将颜色赋给材质,我们需要创建一个节点。该节点将为节点中基础颜色输入给出颜色的信息。在节点附近的空区域单击鼠标右键,将出现一个菜单,它包含搜索框和一个可扩展的选择列表。这个展示了所有的我们可用添加到这个材质蓝图的可用蓝图节点选项。搜索框对文本很敏感,我们键入搜索对象的前几个字符就能看到一系列的搜索结果,在这里我们搜索的是VectorParameter,如图所示。

材质编辑器中的VectorParameter用于定义颜色,我们可以将它添加到材质编辑器的基础颜色输入节点。首先需要给VectorParameter节点选择一个颜色,双击Color节点的黑色区域,打开颜色选择器。当目标北选择时,我们希望它显示亮红色,在色盘中手动选择颜色,如图所示,选择完毕后单击“好”按钮,稍后你将发现原来VectorParameter节点中间黑色的部分已经变成了红色。

为了帮助我们记忆在材质中VectorParameter有哪些参数或属性,我们需要将Vector Parameter重命名为Color。当选中节点时,该节点会被金色的边框包围,查看细节面板里的内容,在通用gt;gt;Parameter处键入“Color”,这时VectorParameter节点名称自动地由None改为Color。

最后一步,连接Color VectorParameter与基础颜色节点。在蓝图中,可以通过单击和拖拽输出引脚至输入引脚将节点连接起来。输入引脚在节点的左侧,输出引脚在节点的右侧。连接两个节点的细线称之为引线。从Color输出引脚拖出一根引线至材质节点的基础颜色输入引脚,如图所示。

为材质添加属性

我们可以通过材质节点的其他输入引脚,给材质添加一些光泽。如果使用单一颜色、平整的材质,3D物体看起来就会很不真实,可以在金属和粗糙度引脚设置值来改善这一情况。在空的网格区域单击鼠标右键,在搜索框中键入“scalar”,找到ScalarParameter节点,如图所示。

找到ScalarParameter并选择,转到细节面板,由于任何叠加性的影响对材质都很微妙,设置Default Value为0.1。将节点重命名为Metallic。最后,拖出引线连接Metallic的输出引脚和材质的金属输入引脚。

还需要连接粗糙度参数,在刚才创建Metallic节点上单击鼠标右键,选择Duplicate。这个操作将生成Metallic节点的复制,唯一不同的是它没有引线和材质连接。选中这个复制节点,然后在细节面板中重命名为Roughness。保持Roughness节点中的Default Value值为0.1不变,拖出引线连接Roughness的输出引脚和材质的粗糙度输入引脚。如图所示。

至此,我们已经创建了一个亮红色的材质,当目标选择时就会用它来突出显示。单击编辑器左上角的“保存”按钮保存资源,然后关闭材质编辑器返回关卡。

创建第一个蓝图

现在游戏世界中放置了一个圆柱体,在当圆柱体被击中时,我们需要为圆柱体赋上前一节创建的材质。最后一个交互是游戏逻辑判断圆柱体被选择,然后将圆柱体的材质改变为红色材质。为了创建这一行为并添加到圆柱体上,我们需要创建一个蓝图。创建蓝图的方式有很多种,但是为了简便,我们可以创建蓝图并直接添加给圆柱体。为此,确保在场景中选中了CylinderTarget对象。单击细节面板顶端的蓝色蓝图/添加脚本按钮,将可看到路径选择窗口。

在这个项目中,我们把所有的蓝图存放在FirstPersonBP文件夹的子文件夹Blueprints下,因为这个蓝图是为CylinderTarget actor创建的,所以文件名为默认的Cylinder-Target_Blueprint即可,如图所示。

现在内容浏览器的FirstPersonBPgt;gt;Blueprints文件夹中可以看到CylinderTarget_Blueprint。双击打开该蓝图的蓝图编辑器,我们将看到圆柱体的视口视图,如下图所示。我们可以操作actor的一些默认属性或者增加更多的组件,它们都包括很多自有逻辑使得actor更加复杂。我们将在后续章节中探讨组件,现在,我们需要创建一个简单的蓝图并直接赋给actor。为此,单击视口标签旁边的事件图表标签。

浏览时间图表面板

事件图表看起来应该很熟悉,因为它与我们之前使用的材质编辑器的视觉效果和功能上有很多相似之处。默认情况下,打开事件图表时会有3个未连接也未使用的事件节点。事件指游戏中的一些动作,它作为蓝图做某件事情的触发器。大多数蓝图遵循如下结构:事件/条件/动作。这个可以被文字描述为:当某件事情发生时,检查X、Y、Z是否为真,如果为真,完成这一系列的动作。举个例子,蓝图定义了我是否开枪,流程如下:当(when)扣动扳机,如果(if)子弹已经上膛,进行(do)射击。

在事件图表中,列出的3个默认事件节点是用的最多的事件触发器。当玩家第一次开始玩游戏时触发事件Begin Play。当另一个actor开始与蓝图控制的现有actor发生触碰或重叠时触发事件Actor Begin Overlap。事件Tick在游戏运行的每一帧触发与之相关联的动作,帧率决定于电脑的配置,也影响着事件Tick触发动作的频率。

我们希望每次射弹击中圆柱体时,都能触发“改变材质”这一动作。可以使用事件Actor Begin Overlap节点来探测射弹对象与目标的网格是否重叠。我们将通过仅当另一个actor触发目标actor时检测来简化这些。以一个简洁的页面开始,选中所有的默认事件,单击键盘的[delete]键把它们都删除。

检测事件Hit

为了创建检测事件,在图表空白区域单击鼠标右键,搜索框中输入“hit”,如图所示。找到事件Hit节点并选择,当这个蓝图控制的actor被另一个actor触发的事件Hit。

当在事件图表中添加了事件Hit节点后,会看到事件Hit节点上有许多颜色各异的输出引脚。首先注意到节点右上角的白色类似三角形的引脚,这是执行引脚。它定义了动作序列中下一步要执行的动作。将不同节点的执行引脚连接在一起便组成了所有蓝图的基本功能。既然拥有了触发器,那我们就需要找到一个动作,这个动作可以让我们能够改变actor的材质。

从执行引脚拖出一根引线至节点右端的空白区域,将自动出现一个搜索窗口,允许我们创建一个节点并将它与执行引脚相连。确认搜索 框内勾选了情境关联。这样将搜索结果限制在能够被添加的节点中。在搜索框内键入“set material”,选取Set Material节点。

[如果在勾选了情境关联的情况下搜索不到想查找的节点,可尝试去勾选重新选择。即使这个节点在情境关联搜索时查不到,它仍有可能添加到蓝图逻辑当中。]

事件Hit节点中的动作如图所示。

转化材质

当用户将Set Material节点放置到蓝图中后,便会注意到它已经与时间Hit节点的执行引脚连接。当蓝图的actor被另外的actor击中时,蓝图现在将会执行Set Material动作。然而,我们现在还没有设置响应Set Material时将要调用的材质。

为了设置将调用的材质,单击Set Material节点中的选择资源,调出下拉列表,在搜索框输入“red”来搜索之前创建的Target Red材质。查找到该材质后单击它,将该资源添加到Set Material节点的材质区域,如图所示。

我们现在已经做好了改变目标圆柱体颜色的蓝图准备工作,但是在保存蓝图之前,还需要编译一下。编译是将蓝图语言转换为告诉计算机该如何操作的机器命令。单击编辑器工具左上角的编译按钮,然后单击保存。

既然我们已经设置了以一个基础的游戏交互,运行测试一下,确保结果是否

原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。