虚幻引擎 4 术语

本页面的目的是介绍当应用 虚幻引擎 4 时遇到的常用术语。比如,如果您发现自己会问像 “什么是 Actor”、“什么是 组件”、“什么是 Pawn”这样的问题, 那么本页面便突出介绍了并提供了关于这些类型问题的描述。一旦您理解了每个术语的意思,下面的链接提供了更多文档及如何使用它们的指南。

NewProject.png

项目

项目(Project) 是保存所有组成单独游戏并与您硬盘上的一组目录设置相一致的所有内容和代码的自包含单位。 举例来说,下图中, 内容浏览器 的层次结构树中包含与您硬盘中的项目文件夹内相同的目录结构。

点击图像以获得完整视图。

尽管项目经常是由与其关联的 .uproject 文件所引用,它们是互存的两个单独文件。 .uproject 是用于创建、打开或保存文件的参考文件,Project(项目)中包含了所有与其关联的文件和文件夹。

您可以创建任意数量的不同项目,您可以并行地保存并开发它们。 引擎(和编辑器)可以方便地在其中切换,它们可以让您同时开发多个游戏,或除了主要游戏项目外,具有多个测试项目。

要了解更多信息,请参阅: 虚幻项目文件

objects_topic.png

对象

在虚幻引擎中,最基础的建造单元叫做 Object,对于制作游戏内容来说,它包含了很多必要的 背后的 功能。虚幻引擎 4 中几乎所有的东西都是继承于 Object。在 C++ 中,UObject 是所有类的基类,实现了诸如垃圾回收、开放变量给编辑器的元数据(UProperty),以及存盘和读盘时的序列化功能。

要了解更多信息,请参阅: 虚幻项目和游戏性 , 游戏性编程

Both_topic.png

Class(类)

class(类) 是一组行为、属性或其他元素(比如函数和事件)的集合,在创建虚幻引擎游戏时要使用特殊的元素。类是以层次化结构呈现的;一个类继承其父类(它所继承的类)并将信息传给其子类。类既可以使用C++中代码创建,也可以使用蓝图创建。

要了解更多信息,请参阅: 蓝图类 , 游戏性类 , 创建类的基础知识

actors_topic.png

Actors

Actor 是可以放置在关卡中的任意对象。Actor 是支持三维变换的通用类,比如如平移,旋转和缩放变换。 Actor 可以通过游戏代码(C++或蓝图)来创建(Spawn)及销毁。在 C++ 中,AActor 是所有 Actor 的基类。

引擎中有多种不同类型的 Actor,比如:StaticMeshActor(静态网格物体)、CameraActor(摄像机)及 PlayerStartActor(玩家起始点)。

要了解更多信息,请参阅: Actors 和 几何体

components_topic.png

组件

组件 是一种特殊类型的对象,用作为 Actor 中的一个子对象。组件一般用于需要简单地切换的部件的地方,以便改变具有该组件的 Actor 的某个特定方面的行为或功能。比如,一辆汽车的控制机及运动和飞机是有很大差别的,而飞机的控制和运动又和船有很大区别,以此类推;然而,所有这些都是交通工具,它们存在一些共性。通过使用一个组件来处理这些控制及运动,可以很轻松地使得同一交通工具的行为变得像任何一种特定类型的交通工具。

要了解更多信息,请参阅: 组件 , 组件窗口 , 代码中的组件

pawn_topic.png

Pawn

Pawn 是Actor的子类,可作为游戏中的化身或人物,例如游戏中的角色。 Pawn可以由玩家控制或由游戏的AI控制,比如非玩家控制角色(NPCs)。

当Pawn由人类玩家或AI玩家控制,它被视为 被支配 。 相反地,当Pawn不由人类玩家或AI玩家控制,它被视为 不受支配

要了解更多信息,请参阅: Pawn , 支配 Pawn

character_topic.png

Character

Character(角色) 是Pawn Actor的子类,用作为玩家角色。Character子类包括碰撞设置、两足动物运动的输入绑定、及由玩家控制的运动的额外代码。

要了解更多信息,请参阅: 角色 , 角色设置 , 指南 - 角色运动

