UnrealEngine学习(03):虚幻引擎术语

news2024/9/25 11:09:49

1. 项目

虚幻引擎5项目(Unreal Engine 5 Project) 中包含游戏的所有内容。项目中包含的大量文件夹都在磁盘上,例如 Blueprints 和 Materials 。你可以按照自己的意愿命名文件夹并将其整理到项目中。虚幻编辑器(Unreal Editor) 中的 内容浏览器(Content Browser) 面板显示与磁盘上的 Project 文件夹相同的目录结构。

每个项目都有与其关联的 .uproject 文件。.uproject 文件是创建、打开或保存项目的方法。你可以创建任意数量的不同项目,然后并行处理它们。

2. 蓝图

蓝图视觉效果脚本(Blueprint Visual Scripting) 系统是完善的gameplay脚本系统,在虚幻编辑器中使用基于节点的界面来创建gameplay元素。就像许多常用的脚本编写语言,它可以用于在引擎中定义以object为导向(OO)的类或object。在使用虚幻引擎时,经常会发现使用蓝图定义的object被统称为"蓝图"。

3. 对象

Object 是虚幻引擎中最基本的类——换而言之,它们就像建造系统的砖块,包含资产的大量基本功能。虚幻引擎中的几乎所有功能都继承自object(或使用其中的部分功能)。

在C++中,UObject 是所有object的基类,可以实施多种功能,例如垃圾回收、用于将变量提供给虚幻编辑器的元数据(UProperty)支持以及用于加载和保存的序列化。

4. 类

类(Class) 定义虚幻引擎中特定Actor或Object的行为和属性。类是分层的,意味着类从其父类(即派生出类的类,或"子类"的来源)中继承信息并将该信息传递给其子项。可以在C++代码或蓝图中创建类。

5. Actor

Actor 是可以放到关卡中的任何object,例如摄像机、静态网格体或玩家出生点位置。Actor支持3D变换,例如转换、旋转和缩放。可以通过gameplay代码(C++或蓝图)创建(生成)或销毁Actor。

在C++中,AActor 是所有Actor的基类。

6. 类型转换

类型转换(Casting) 是一种动作,将会提取特定类的Actor并尝试将其作为其他类进行处理。类型转换可能成功,也可能失败。如果类型转换成功,则可以在你类型转换到的Actor上访问特定于类的功能。

例如,如果你要制作一款游戏,在其中具有能够以不同方式影响玩家角色的多种体积类型。其中一个体积是 火焰(Fire),可以随着时间降低玩家血量。当角色与关卡中的任何体积重叠时,就可以将该体积 类型转换(Cast) 到 火焰(Fire) 上,以尝试访问其"损害玩家血量"功能。

  • 如果类型转换成功——即如果玩家站在火中——玩家的血量将开始下降。
  • 如果类型转换失败——即如果玩家站在任何其他类型的体积中——其血量将不受影响。

类型转换不同于简单地检查Actor是否是给定的类,它将返回一个二选一的答案(是或否),但不允许你与该类的任何特定功能进行交互。

7. 组件

组件(Component) 是一种可以添加到Actor的功能。

将组件添加到Actor时,Actor可以使用组件提供的功能。例如:

  • 点光源组件将使Actor像点光源一样发光。
  • 旋转移动组件将使Actor转动。
  • 音频组件将使Actor能够播放音效。

组件必须连接到Actor,不能独自存在。

8. Pawn

Pawn 是Actor的子类,作为游戏内的形象或人像(例如游戏中的角色)。玩家或游戏的AI可以控制Pawn,将其作为非玩家角色(NPC)。

当人类或AI玩家控制Pawn时,会将其视为 被占有 。相反,当人类或AI玩家未控制Pawn时,会将其视为 未被占有 。

9. 角色

角色(Character) 是计划用作玩家角色的Pawn Actor的子类。角色子类包括碰撞设置、双足运动的输入绑定以及用于玩家控制动作的其他代码。

10. 玩家控制器

玩家控制器(Player Controller) 获取玩家输入,并将其转换到游戏内的互动中。每个游戏内部都至少具有一个玩家控制器。玩家控制器通常操控一个Pawn或角色作为玩家在游戏中的呈现方式。

