A
Actor
所有可以放入关卡的对象都是 Actor,比如摄像机、静态网格体、玩家起始位置。Actor支持三维变换,例如平移、旋转和缩放。你可以通过游戏逻辑代码(C++或蓝图)创建(生成)或销毁Actor。
在C++中,AActor是所有Actor的基类。
AI
AI 也称人工智能,是由一组程序指令而非人工输入控制的行为。例如,非玩家角色(NPC))就是由AI控制。
AIController
玩家控制器通过控制Pawn来表示游戏中的玩家,与此类似,AI控制器 通过控制Pawn来表示游戏中的非玩家角色(NPC)。默认情况下,Pawn和角色最终都会由基本的AI控制器控制,除非它们被指定通过玩家控制器控制,或被告知不需要为它们自己创建AI控制器。
关联的C++类是 AIController。
动画
动画(Animation) 可以概括为属性值随着时间发生变化。例如,位置、旋转和或缩放的变化,但也可扩展至任何其他属性值。
"动画(Animation)"可专指虚幻Matinee中创建的序列,或专指在外部三维建模和动画应用程序中为骨架网格体创建的、导入到虚幻编辑器(Unreal Editor)中的序列。它甚至可以指由C++代码或蓝图创建的某个Actor的属性(或多个属性)随着时间发生变化。
动画序列
动画序列(Animation Sequence)(或 AnimSequence)是在三维建模和动画应用程序中为骨架网格体创建的、导入到虚幻编辑器中的动画资产。你可以在Persona中使用动画序列(Animation Sequence)。
资产
资产(Asset) 是用于构建游戏的元素。例如可导入到 内容浏览器(Content Browser) 或在其中创建的内容,例如材质(Material)、静态网格体(Static Mesh)、纹理(Texture)、粒子系统(Particle System)、蓝图(Blueprint)、和Sound Cue。各资产都保存在单独的.uasset文件中。
B
蓝图
蓝图可视化脚本(Blueprint Visual Scripting) 系统(或缩写 蓝图(Blueprints))是一种功能齐全的游戏脚本系统,它允许你在虚幻编辑器(Unreal Editor)中通过基于节点的界面来创建游戏元素。和许多常见脚本语言一样,你可以用它在引擎中定义面向对象的类或object。在使用UE4时,你会发现使用蓝图定义的类一般也统称蓝图。
蓝图编辑器
蓝图编辑器(Blueprint Editor) 是一个基于节点的图表编辑器。它还有几个其他窗口,可以提供针对性的信息,并允许对蓝图及其图表进行其他修改。
蓝图接口
蓝图接口(Blueprint Interface) 是一种资产类型,你可以在其中创建未经定义的函数。任何蓝图都可以实现这个接口,然后为这些函数实现自己的定义。它是蓝图相互通信的一种方式,特别是当一个蓝图与许多其他蓝图交互时。
蓝图宏库
蓝图宏库(Blueprint Macro Library) 是一个蓝图容器,它包含一组宏或一组完整的图表,可以作为节点放置在其他蓝图中。它们可以节省时间,因为它们能够存储常用的节点序列,包括用于执行和数据传输的输入和输出。宏在所有引用它们的图表之间共享,但是在编译期间,它们会自动扩展到图表中,仿佛它们是一个折叠节点。这意味着不需要编译蓝图宏库,但只有当重新编译包含某个宏的蓝图时,对宏的更改才会反映在引用该宏的图表中。
笔刷
笔刷(Brush) 是一种Actor,用于描述一个3D几何体,例如方形或圆形。你可以在关卡中应用笔刷,以便定义关卡几何体(称为二元空间划分笔刷,简称BSP笔刷)。假如你想快速搭建关卡,则可以使用这种方法。
C
Cascade
Cascade 是虚幻编辑器(Unreal Editor)中的粒子系统编辑器。你可以通过在 内容浏览器(Content Browser) 中创建或打开一个粒子系统来访问Cascade。在Cascade中,你可以添加、修改和删除粒子发射器(Particle Emitter),向粒子发射器添加模块,以及修改模块属性。
类型转换
类型转换(Casting) 本质上是获取某个特定Actor(或类),然后将它视为另一种类进行处理。类型转换可以成功,也可以失败。如果转换成功,你就能访问目标Actor的特有函数和功能。
举个例子,你希望在游戏中创建多种体积,让它们以不同方式影响玩家。其中一个体积是 火焰,它会不断伤害玩家生命值。当玩家遇到关卡中的体积时,你可以将该体积 转换 成 火焰,以此访问它的"伤害玩家"函数。
如果转换成功,表示玩家站在火中,那么玩家生命值就会开始减少。
如果转换失败,表示玩家站在其他体积中,那么生命值不会减少。
类型转换不同于单纯地检查某个Actor是否属于某个类,然后返回一个二元值(是或否);这种情况下,你无法访问该类的函数。
角色
角色(Character) 是Pawn Actor的子类,旨在用作玩家角色。角色子类包括碰撞设置、双足运动的输入绑定,以及用于控制运动的附加代码。
过长动画序列
过场动画序列(cinematic sequence),也称过场动画,是游戏中播放的动画。一些过场动画序列会暂停游戏进程,并会涉及摄像机视口中的一个或多个改变;这些叫做 剧情动画(cutscene)。过场动画序列可以由Matinee创建和控制,也可以导入自外部应用程序中创建的预渲染视频。
类
类(Class) 用于定义虚幻引擎中Actor或对象的行为和属性。类可以被继承,这意味着某个类可以从其父类(衍生或派生出该类的类)获得信息,然后再将信息传递给子类。类可用C++代码或蓝图创建。
蓝图类
蓝图类(Blueprint Class) 是一种资产,内容创建者可以使用它在现有的游戏类之上轻松添加功能。它通常简称为_蓝图(Blueprint)_。蓝图在虚幻编辑器(Unreal Editor)中以可视化方式而非代码方式创建,并作为资产保存在内容包中。它们本质上是在定义一种新的类或Actor;蓝图的实例可以放置在地图中,其行为与其他类型的Actor相似。
碰撞
碰撞(Collision) 是在物理模拟过程中防止对象重叠的一种编程方法,给人一种实心物体的错觉。它也可以指碰撞网格体,即几何体的简化版本,通常以不可见的壳体或外壳的形式存在于网格体周围。这种简化有助于提高性能,允许具有大量多边形计数的复杂对象使用更为简单的几何体来计算它们的碰撞,从而加快碰撞的处理速度。
"碰撞(Collision)"也可以是非阻塞性的(重叠)。在这种情况下,碰撞可以简单地反映对象相互交叉(重叠)的情况,而不是防止对象相互交叉。
组件
组件(Component) 是可以添加到Actor上的一项功能。
当你为Actor添加组件后,该Actor便获得了该组件所提供的功能。例如:
聚光灯组件(Spot Light Component)允许你的Actor像聚光灯一样发光,
旋转移动组件(Rotating Movement Component)能使你的Actor四处旋转,
音频组件(Audio Component)将使你的Actor能够播放声音。
组件必须绑定在Actor身上,它们无法单独存在。
组件模式
在 组件模式(Components Mode) 中,你可以将组件添加到蓝图中,管理现有组件的详细信息,并安排组件。组件模式(Components Mode)中的组件列表具有层级性。
组件模式(Components Mode)是三种模式之一;其他两种模式为默认模式(Default Mode)和图表模式(Graph Mode)。
构造脚本
创建蓝图类的实例时,构造脚本(Construction Script) 在组件列表 之后运行。它包含的节点图表允许蓝图实例执行初始化操作。 构造脚本的功能可以非常丰富,它们可以执行场景射线追踪、设置网格体和材质等操作,从而根据场景环境来进行设置。 例如,光源蓝图可判断其所在地面类型,然后从一组网格体中选择合适的网格体, 或者,栅栏蓝图可以向各个方向射出射线, 从而确定栅栏可以有多长。
构造脚本(Construction Script)会影响对象在编辑器中操作时的功能,而事件图表(Event Graph)则控制对象在游戏运行期间的功能;构造脚本(Construction Script)不会在游戏进程期间执行。
内容浏览器
内容浏览器(Content Browser) 是虚幻编辑器的主要区域,用于在虚幻编辑器中创建、导入、组织、查看及修改内容资产。它还提供了管理内容文件夹和对资产执行其他操作的能力(例如重命名、移动、复制和查看引用)。内容浏览器(Content Browser) 可以搜索游戏中的所有资产并与其交互。
控制器类
控制器(Controller) 是一种可以控制Pawn(或Pawn的派生类,例如角色(Character)),从而控制其动作的非实体Actor。人类玩家使用PlayerController控制Pawn,而AIController则对它们控制的Pawn实加人工智能效果。控制器用Possess函数控制Pawn,用Unpossess函数放弃控制Pawn。
D
数据引脚
数据引脚(Data Pins) 用于将数据导入节点或从节点输出数据。数据引脚只能与同类型的相连接,可以连接到同一类型的变量(这些变量有自带数据引脚),也可以连接到其他节点上同类型数据引脚。与执行引脚一样,数据引脚在未连接到任何对象时会显示为空心,在连接到对象后则显示为实心。
节点可以有任意数量的输入或输出数据引脚。函数调用(Function Call)节点的数据引脚对应于相应函数的参数和返回值。
默认模式
类默认(Class Defaults) 或 默认(Defaults) 模式会显示_Blueprint_的所有属性,包括 _Blueprint_中包含的变量、本地代码中定义的组件以及复制、导航 和碰撞属性。在创建_Blueprint_的新实例时,将使用 默认(Defaults)模式下为这些属性设置的值。
默认模式(Defaults Mode)是蓝图编辑器的三种模式之一;其他两种模式为组件模式(Components Mode)和图表模式(Graph Mode)。
细节面板
细节面板(Details panel) 是关卡编辑器(Level Editor)中的一个面板,其中包含各个元素的属性信息。UE4中的许多工具和编辑器都包含细节面板:关卡编辑器、Matinee、Persona等。
导演组
导演组(Director Group) 是一种控制摄像机视点的特定类型Matinee组。你可以使用导演组来切换镜头之间的摄像机视点。每个Matinee序列只能有一个导演组。
E
事件
在蓝图中,事件(event) 是一个入口,或者说是可视化脚本的第一个执行节点。该入口通常由游戏中的事件触发。例如,玩家进入一个体积可以触发一个重叠(Overlap)事件,然后可以使用该事件来促使蓝图执行其他功能,例如打开一扇门、点亮一盏灯等。
事件图表
蓝图的 事件图表(EventGraph) 包含一个节点图表;节点图表使用事件和函数调用来执行操作,从而响应与该蓝图有关的游戏事件。它添加的功能会对该蓝图的所有实例产生影响。你可以在这里设置交互功能和动态响应。例如,光源蓝图可以通过关闭其 LightComponent 和更改其网格体使用的材质,来响应伤害事件。光源蓝图的所有实例会自动具备这个功能。
执行引脚
执行引脚(Execution pins) 用于将节点连接在一起以创建执行流程。当输入执行引脚被激活后,节点将被执行。一旦节点的执行完成,它将激活一个输出执行引脚来继续执行流程。执行引脚在未连接时显示为空心状态,连接到另一个执行引脚后则显示为实心。函数调用节点始终只有一个输入执行引脚和一个输出执行引脚,因为函数只有一个进入点和一个退出点。其他类型的节点可以有多个输入执行引脚和输出执行引脚,从而允许不同的行为,具体情况取决于哪一个引脚被激活。
F
FBX文件
FBX 是Autodesk开发的一种文件格式。该文件格式用于将静态网格体(Static Meshes)、骨架网格体(Skeletal Meshes)和动画序列(Animation Sequences)导入虚幻编辑器(Unreal Editor)。
流程控制
流程控制(Flow Control) 操作允许在蓝图中显式控制执行流程。这种控制可以表现为如下形式:根据某个条件是否为真来选择要执行的图表分支、 多次执行某个特定分支、按特定顺序执行多个分支、 等等。默认的流程控制操作包括分支(if语句)、循环(for和while)、 门和序列。
框架
框架(Framework) 系统构成了虚幻引擎游戏逻辑(gameplay)的基础。游戏逻辑框架可以划分为三个大类:游戏类型、玩家和界面。每个类别负责游戏逻辑的某个特定方面;每个类别又由一个或多个系统和类组成,这些系统和类定义了不同的部分以及它们的协作方式。
G
游戏模式
游戏模式(GameMode) 类负责设置当前游戏的规则。规则包括:
玩家如何加入游戏。
是否可以暂停游戏。
任何与游戏相关的行为,例如获胜条件。
你可以在 中设置默认的游戏模式,也可以关卡中覆盖这些设置。无论你如何实现游戏模式,每个关卡始终只能有一个游戏模式。
在多人游戏中,游戏模式只存在于服务器上,规则会被复制(发送)给所有联网的客户端。
相关的C++类是 GameMode。
游戏状态
游戏状态(GameState) 是一种容器,保存着你希望在游戏中复制给每个客户端的信息。简而言之,它表示每个联网玩家的"游戏状态"。
游戏状态包含的部分信息包括:
游戏分数
比赛是否已开始
根据场景中玩家的人数,需要生成多少AI
如果是多人游戏,则每个玩家的电脑上都只有一个游戏状态实例,而服务器的实例为权威实例(即客户端的信息更新来源)。
相关的C++类是 GameState。
图表
图表(Graph) 以可视化形式展现了特定节点,它显示了 图表中包含的所有节点以及它们之间的连接关系。它提供了 添加和删除节点、排列节点以及在节点之间创建连线的编辑 功能。你还可以在图表中设置断点来帮助蓝图。
组
在Matinee中, 组(group) 是一个用于特定Actor的动画和视觉效果的容器。在关卡编辑器中,组 是一个组织对象,选定的Actor可以被组合在一起,以便将它们转化为一个单位。
K
键,关键帧
在动画中,键(key) 或 关键帧(keyframe) 是指特定时间下记录的某个值或多个值。我们会对这些关键帧进行插值并生成曲线,从而产生随时间变化的动画效果。
键绑定
键绑定(Keybindings) 是自定义的键盘快捷键。在虚幻引擎中,你可以通过绑定按键或组合按键来执行特定的命令或操作。
销毁Z
销毁Z(Kill Z) 是一个Z轴方向上的高度值,如果Actor会或玩家低于这个高度就会被自动销毁或消灭。销毁Z(Kill Z)可以避免玩家因为掉出地图而被卡住并无法重生。
L
关卡
关卡(Level) 是用户定义的游戏区域。关卡包含了玩家能看到的所有内容,例如几何体、Pawn和Actor。
在虚幻编辑器中,每个关卡都被保存为单独的 .umap 文件,它们有时也被称为 地图。
M
材质
材质(Material) 是应用于网格体从而控制场景视觉效果的资产。总的来说,你可以把材质想象成对象表面上的"颜料"。不过这样说也不完全准确,因为准确地说,材质定义了对象表面的感官和类型。你可以用材质定义对象的颜色、光泽度、透明度等等。
从更专业的角度来讲,当场景中的光源照射到对象表面时,材质被用来计算该光源将如何与该表面相互作用。在计算过程中,会用到各种输入数据,这些数据来自于各种图像(纹理)和数学表达式,此外还会用到材质自身的属性设置。
虚幻引擎4采用 基于物理的着色模型。这意味着,与其任意使用属性(例如漫射颜色(Diffuse Color)和高光强度(Specular Power))来定义材质,不如使用更容易与现实世界场景关联的属性。这些属性包括基础颜色(Base Color)、金属感(Metallic)、高光度(Specular)和粗糙度(Roughness)。
Matinee
Matinee 动画工具允许让Actor的属性随时间发生变化,还能创建动态游戏逻辑或游戏内过场动画。该系统基于特殊的轨迹,你可以在该轨迹上放置关键帧来设置关卡中Actor某些属性的值。Matinee编辑器类似于用于视频编辑的非线性编辑器,这使得视频制作专业人员对它感觉很熟悉。
Matinee Actor
Matinee Actor 是Matinee动画的一种特定实例,作为Actor创建并放置在场景中。
迁移工具
内容浏览器(Content Browser) 包含一个 迁移工具(Migrate Tool),该工具允许你将资产连同相关依赖性资产从一个项目复制到另一个项目。例如,当你迁移一个材质时,任何定义该材质的材质资产将随该材质一起自动迁移。当你需要合并项目或设置分支时,或者要从测试环境过渡到生产项目时,这非常有用。
移动性
移动性(Mobility) 是静态网格体和光源Actor的一个属性。移动性(Mobility)属性可以在 细节(Details) 面板中进行设置,它决定了Actor在游戏中可否移动。此外,如果是光源Actor,移动性(Mobility)属性还能决定投射的光线和阴影类型。移动性(Mobility)类型包括静态(Static)、固定(Stationary)(仅限光源Actor)和可移动(Movable)。
在世界大纲视图(World Outliner)中,Actor的移动性(Mobility)设置由左侧的一个小彩色圆点表示:橙色表示可移动(Movable),黄色表示静止(Stationary),无色表示静态(Static)。
可移动(Movable)类型的Actor通用性最强,但性能影响最大;静态(Static)类型的Actor通用性最低,但性能影响最小。
模式面板
模式(Modes) 会针对特定任务,更改关卡编辑器主要行为,例如在场景中移动变换某个资产,雕刻地形,生成植被,创建几何笔刷和体积,以及在网格体上绘制。模式(Modes)面板包含一组工具,并且这些工具会根据你选择的编辑模式而调整。
可移动
可移动(Movable) 是移动性(Mobility)类型中的一种。它可以用于静态网格体和光源Actor。
可移动静态网格体Actor(Movable Static Mesh Actors) 可在游戏中移动,并可与其他Actor相互作用。
可移动光源(Movable Lights) 是在游戏中可以移动和变化的光源。典型用途是用作汽车大灯、手电筒、随风摇摆的灯具等。可移动(Movable)光源是完全动态的,目前不支持间接光照。可移动(Movable)光源在场景中始终投射动态阴影。注意,在投射阴影时,可移动(Movable)光源在开销可能比固定(Stationary)光源高出多20倍。
在这三种移动类型中,可移动(Movable)光源一般拥有中等品质的效果、最强的动态性、以及最高的性能开销。
可移动(Movable)光源可以更改位置、旋转度、颜色、亮度、衰减度、半径,以及几乎所有其他属性。
移动工具
移动工具(Move tool) 是一个转换控件,你可以使它来沿X轴、Y轴、Z轴移动(平移)场景中的Actor。
N
节点(node)
节点(node) 是可视化脚本代码的基本模块,一般来说,可以把它看作一种连接了各种数据和/或执行连线的图形。
O
Object
在虚幻引擎中,最基本的类叫做 Object。换句话说,它就像最基本的构建单位,包含了资产的基本功能。虚幻引擎中的大多数类都继承自Object(或从中获取部分功能)。
在C++中,UObject 是所有Object的基类,包含各类功能,诸如垃圾回收、通过元数据(UProperty)将变量公开给编辑器,以及保存和加载时的序列化功能。
P
面板
面板(panel) 是UI的一部分,它包含与关卡相关的信息,可以移动、停靠或者拖动成单独的窗口。常见的面板包括 细节(Details) 面板和 内容浏览器(Content Browser)。
Pawn
Pawn 是Actor的子类,它可以充当游戏中的化身或人物(例如游戏中的角色)。Pawn可以由玩家控制,也可以由游戏AI控制并以非玩家角色(NPC)的形式存在于游戏中。
当Pawn被人类玩家或AI玩家控制时,它被视为 已被控制(Possessed)。相反,当Pawn未被人类玩家或AI玩家控制时,它被视为 未被控制(Unpossessed)。
Persona
Persona 是Unreal中的动画编辑工具集。它是一个用于编辑骨架、骨架网格体、动画蓝图和各种其他动画资产的强壮系统。在Unreal中,你的大部分动画工作都是在该编辑器中进行的。它是一个多用途的工具,包含各类面板,可以分别实现下列操作:编辑骨架、预览、设置动画和、编辑等。
你可以通过 双击 任何与动画相关的资产(例如骨架网格体(Skeletal Meshes)、混合空间(Blend Spaces)、动画蓝图(Animation Blueprints)等)来打开Persona。
PhAT
PhAT 是虚幻编辑器中的物理资产(Physics Asset)编辑工具,用于修改骨架网格体Actor(Skeletal Mesh Actors)的物理属性和碰撞属性。
物理材质
物理材质(Physical Materials) 用于定义物理对象与场景动态交互时的方式。物理材质非常容易使用。创建一个物理材质后,它会提供一组默认值,与应用于所有物理对象的默认物理材质相同。物理材质的例子包括角色尸体(布娃娃)、可移动的木箱等。
引脚
引脚(Pin) 是可视化脚本节点的一部分。引脚可以用导线与其他节点相连。若要执行节点,则必须连接该节点的执行引脚。数据引脚会根据其类型用不同颜色标记,它们的作用是输入数据或者将数据输出到其他节点。
枢轴点
枢轴点(Pivot point)(或原点)是静态网格体Actor或骨架网格体Actor上的一个点,这个点的位置一般由创建网格体的三维建模软件定义,可以用于对齐网格体的位置。枢轴点可以位于对象的中心、底部,甚至外部。
在编辑器中运行(PIE)
编辑器中运行(PIE) 是一种模式,在该模式下,你可以直接在虚幻编辑器窗口中的指定位置开始运行关卡并进行测试。在该模式下,你体验到的效果和你在游戏中体验到的完全一样,这样你就能测试游戏逻辑,例如测试玩家的控制效果,或者测试玩家能否触发某些关卡事件。
玩家控制器
玩家控制器(Player Controller) 会获取游戏中玩家的输入信息,然后转换为交互效果,每个游戏中至少有一个玩家控制器。玩家控制器通常会控制一个Pawn或角色,将其作为玩家在游戏中的化身。
玩家控制器还是多人游戏中的主要网络交互节点。在多人游戏中,服务器会为游戏中的每个玩家生成一个玩家控制器实例,因为它必须对每个玩家进行网络函数调用。每个客户端只拥有与其玩家相对应的玩家控制器,并且只能使用其玩家控制器与服务器通信。
相关的C++类是 PlayerController。
玩家状态
玩家状态(Player State) 表示某个游戏参与者的状态,可以是人类玩家,也可以是模拟玩家的机器人。作为游戏场景的一部分而存在的非玩家类AI不会有玩家状态。
玩家状态(Player State)能包括的玩家信息包括:
名称
当前关卡
生命值
分数
在某些抢旗游戏中,玩家当前是否携带旗子。
在多人游戏中,所有电脑都保存着所有玩家的玩家状态,并且玩家状态可以将数据从服务器复制到客户端以保持同步。这点与玩家控制器不同,它只会保存在玩家所在的客户端上。
关联的C++类是 PlayerState。
项目
虚幻引擎4项目(Project) 保存着构成游戏所需的所有内容和代码。项目在你的电脑硬盘上由许多目录构成,例如 蓝图和材质。你可以随时修改项目目录的名称和层级关系。
虚幻编辑器 中的 内容浏览器 所展示的目录结构和你在硬盘上看到的 项目 目录结构相同。
_内容浏览器面板会镜像显示磁盘上的项目目录结构。点击图片查看大图。
每个项目都有一个与之对应的 .uproject 文件。.uproject 文件是你创建、打开或保存项目必须用到的文件。你可以创建任何数量的不同项目,并同时操作它们。
R
旋转工具(Rotate tool)
旋转工具(Rotate tool) 是用于在场景中沿X、Y和Z轴旋转Actor的变换控件。