==基础知识==

虚幻编辑器界面
虚幻编辑器界面 | 虚幻引擎 5.5 文档 | Epic Developer Community

虚幻引擎术语
项目
每个项目都有
.uproject文件。.uproject文件是创建、打开或保存项目的方法。
蓝图
gameplay 脚本系统,像常用的脚本编写语言,用于在引擎中定义以object为导向(OO)的类或object。
对象 (object)
Object 是虚幻引擎中最基本的类就像建造系统的砖块,包含资产的大量基本功能。
虚幻引擎中的几乎所有功能都继承自object(或使用其中的部分功能)。
在C++中,
UObject是所有object的基类,可以实施多种功能,例如垃圾回收、用于将变量提供给虚幻编辑器的元数据(UProperty)支持以及用于加载和保存的序列化。
类 (Class)
定义虚幻引擎中特定 Actor 或 Object 的行为和属性。
类是可以继承的,子类拥有父类的所有属性和行为
演员 (Actor)
Actor 是可以放到关卡中的任何object
Actor支持3D变换
可以通过C++和蓝图 生成或销毁Actor。
类型转换 (Casting)
类型转换(Casting) 是一种动作,将会提取特定类的Actor并尝试将其作为其他类进行处理。类型转换可能成功,也可能失败。如果类型转换成功,则可以在你类型转换到的Actor上访问特定于类的功能。
组件 (Component)
组件(Component) 是一种可以添加到Actor的功能。
将组件添加到Actor时,Actor可以使用组件提供的功能
组件必须连接到Actor,不能独自存在。
棋子 (Pawn)
Pawn 是Actor的子类,作为被控制的形象存在。
Pawn 被控制时,视为被占有,反之则未被占有。
角色 (Character)
角色(Character) 是计划用作玩家角色的Pawn Actor的子类。
包含碰撞设置、双足运动的输入绑定以及用于玩家控制动作等功能。
玩家控制器 (Player Controller)
玩家控制器(Player Controller) 获取玩家输入,并将其转换到游戏内的互动中。每个游戏内部都至少具有一个玩家控制器。玩家控制器通常操控一个Pawn或角色作为玩家在游戏中的呈现方式。
玩家控制器还是多人游戏的主要网络互动点。在多人游戏期间,服务器具有游戏中每个玩家的玩家控制器的一个实例,因为它还必须对每个玩家进行网络功能调用。每个客户端都只有一个与玩家对应的玩家控制器,并且只能使用其玩家控制器与服务器进行通信。
关联的C++类是
PlayerController
AI控制器 (AI Controller)
AI控制器(AI Controller) 操控Pawn在游戏中呈现非玩家角色(NPC)。默认情况下,Pawn和角色都以基本AI控制器终结,除非它们被玩家控制器专门操控或者收到指令不允许为自己创建AI控制器。
关联的C++类是
AIController。
玩家状态
玩家状态(Player State) 是游戏参与者在游戏中的状态,
状态可能包含:名称、当前级别、血量、得分
对于多人游戏,所有玩家的玩家状态都在所有机器中存在,可以将数据从游戏中复制到客户端以保持内容一致。这不同于玩家控制器,因为玩家控制器仅存在于玩家所使用的机器上。
关联的C++类是
PlayerState。
游戏模式 (Game Mode)
游戏模式(Game Mode) 设置要运行的游戏的规则。如:
玩家如何加入游戏。
游戏是否可以暂停。
任何游戏特定行为,例如获胜条件。
可以在项目设置中设置默认游戏模式,并针对不同的关卡重载游戏模式。
每个关卡都只能有一个游戏模式。
在多人游戏中,游戏模式存在于服务器上,规则将复制(发送)到每个连接的客户端。
关联的C++类是
GameMode。
游戏状态 (Game State)
游戏状态(Game State) 是一个容器,包含你要在游戏中复制到每个客户端的信息。
简而言之,它是每个连接的人的"游戏状态"。游戏状态可能包含的内容示例包括:
与游戏得分相关的信息。
比赛是否开始。
根据世界中的玩家数量确定生成AI角色的数量。
对于多人游戏,每个玩家的机器上都有一个本地游戏状态实例。本地游戏状态实例从游戏状态的服务器实例获取更新的信息。
关联的C++类是
GameState。
笔刷
笔刷(Brush) 是用于描述3D形状的Actor,例如立方体或球体。
体积 (Volumes)
体积(Volumes) 是带有边界的3D空间,根据连接到体积的效果,具有不同的使用方法。例如:
阻挡体积(Blocking Volumes) 是可见的,用于阻止Actor通过它们。
施加伤害体积(Pain Causing Volume) 对与其重叠的任何Actor造成持续伤害。
触发器体积(Trigger Volumes) 的编程方式为,在Actor进入或退出体积时触发事件。
关卡 (Level)
关卡(Level) 是你定义的gameplay区域。关卡包含玩家可以看到并与其交互的所有内容,例如几何体、Pawn和Actor。
虚幻引擎将每个关卡保存为单独的
.umap文件,这也是为什么你在某些情况下会看到它们被称为 地图(Maps) 。
世界 (World)
世界(World) 是构成游戏的所有关卡的容器。它处理关卡的流送和动态Actor的生成(创建)。
工具和编辑器
虚幻引擎5 提供了 工具 、 编辑器 和 系统 组合,供你用于创建游戏或应用程序。
本节使用以下术语:
工具 即你用来执行特定任务的用具
如在关卡中放置Actor,或绘制地形。
编辑器 即你用来实现更复杂目标的工具集合。
例如,** 关卡编辑器 可让你构建游戏关卡,或者你可以在 材质编辑器** 中改变材料的外观体验。
系统 是功能大合集,这些功能会协同产生游戏或应用程序各方面内容。
例如, 蓝图 是用于视觉化脚本Gameplay元素的系统。
有时,系统和编辑器可能有类似的名称。例如,材质编辑器用于编辑材质资产,而材质系统为在虚幻引擎中使用材质提供底层支持。
了解每个编辑器的用途以及导航方法,均能优化你的工作流程,从而帮助你在开发过程中避开绊脚石。
关卡编辑器
是构建 Gameplay关卡 的主要编辑器。添加不同类型的 Actor、几何体、蓝图可视化脚本、Niagara等构建游玩空间
静态网格体编辑器
静态网格体编辑器(Static Mesh Editor) 用来预览外观、碰撞和UV贴图,以及设置和操控静态网格体。
还可以为静态网格体设置LOD(或细节级别设置)
材质编辑器
材质编辑器 是你创建和编辑材质的地方。
蓝图编辑器
蓝图编辑器 是你使用和修改蓝图的地方。
这些特殊资产可用来创建Gameplay元素(如控制Actor或对事件编写脚本),修改材质或执行其他虚幻引擎功能,省去编写任何C++代码的过程。
物理资源编辑器
你可以使用 物理资产编辑器 创建物理资产,以配合骨骼网格体使用。
你可以使用此方法实现变形和碰撞等物理特性。
你可以从零开始,构建完整的布娃娃设置
使用自动化工具来创建一套基本物理形体和物理约束。
行为树编辑器
通过一种可视化的基于节点脚本系统(类似于蓝图)为关卡中的Actor编写人工智能(AI)脚本的地方。
你可以为敌人、非游戏角色(NPC)、载具等创建任意数量的不同行为。
Niagara编辑器
由分离粒子发射器组成的全套模块化粒子效果系统,为每个效果创建特殊效果。
可将发射器保在内容浏览器中,以备后用,并将作为当前和未来项目中的新发射器基础使用。
UMG编辑器
可用来创建UI元素,如在游戏内头顶显示、菜单或其他界面相关的图形。
字体编辑器
使用 字体编辑器 添加、组织和预览字体资产。你也可以定义字体参数,如字体资产布局和提示策略(字体提示 是一种数学方法,可确保文本在任意尺寸的显示屏中都可读)。
Sequencer 编辑器
用 Sequencer编辑器 可通过专用多轨迹编辑器创建游戏过场动画。
通过创建 关卡序列(Level Sequences) 和添加 轨迹 (Tracks),你可以定义各个轨迹的组成,这样将确定场景的内容。
动画编辑器
动画编辑器 是虚幻引擎5中的动画编辑器。你可以使用该工具来编辑骨骼资产、骨骼网格体、动画蓝图,以及其他各种动画资产。
Controller Rig 编辑器
Control Rig 是动画工具套件,可以用于直接在引擎中操纵角色并实现其动画。
你无需在外部工具中进行操纵和制作动画,而是直接在虚幻编辑器中制作动画。
你可以在角色上创建和操纵自定义控制点,在 Sequencer 中制作动画,并使用各种其他动画工具来帮助完成动画制作过程。
Sunods Cue 编辑器
音频播放的行为在Sound Cue中得到定义,可使用 Sound Cue编辑器 对其进行编辑。
可以组合多个声音资产后混音,以此生成单混音输出,另存为一个Sound Cue。
媒体编辑器
使用 媒体编辑器 来定义媒体文件或URL,以作为虚幻引擎5内部播放的源媒体使用。
可以定义源媒体播放方式设置,如自动播放、播放速度和循环,但不能直接编辑媒体。
nDisplay 3D 编辑器
虚拟制作和实时事件
nDisplay 在多个同步显示设备上渲染虚幻引擎场景,如能量墙、穹顶和曲面界面。你可以使用 nDisplay配置编辑器 创建nDisplay设置,并使所有显示设备上的内容渲染方式可视化。
DMX 库编辑器
DMX(数字多路复用) 是在整个实时事件行业中用来控制各种设备的数字通信标准,如照明灯具、激光、烟雾机、机械设备和电子广告牌。在 DMX库编辑器 中,你可以自定义相关设备及其命令。
坐标空间术语
空间变换应该始终使用 X To Y 的命名格式。