玩家控制器还是多人游戏的主要网络互动点。在多人游戏期间,服务器具有游戏中每个玩家的玩家控制器的一个实例,因为它还必须对每个玩家进行网络功能调用。每个客户端都只有一个与玩家对应的玩家控制器,并且只能使用其玩家控制器与服务器进行通信。

关联的C++类是 PlayerController 。

11. AI控制器

就像玩家控制器操控Pawn作为玩家在游戏中的呈现方式,AI控制器(AI Controller) 操控Pawn在游戏中呈现非玩家角色(NPC)。默认情况下,Pawn和角色都以基本AI控制器终结,除非它们被玩家控制器专门操控或者收到指令不允许为自己创建AI控制器。

关联的C++类是 AIController 。

12. 玩家状态

玩家状态(Player State) 是游戏参与者在游戏中的状态,例如人类玩家或模拟玩家的机器人。非玩家AI作为游戏世界的一部分而存在,没有玩家状态。

玩家状态可能包含的玩家信息示例包括:

  • 名称
  • 当前级别
  • 血量
  • 得分
  • 它们当前是否在"夺旗"游戏中扛旗。

对于多人游戏,所有玩家的玩家状态都在所有机器中存在,可以将数据从游戏中复制到客户端以保持内容一致。这不同于玩家控制器,因为玩家控制器仅存在于玩家所使用的机器上。

关联的C++类是 PlayerState

13. 游戏模式

游戏模式(Game Mode) 设置要运行的游戏的规则。这些规则可以包括:

  • 玩家如何加入游戏。
  • 游戏是否可以暂停。
  • 任何游戏特定行为,例如获胜条件。

可以在项目设置中设置默认游戏模式,并针对不同的关卡重载游戏模式。无论你选择以何种方式实施,每个关卡都只能有一个游戏模式。

在多人游戏中,游戏模式新存在于服务器上,而规则将复制(发送)到每个连接的客户端。

关联的C++类是 GameMode

14. 游戏状态

游戏状态(Game State) 是一个容器,包含你要在游戏中复制到每个客户端的信息。简而言之,它是每个连接的人的"游戏状态"。

游戏状态可能包含的内容示例包括:

  • 与游戏得分相关的信息。
  • 比赛是否开始。
  • 根据世界中的玩家数量确定生成AI角色的数量。

对于多人游戏,每个玩家的机器上都有一个本地游戏状态实例。本地游戏状态实例从游戏状态的服务器实例获取更新的信息。

关联的C++类是 GameState

15. 笔刷

笔刷(Brush) 是用于描述3D形状的Actor,例如立方体或球体。可以将笔刷放置在关卡中以定义关卡几何体(这些几何体称为二进制空间分区或BSP笔刷)。例如,如果要快速封锁关卡,此功能非常有用。

16. 体积

体积(Volumes) 是带有边界的3D空间,根据连接到体积的效果,具有不同的使用方法。例如:

  • 阻挡体积(Blocking Volumes) 是可见的,用于阻止Actor通过它们。
  • 施加伤害体积(Pain Causing Volume) 对与其重叠的任何Actor造成持续伤害。
  • 触发器体积(Trigger Volumes) 的编程方式为,在Actor进入或退出体积时触发事件。

17. 关卡

关卡(Level) 是你定义的gameplay区域。关卡包含玩家可以看到并与其交互的所有内容,例如几何体、Pawn和Actor。

虚幻引擎将每个关卡保存为单独的 .umap 文件,这也是为什么你在某些情况下会看到它们被称为 地图(Maps) 。

18. 世界

世界(World) 是构成游戏的所有关卡的容器。它处理关卡的流送和动态Actor的生成(创建)。

19. 坐标空间术语

