Unreal4 蓝图编辑器参考 0004bate1

Unreal4 蓝图编辑器参考 0004bate1,第1张

本页包含蓝图编辑器的界面元素和基础使用说明。

蓝图可视化脚本编写是 UE4 中一个用途广泛的系统。蓝图可以推动基于关卡的事件,为游戏内的 Actors 控制内部编写脚本的行为,甚至可以在高度写实的游戏角色系统中控制复杂动画。对于这些蓝图的单个应用而言,编辑蓝图脚本的位置和可使用的工具将根据不同需求产生细微变化。这意味着在 UE4 中蓝图编辑器存在多个出现位置和出现方式。抛开差异而言,蓝图编辑器执行的主要任务是一样的:创建并编辑强大的可视化脚本,驱动游戏的诸多元素。

究其本质而言,蓝图编辑器就是基于节点的图表编辑器。它是创建和编辑可视化脚本节点网络的主要工具,通常简称为蓝图。蓝图编辑器的设计对上下文(context)十分敏感,可在需要时单独访问对象的功能,在需要执行非常规 *** 作时进行灵活处理。

关于蓝图编辑器有以下几个关键点:

在深入了解蓝图编辑器之前,应先对蓝图本身有良好理解。

蓝图编辑器的位置和可用工具将随当前编辑的蓝图类型出现细微变化。该文档将助你确定是否需要查看蓝图编辑器特殊形态的 UI 详解,或只需要看到可用功能的顺序列表。

关卡蓝图(Level Blueprint) 是一种专业类型的 蓝图(Blueprint) ,用作关卡范围的全局事件图。 在默认情况下,项目中的每个关卡都创建了自己的关卡蓝图,您可以在虚幻编辑器中编辑这些关卡蓝图, 但是不能通过编辑器接口创建新的关卡蓝图。

与整个级别相关的事件,或关卡内Actor的特定实例, 用于以函数调用或流控制 *** 作的形式触发 *** 作序列。 熟悉虚幻引擎3的人应该非常熟悉这个概念, 因为它与Kismet在虚幻引擎3中的工作原理非常相似。

关卡蓝图还提供了关卡流送和[Sequencer]的控制机制, 以及将事件绑定到关卡内的Actor的控制机制。

在编辑关卡蓝图时,蓝图编辑器包含以下部分

类默认值(Class Defaults) 选项卡包含有关蓝图默认设置和属性的信息,以及有关蓝图包含的任何变量的信息。您可根据需要修改这些设置。

类默认值(Class Defaults) 选项卡包含以下部分:

您也可以通过使用 获取类默认值(Get Class Defaults) 蓝图节点在运行时访问类默认值(Class Defaults)中定义的属性。目标用例用于纯数据蓝图类类型和其他情况,在这些情况下,您可能不一定需要/想要创建实例来访问默认属性值。

1.在您的蓝图类或函数图表中 右键单击,并从上下文菜单中输入 GetClassDefaults。

2.通过类选择器下拉菜单选择要访问的类。

您也可以使用函数调用或变量产生的类类型,如下面的示例所示。

3.选择节点后,您可以通过 详细信息(Details) 面板显示/隐藏引脚。

