目录
Project
项目(Project)包含游戏的所有内容,磁盘上的大量文件夹,可命名和组织这些文件夹;在内容浏览器中会显示与磁盘上相同的目录结构;
每个项目都有与之关联的.uproject文件,此文件是创建、打开、或保存项目的方法;可创建任意数量的项目,且并行处理;
Blueprint
蓝图可视化脚本(Blueprint Visual Scripting)系统是完善的gameplay脚本系统,基于节点来创建gameplay元素;类似许多常用的脚本语言,用于在UE中定义面向对象的类或对象;在使用UE的过程中,会经常发现使用蓝图定义的对象;
Class
Class定义UE中一个特定Actor或Object的行为(behaviors)和属性(properties);类从父类继承信息并传递给其子类,可在C++代码内或蓝图内创建类;
Object
Object是UE中最基本的类,包含资产的大量基本功能;在UE中,几乎每件事都继承自Object(或获得一些功能);
在C++内,UObject是所有类的基类,实现了多种功能,如垃圾回收、元数据(UProperty,支持公开变量)、及为加载和存储的序列化;
Actor
Actor是可放到关卡中的任何Object,如Camera、static mesh、player start;Actor支持3D变换,如移动、旋转、缩放,可被C++或蓝图创建和销毁;
在C++内,AActor是所有Actor的基类;
Casting
类型转换(Casting)是一种动作,会获取特定类的Actor并尝试将其作为其他类进行处理;如转换成功,即可访问转换后类的功能;
如有多个类型的volume以不同的方式影响玩家角色,其中一个volume是fire可伤害玩家生命值,当玩家遇到(overlap)关卡中的任何volume时,可将volume转换为fire来访问“伤害玩家”函数;
类型转换,不同于简单的检查某个Actor是否属于某个类,然后返回一个二元值(是或否),那是无法访问该类函数的;
Component
组件(Component)是一种可添加到Actor的功能;当添加一个组件到actor时,actor即可使用组件提供的功能;
- Spot Light Component,可使Actor发射聚光;
- Rotating Movement Component,可使Actor旋转;
- Audio Component,可使Actor播放声音;
组件必须附加到Actor,不可自己单独存在;
Pawn
Pawn是Actor的子类,可作为游戏中的角色;玩家或AI可控制Pawn,作为非玩家角色(NPC);
当Pawn被人类或AI控制的时候,即被视为Possessed,相反未被控制时,即被视为Unpossessed;
Character
Character是Pawn的子类,旨在被用作玩家角色;角色子类包括碰撞设置,双足运动的输入绑定,以及用于控制运动的附加代码;
Player Controller
玩家控制器(Player Controller)获取玩家输入,将其转换到游戏中的互动中;每个游戏至少有一个玩家控制器,一个玩家控制器经常Possess一个Pawn或Character作为玩家在游戏中的化身;
玩家控制器还是多人游戏中的主要网络交互节点,在多人游戏中,服务器会为每个玩家生成一个玩家控制器示例,因为必须对每个玩家进行网络函数调用;每个客户端只拥有与其玩家对应的玩家控制器,且只能使用其玩家控制器与服务器通信;
对应的C++类是PlayerController;
AI Controller
类似Player Controller,AI控制器(AI Controller) Possess 一个Pawn作为非玩家(NPC)在游戏中的化身;
默认Pawn和Character最终都会由基本的AI Controller控制,除非被指定为Player Controller,或被告知不需要为它们自己创建AI Controller;
对应的C++类是AIController;
Player State
玩家状态(Player State)是游戏参与者在游戏中的状态,如人类玩家或模拟玩家的机器人,作为游戏的一部分而存在的非玩家AI没有玩家状态;
玩家状态可包括的玩家信息:
- 名称Name;
- 当前关卡Level;
- 健康Health;
- 分数Score;
- 在抢旗游戏中,玩家当前是否携带旗子;
对多人游戏,所有玩家的玩家状态都存在机器中,可将数据从游戏中复制到客户端以保持内容一致;这不同于玩家控制器,仅存在于玩家的机器中;
对应的C++类是PlayerState;
Game Mode
游戏模式(Game Mode)设置要运行的游戏的规则,包括:
- 玩家如何加入游戏;
- 是否可暂停游戏;
- 任何游戏相关的行为,如获胜条件;
可在Project Settings中设置默认的Game Mode,并在不同的关卡覆盖重载它;无论如何实现Game Mode,每个关卡始终只能有一个Game Mode;在多人游戏中,Game Mode只存在于服务器,规则会被复制(发送)给所有联网客户端;
对应的C++类是GameMode;
Game State
Game State是一种容器,保存着希望在游戏中复制给每个客户端的信息;简言之,即表示每个联网玩家的游戏状态,包括:
- 游戏分数;
- 比赛是否开始;
- 根据场景中玩家人数,需生成多个AI;
在多人游戏中,每个玩家电脑上都只有一个Game State本地实例,Game State本地实例从服务器Game State实例获取更新信息;
对应的C++类是GameState;
Brush
笔刷(Brush)是一个Actor,描述3D形状,如cube、sphere;
可放置笔刷到关卡,并定义关卡几何体(Binary Space Partition or BSP brushes);对快速搭建关卡有用;
Volume
Volume是一种存在边框的3D空间,会根据附加的效果产生不同的用途,如:
- 阻挡体积(Blocking Volumes),一种不可见的体积,用来防止Actor穿过;
- 伤害生成体积(Pain Causing Volumes),会对与其重叠的Actor持续伤害;
- 触发体积(Trigger Volumes),可通过编程让Actor在进入或离开它们触发事件;
Level
关卡(Level)是用户定义的gameplay区域,包含玩家可看见和交互的所有内容,如geometry、Pawns、Actors;
虚幻把每个关卡存为.umap文件,也称为Maps;
World
World是组成游戏所有关卡的容器,可处理关卡流送(Level Streaming),和生成(创建)动态Actor;