虚幻中的空间其他名称描述
切线(Tangent)正交(可能在插值之后偏离),可以是左旋或右旋。TangentToLocal变换仅包含旋转,因此它是OrthoNormal(可以通过换位反转)。
局部(Local)对象空间(Object Space)正交,可以是左旋或右旋(三角形剔除顺序需要调整)。LocalToWorld变换包含旋转、非等分缩放(包括可能改变缠绕顺序的负非等分缩放)和平移。
世界场景(World)WorldToView变换仅包含旋转和平移,因此视图空间中的距离与世界场景空间中的距离相同。
平移世界场景(TranslatedWorld)
世界场景平移世界场景 - 预览平移
平移世界场景世界场景 + 预览平移
平移的矩阵用于从组合的变换矩阵中移除摄像机位置,可在变换顶点时提高精度。
视图(View)摄像机空间(CameraSpace)ViewToClip变换包含x轴和y轴上的缩放,但不包含平移(如果平移的话将会是偏心投影)。它缩放并平移z轴。它还会应用投影来转换为齐次裁剪空间。
裁剪(Clip)齐次坐标(HomogeniousCoordinates)后投影空间(PostProjectionSpace)投影空间(ProjectionSpace)应用透视投影矩阵之后。请注意,裁剪空间中的W与视图空间Z中的相同。
屏幕(Screen)OpenGL 中的 标准化设备坐标(NormalizedDeviceCoordinates)

经过透视分割之后:

左/右-1,1
上/下1,-1
近/远0,1(OpenGL RHI需要将此变换为-1,1)
视口(Viewport)视口坐标(ViewportCoordinates)窗口坐标(WindowCoordinates)

以像素计:

左/右0, 宽-1
上/下0, 高-1

19.1 空间变换

空间变换应该始终使用 X To Y 的命名格式。

示例:

  • WorldToView
  • TranslatedWorldToView
  • TangentToWorld

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2077788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云网络/云探测+零信任架构初阶知识扫盲

一、关键(边界)节点 1、边界 (1)CiscoASA Firepower 思科 Firepower NGFW(下一代防火墙)是专注于威胁防御的下一代防火墙,它将多种功能完全集于一身,采用统一管理,可在…

荣耀应用商城——被下架应用申诉指南

申诉背景 为了营造良好的荣耀应用市场生态环境,保障开发者权益及提升用户体验,此流程针对应用被下架后开发者后续的具体申诉操作流程及详细介绍。 该流程适用于开发者在荣耀应用市场提交的应用,且应用当前处于被下架状态。 申诉流程 申诉定义…

PHP概述-环境搭建-开发工具安装

老师建议注册使用百度文心一言;讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞;Kimi.ai - 帮你看更大的世界 等人工智能工具软件的一个到两个,也可下载文心一言、讯飞星火、kimi等APP软件使用,对于我们在读的大二学生来说有什么…

XR虚拟拍摄和VP有什么区别

XR 虚拟拍摄技术最早源于舞台屏当中,当前衍生出“VP 虚拟制片”、“XR 扩展现实"两大类: 扩展现实(xR)拍摄,扩展是指LED屏以外区域在画面中被虚拟图形所覆盖,扩展无限的虚拟空间;现实是指LED屏为导演和演员提供肉…

51、Python之模块和包:Python的包和文件夹有何区别

引言 大学有云:“苟日新,又日新,日日新”。 看到一些教材或者文章,介绍到包的时候,一定会提到一定要在文件夹中新建一个__init__.py的文件,哪怕空文件也可以…… 我只想说,有些人的知识真的是…

等保测评与企业风险管理:构建坚实的信息安全防线

随着信息技术的飞速发展,企业在数字化转型的道路上高歌猛进。然而,随之而来的信息安全威胁也日益严峻,成为制约企业发展的关键因素。为了确保信息系统安全,等保测评作为一种重要的风险管理手段,正逐渐成为企业构建信息…

Automatic Educational Question Generation with Difficulty Level Controls

文章目录 题目摘要简介相关工作问题表述实验用户研究结论 题目 具有难度级别控制的自动教育问题生成 论文地址:https://link.springer.com/chapter/10.1007/978-3-031-36272-9_39 摘要 我们考虑自动生成各种难度的数学应用题 (MWP),以满足教师在相应教育阶段教学和…

Java 使用 POI 导出Excel,实现单元格内容为下拉选项

在使用Apache POI的库生成Excel导入模板的时候,有时候需要设置某些列只能选择下拉选项中的内容,该如何实现这个特性呢?下面是一个示例代码,演示如何实现单元格只能从下拉中选择内容。 代码 import org.apache.poi.ss.usermodel.*…

使用Vue创建cesium项目模版该如何选择?