输出引脚(可访问的类属性)默认为显示,并且可以选择隐藏(类似于结构体断开/设置节点(Struct BreakSet Nodes)。

对象参考属性默认值当前 未 公开。

当前只公开 蓝图可见(BlueprintVisible) 或 蓝图只读(BlueprintReadOnly) 属性供默认访问。

目前,类(Class)输入下拉列表列示了 所有 UOBject派生的类类型(包括引擎类)。

工具栏 默认显示在蓝图编辑器的左上方。通过蓝图编辑器工具栏按钮可轻松访问编辑蓝图时的常用命令。工具栏将基于开启的模式和当前编辑中的蓝图类型提供不同按钮。

工具栏包含两个部分:

编译器结果 面板提供了编译您的蓝图脚本的反馈,告知您蓝图脚本编译是否成功或者是否有 错误 或 警告 。任何时候当发现错误或警告时,编译器结果面板会提供关于错误的信息并给出超链接,使您可以直接跳转到图表视图中存在问题的根源处。

默认情况下, 编译器结果 面板并不总是显示,但是可以在蓝图编辑器的 窗口 菜单中找到它。当蓝图编译时产生了错误或警告时,也会自动打开该面板。一般,该面板将会出现在当前 图表 面板的底部。

任何时候,当您的编译过程中产生警告或错误时, 编译器结果 面板使您可以执行以下 *** 作:

将鼠标悬停到一条信息上来查看详细信息。

将鼠标悬停到一条信息尾部的超链接上,来查看到出问题的节点的链接。

点击面板右下角的 清除 按钮来清除现有的所有信息。

我的蓝图(My Blueprint) 选项卡显示了蓝图中图表、脚本、函数、宏等内容的树状列表。本质上其是蓝图的轮廓,以便让使用者更加便捷地查看蓝图现有元素或创建新元素。

不同类型的蓝图将在 我的蓝图(My Blueprint) 选项卡树状列表中显示不同的项目类型。

下方5个部分中可将蓝图元素组织到相应分组。而顶端部分提供新建图表、变量等快捷方式,同时还可在其中搜索整个 我的蓝图(My Blueprint) 面板。

我的蓝图(My Blueprint) 选项卡含有用于搜索蓝图下属图表的文本框。此文本框的 *** 作方式与用于添加新节点的 *** 作菜单相同,但仅限于在 我的蓝图(My Blueprint) 中搜索对象。使用者可基于命名、注释和其他数据进行搜索。举例而言,若一个节点为 SetActorHidden,只需在文本框输入对应文本,浏览器即可显示图表中所有 SetActorHidden 节点。

例如:法线蓝图固定显示 ConstructionScript 和 EventGraph。

此外,蓝图中创建的函数都将被显示。

关卡蓝图仅会显示 EventGraph 和其中创建的函数。

接口仅会显示其中创建的函数。

宏蓝图显示其中创建的宏函数。

在 我的蓝图(My Blueprint) 选项卡中 点击右键 同样可以访问以上按钮。右键 菜单还包含了新建列举资源的选项。

作为蓝图编辑器中的搜索工具,蓝图可以让您快速追踪各种对象。

Find Results(搜索结果) 面板是蓝图编辑器中的一个强大的搜索工具,允许您快速地基于以下条件来追踪各种对象:

当 搜索结果 面板跟踪搜索匹配项时,它将会显示一个结果列表,每项结果就像一个超链接,可以让图表视图跳转到对应的节点上。当需要跟踪可能深埋于复杂的蓝图脚本节点网络中的特定节点或一段信息时,这是一种非常好的方法。

和在网页浏览器中搜索类似,当在蓝图编辑器中工作时,按下 Ctrl-F 可以调出 搜素结果 面板。默认情况下,该面板出现在 图表 面板的底部。如果 Compiler Results(编译结果) 面板正在显示中,那么 搜索结果 面板将停靠在它的旁边。

Details(细节) 面板是一个情境关联的区域,使得可以在蓝图编辑器中编辑选中项的属性。它包含一个用于快速访问特定属性的搜索条,并且一般还会包含一个或多个可折叠的类目,用于组织其中所包含的属性。

细节面板 也是您处理很多蓝图编辑工作的地方,包括:

图表编辑器(Graph Editor) 面板是蓝图系统的核心。您可在此创建节点和线路的网络,以定义脚本化行为。您可以单击节点以快速选择节点,并拖动节点来重新定位它们。

使用以下控件可浏览 图表编辑器(Graph Editor) 选项卡:

概述蓝图类的组件模式中的视口

在 视口(Viewport) 中,您可在蓝图编辑器中查看和 *** 控您蓝图的组件。

视口(Viewport) 左上角的 视图(View) 下拉菜单中的选项与关卡编辑器的 视口(Viewport) 菜单选项存在少许差异。

六、自动测试技术

1.自动测试分为简单测试和复杂测试,简单测试用来描述单个原子测试,复杂测试用来运行基于多个输入的相同代码。

2.简单测试可用来确认特定功能如预期般可 *** 作。一般都是单元测试或功能测试。

3.复杂测试可被用来对一系列物品迭代并对每个物品运行相同的功能。一般就是内容压力测试。例如载入所有地图或编译所有蓝本。

4.当前的规则是将所有的自动测试放置到相关模块内的PrivateTests目录。测试文件命名为[ClassFilename]Test.cpp

5.这些测试通过应用RunTest()函数来单独定义其功能,而且Parameters字符串将保持为空字符串。

IMPLEMENT_SIMPLE_AUTOMATION_TEST( TClass, PrettyName, TFlags )

IMPLEMENT_COMPLEX_AUTOMATION_TEST( TClass, PrettyName, TFlags )

七、编码规范

1.编码规范对于程序员来说非常重要,原因如下:

a.一套软件80%的生命周期都是维护。

b.在软件的整个生命周期中,几乎不可能一直是软件的原始作者来对其进行维护。

c.编码规范可以改进软件的可读性,从而使得工程师可以快速并透彻地理解新的代码。

d.如果我们决定将源代码公布到 MOD 开发者社区,那么我们想让它通俗易懂。

e.大部分编码规范实际上是交叉编译器兼容性所要求的。

2.变量、方法及类的名称应该清晰、明确且具有描述性。

3.注释应该是辅助加强代码的,代码是功能实现,注释表明了代码的目的。

八、对象

1.虚幻引擎中的对象基础类为UObject。UCLASS宏可用于标记从UObject派生的类,使UObject处理系统识别到它们。

2.UCLASS宏为UObject提供一个对UCLASS的引用,描述其基于虚幻引擎的类型。

3.每个UCLASS保留一个称作“类默认对象(Class Default Object)”的对象,简称CDO。

4.新建UObject示例的函数有:

a.NewObject () 创建一个自动生成命名的新实例。在简单情况下使用最佳。

b.NewNamedObject () 使用特定命名以及其他几项任选参数创建一个新实例。将判断新实例的Outer中是否存在命名冲突。

c.ConstructObject () 创建一个提供所有可用创建选项的新实例。仅限需要灵活性时使用。

d.new 用于在特定低层情况下构建对象,如构建函数需要参数时。

5.UObjects提供的功能有:

a.垃圾回收:虚幻引擎实现了一个垃圾回收方案,定期清理不再被引用或被显式标记为待销毁的 UObject。

b.引用更新:对象被垃圾回收清理时,对它的UPROPERTY引用将自动被更新为 NULL。

c.映象

d.序列化:当一个 UObject 被序列化时,所有 UProperty 数值将被自动书写或读取。

e.默认属性变化自动更新:UClass 的CDO发生变化时,引擎将尝试把这些变化智能应用到类的所有实例上(在它们被加载时)。

f.自动属性初始化:初始化时,在构建函数被调用之前,UObject 将被自动清零。

g.自动编辑器整合:编辑器理解 UObjects 和 UProperties,还可将这些数值自动公开进行编辑,而无需编写特殊代码。

h.运行时类型信息可用:UObject 明确其为何种 UClass,运行时可作出类型相关的决定。

i.网络复制:UObject 系统包括一个稳定的功能集,实现网络通讯和多人 游戏 。

6.UObjects的头文件格式:

#include 'Object.h'

#include 'MyObject.generated.h'

UCLASS() //UCLASS 宏使虚幻引擎 4 能识别 UMyObject。

class MYPROJECT_API UMyObject : public UObject //如 MyProject 希望将 UMyObject 类公开到其他模块,则需要指定 MYPROJECT_API。

{

GENERATED_BODY() //对类进行设置,以支持引擎要求的基础结构。

}

因为每次创建测试场景时需要做基础物件摆放与后处理场的参数设置,因此,需要自定义一个常用的New Level;

1)先打开一个空场景。