游戏类用户上手指南
虚幻引擎游戏类被许可用户上手指南 | 虚幻引擎 5.5 文档 | Epic Developer Community
非游戏类用户入门指南
目录结构
根目录
Engine - 包含构成引擎的所有源代码、内容等。
Templates - 创建新项目时可用的项目模板集合。
GenerateProjectFiles.bat - 用于创建在Visual Studio中使用引擎和游戏所需的虚幻引擎解决方案和项目文件。
Default.uprojectdirs - 辅助文件,帮助引擎找到子目录中的项目。
通用目录
某些子目录在引擎目录和游戏项目目录中都能找到:
Binaries - 包含可执行文件或编译期间创建的其他文件。
Build - 包含编译引擎或游戏所需的文件,包括为某些特定平台创建项目版本时所需的文件。
Config - 配置文件,包含的参数可用于控制引擎的行为。你在游戏项目Config文件中设置的值会覆盖
Engine\Config目录中设置的值。Content - 保存引擎或游戏中的内容,例如资产包、贴图。
DerivedDataCache - 包含派生数据文件。这类数据专为被引用内容生成,并且在加载时生成。假如被引用内容未生成过缓存文件,则加载时间会显著增加。
Intermediate - 包含编译引擎或游戏时生成的临时文件。在游戏目录中,着色器也保存Intermediate目录中。
Plugins - 包含引擎中使用的插件。
Saved - 包含自动保存文件、配置(
.ini)文件和日志文件。此外,Engine > Saved 目录还包含崩溃日志、硬件信息和Swarm选项与数据。
Source - 包含引擎或游戏的所有源文件,包括引擎源代码、工具和游戏类等。
Engine - Engine目录中的源文件组织结构如下:
Developer - 编辑器和引擎共同使用的文件。
Editor - 仅供编辑器使用的文件。
Programs - 引擎或编辑器使用的外部工具。
Runtime - 仅供引擎使用的文件。
Game - 游戏项目目录中的源文件按模块分组,一个模块一个目录。每个模块包含以下内容:
Classes - 包含所有的头文件(
.h)。Private - 包含所有源(
.cpp)文件,包括游戏逻辑类以及各种模块的实现文件。Public - 包含模块的头文件。
某些目录同时存在于引擎的通用目录以及特定游戏目录中。
例如,Content 目录可能同时存在于引擎目录(
../Engine/Content)以及你的游戏目录(../GAME_DIR/Content)。你游戏的content目录中的文件只能通过该特定游戏访问,而引擎的content目录可通过任何使用该特定引擎分发的项目访问。
模块与插件
虚幻引擎的功能被归纳多个模块与插件。
模块与插件最大的不同点在于,模块只包含代码。
例如,若你在虚幻引擎中创建了一个项目,你的项目将被一个
*.Build.cs文件归纳到一个模块中。而插件包含自身的源文件、二进制文件以及一个
.uplugin文件。插件可以包含资产,而模块不能。因此,插件可以分发到其他UE项目以供使用。
引擎专有目录
部分子目录只存在于Engine目录中。
Documentation - 包含引擎文档,包括源文件和发布的文件。
HTML - 发布的HTML文档文件。
Source - 源markdown文档文件。
Extras - 其他辅助和工具文件。
Programs - 包含虚幻引擎根目录中各个项目及其他虚幻程序(如Unreal Frontend和Unreal Header Tool)的配置文件和日志文件。
Shaders - 保存引擎的着色器源文件(
.usf)。
游戏项目目录
解决方案目录
数学基础
虚幻引擎 中的许多对象都基于数学结构和选项,以根据数学运算配置和更改它们。本节概述可能对你有用的数学结构和概念,以及这些结构与虚幻引擎中的各种对象和运算之间的联系。
测量单位
虚幻引擎(UE)默认采用以下国际制(SI)测量单位:
评论区