目录 问题描述模版说明及选用建议小结 问题描述 刚入手这个项目,什么都是一知半解。使用Vue,创建Cesium项目的时候,提示需要选择一个模版(如下图所示),该如何选择项目模版选,总结如下: 模版说明…

共源级PMOS反向串联电路分析

一、共源级PMOS反向串联结构如下图: 二、具体分析 1、当VBUS_EN拉低,三极管Q5截止: 如果V-BUS>GEN_5V, T3体二极管阴极电压大于阳极电压,T3体二极管截止。由于上拉电阻R24将S端电压向G端极间电容充电,使得VgVs&…

【机器学习】探秘图像处理与分类:运用C++结合OpenCV实现智能视觉识别技术

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在计算机视觉领域,图像处理与分类是核心任务之一。OpenCV作为一个功能强大的开源计算机视觉库,提供…

【搜索引擎】ElasticSearch 7.x版本

1 Elasticsearch概述 1.1 Elasticsearch是什么 1.2 全文搜索引擎 1.3 Elasticsearch And Solr 1.4 Elasticsearch Or Solr 1.5 Elasticsearch应用案例 2 Elassticsearch入门 2.1 Elasticsearch 安装 2.1.1 下载软件 2.1.2 安装软件 2.1.3 问题解决 2.2 Elasticsearch基本操…

【网络基础】DNS协议详解:从背景到解析过程及`dig`工具的使用

文章目录 DNS 协议① 前言 - 背景② 域名③ DNS解析过程④ Linux下用dig工具 分析DNS过程⑤ 浏览器中输入URL后,会有哪些过程 DNS 协议 DNS(域名系统,Domain Name System)是互联网的一个核心协议,用于将域名转换为 IP…

有一种“穷人性格”,大事拎不清,小事算太精

在生活的舞台上,人们各自演绎着不同的人生故事。而有一种性格特征,常常被视为与经济困境紧密相连,那就是“大事拎不清,小事算太精”的所谓“穷人性格”。这种性格不仅在个体层面影响着人们的生活轨迹,也在一定程度上反映了社会现象背后的深层次问题。 一、“穷人性格”的表…

读软件开发安全之道:概念、设计与实施10安全设计审查

1. 安全设计审查 1.1. Security Design Review,SDR 1.2. 将安全性融入软件设计的最佳方法之一是戴上“安全帽”进行单独的设计审查 1.3. 安全审查员是熟悉软件运行的系统和环境,以及知道如何使用它的人,但他们不参与设计工作,这…

【SpringCloud】(一文通) 统一服务入口-Gateway

目 录 一. 网关介绍1.1 问题1.2 什么是 API 网关1.3 常见网关实现 二. Spring Cloud Gateway2.1 快速上手2.1.1 创建网关项目2.1.2 引入网关依赖2.1.3 编写启动类2.1.4 添加Gateway的路由配置2.1.5 测试 2.2 Route Predicate Factories2.2.1 Predicate2.2.2 Route Predicate Fa…

<数据集>脑肿瘤识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5249张 标注数量(xml文件个数):5249 标注数量(txt文件个数):5249 标注类别数:4 标注类别名称:[Glioma, Meningioma, No Tumor, Pituitary] 序号类别名称图片数框数1…

【RabbitMQ】概述

目 录 一. RabbitMQ 概述什么是 MQMQ的作用为什么选择 RabbitMQRabbitMQ 介绍 一. RabbitMQ 概述 前言 Rabbit, 兔子的意思 互联网行业很多公司, 都喜欢用动物命名产品, 或者作为公司的logo, 吉祥物. 比如: 腾讯的企鹅, 京东的狗, 美团的袋鼠, 携程的海豚,阿里就更多了, 蚂蚁…

原生JS实现下滑到当前模块时左右滑动到位

效果图&#xff1a; ​​​​​​​ 源码&#xff1a; <div style"height: 1500px;"></div><div class"software-box"><div class"software-container" style"display: flex;"><div class"software-…

MapBox Android版开发 2 本地化

MapBox Android版开发 2 本地化 前言MapBox V9 本地化示例1示例2示例3运行效果图 MapBox V11 本地化示例运行效果图 前言 前文介绍了MapBox V9和 V11 两个版本配置和显示地图。默认MapBox地图语言为英文&#xff0c;本文重点介绍如何将地图语言设置为中文。 MapBox V9 本地化…