2)对场景修改后,保存为场景资源

3)在ps中制作一个用作缩略图的资源

4)找到你的对应版本的引擎文件根目录,按以下路径拷贝地图与缩略图资源;

Level目录:\UE_4.16\Engine\Content\Maps\Templates

纹理资源目录:\UE_4.16\Engine\Content\Maps\Templates\Thumbnails

5)找到并打开 “ BaseEngine.ini ”

alt+F搜索关键文本:

[/Script/UnrealEd.UnrealEdEngine]

AutoSaveIndex=0

+TemplateMapInfos=(ThumbnailTexture=Texture2D'/Engine/Maps/Templates/Thumbnails/Default.Default',Map="/Engine/Maps/Templates/Template_Default")

+TemplateMapInfos=(ThumbnailTexture=Texture2D'/Engine/Maps/Templates/Thumbnails/VR-Basic.VR-Basic',Map="/Engine/Maps/Templates/VR-Basic")

6)添加“+TemplateMapInfos”行,将我们新加入的内容的查找路径以同样的格式写入其中

7)重新打开任意的刚刚做完修改的版本的UE4项目,可以在打开新场景时发现自定义模板

---如果使用了自定义的资源,将自定义的资源放在:Engine \ Content \ MapTemplates 目录下.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11668887.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存