ArtAssets.png

PlayerController(玩家控制器)

**PlayerController**类被用于获得玩家输入并将其转化为游戏中的互动,并且每个游戏至少有1个玩家控制器。 PlayerController(玩家控制器)常常支配着游戏中代表玩家的Pawn或角色。

PlayerController(玩家控制器)也是多人游戏中的主要网络交互点。 在多人游戏中,服务器具有游戏中每个玩家的玩家控制器的一个实例,因为它必须能对每个玩家进行网络函数调用。 每个客户端仅具有与其玩家相符的玩家控制器,并且仅能使用其玩家控制器来与服务器沟通。

要了解更多信息,请参阅: PlayerController(玩家控制器)

fullTree.png

AIController(人工智能控制器)

正如 PlayerController 控制一个 Pawn 让其代表游戏中的玩家一样,AIController 则控制一个 Pawn 让其代表游戏中的非玩家角色(NPC)。 默认情况下,Pawn 和 Character 都将由 AIController 这个基类控制,或者人为为它们指定一个 PlayerController 控制,又或者为其自身创建一个特定的 AIController 子类。

要了解更多信息,请参阅: AIController

geometry_brush.png

画刷

brush (画刷)是用来定义BSP关卡几何体和游戏体积的3D体积。 另外,它也表示您可以用来对表面或场景涂画不同的值(比如颜色)的一种用户接口设备。

要了解更多信息,请参阅: CSG画刷用户指南 , 几何体编辑范例

levels_topic.png

关卡

level (关卡)是定义的游戏区域。 也被称为地图。 我们主要通过放置、变换及编辑Actor的属性来创建、查看及修改关卡。 在虚幻编辑器中,每个关卡都被保存为单独的.umap文件,它与项目文件 (.uproject)不同。

关于更多信息,请参阅: 场景关卡 , 关卡编辑器 , 关卡设计内容示例

LevelsWindow.png

世界

一个 World(世界) 包含了所加载的一系列关卡。它处理关卡的动态载入及动态Actor的生成(创建)。

尽管没有必要直接同世界交互,但它确实在游戏中帮助提供了一个特定的引用点。也就是,当提到“世界”时,意味着您说的不是关卡、地图或游戏)。

要了解更多信息,请参阅: 世界构成器的用户指南

gamemode_lander.png

GameModes(游戏模式)

GameMode 类负责设置正在运行的游戏的规则。这些规则包括了玩家如何加入游戏、游戏是否可以暂停、关卡转变及任何游戏特定行为,如胜利条件等。

您可以在 Project Settings(项目设置) 中设置默认游戏模式,但您可以基于每个关卡覆盖该设置。无论您选择如何实现游戏模式,每个关卡中将总是仅存在一种游戏模式。在多玩家游戏中,游戏模式仅存在于服务器上,各种规则会被复制(发送)到每个连接的客户端上。

关于更多信息,请参阅: GameMode 游戏模式 , 在蓝图中设置游戏模式

gamestate_topic.png

GameStates(游戏状态)

GameState(游戏状态) 包含了在游戏中您想复制到每个客户端的信息,或者更简单地讲,它就是每个连接到该游戏的人的“游戏状态”。

它通常包括的信息有游戏分数、比赛是否开始、根据世界中玩家数量要生成多少个AI及其他游戏相关的信息。

对于多玩家游戏,每个玩家的机器上都有一个GameState的实例,其中服务器的实例(或者客户端从其获取更新的实例)是最权威的。

关于更多信息,请参阅: GameState 游戏状态

playerstate_topic.png

PlayerStates(玩家状态)

PlayerState 是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。 作为游戏世界一部分存在的非人类玩家AI没有PlayerState。

PlayerState(玩家状态)中出现的恰当的示例数据包括玩家名称或分数、其当前关卡或生命值、或者其当前是否在Capture the Flag(夺旗)游戏中携带旗帜。

对多人游戏来说,所有玩家的玩家状态存在于所有电脑上(这点和PlayerController玩家控制器不同),并且可以从服务器复制数据到客户端以保持其同步。

关于更多信息,请参阅: 游戏架构快速指南