UE5关卡

关卡是什么

关卡(Level) 是游戏的"世界"的全部或一部分。关卡包含玩家可以看到并与之交互的所有内容,例如环境、可用对象、其他角色,等等。在电子游戏中,常常有多个关卡,彼此之间有划分明确的过渡(例如,在你打败一个关卡中的终极boss之后,你就会继续到下一个关卡)。对于虚幻引擎中进行的其他类型的交互式体验,你可以使用不同的关卡在不同种类的展柜或环境之间过渡。

关卡文件

虚幻引擎将每个关卡保存为单独的 .umap 文件

关卡 所需元素

下面是组合起来创建关卡至少所需的元素列表:

  • 一个 .umap 文件,即关卡本身。可将其视为保存其他所有内容的容器。

  • 一个由 静态网格体Actor(Static Mesh Actors) 组成的环境。这些可以是树木、岩石、墙壁或其他环境Fixture。某些场景还使用其他类型的Actor,例如地形Actor或者水体Actor。

  • 一个由 骨骼网格体Actor(Skeletal Mesh Actor) 表示的玩家角色。

  • 一个或多个不同类型的 光源(lights) 。

  • 环境声音和音效(例如,脚步声)。

一个world可以有多个关卡,一个作为主关卡

关卡的创建

方法有三种:
1、在左上角点击文件,新建关卡
2、在内容浏览器右键创建关卡
3、按ctrl +N来新建关卡

保存关卡

  • 在 主菜单 中点击 文件(File),然后选择 保存当前关卡(Save Current Level)。
  • 使用 **Ctrl+S(Windows)**或 Cmd+S(Mac)快捷键。

如需将关卡保存为其他名字,你可以使用以下方法:

  • 在 主菜单 中点击 文件(File),然后选择 将当前关卡保存为(Save Current Level As):

  • 使用 **Ctrl + Alt + S(Windows)**或 Cmd + Option + S(Mac)快捷键。

管理多个关卡

新建子关卡

点击菜单栏窗口,选择关卡选项
在这里插入图片描述
按如下操作将子关卡添加到主关卡中
请添加图片描述
也可以直接在关卡窗口里面添加新关卡
在这里插入图片描述

关卡窗口出现两个关卡
在这里插入图片描述

拆分子关卡

先选中 已有的actor,然后在关卡窗口,将actor创建到新的子关卡中,此时原有的actor将会消失,出现到新的关卡中
在这里插入图片描述

在关卡间迁移actor

与上面类似,就是将现有的actor移动到另一个关卡
在这里插入图片描述

关卡细节

可以设置子关卡的位置和旋转,需要设置为顶视图

在这里插入图片描述

显示里面可以设置是否显示关卡着色

在这里插入图片描述

关卡流推送

后续会单独出

世界设置

每个关卡都有从 世界设置(World Settings) 面板应用到关卡中的独有设置。使用此面板可以执行各种操作:从确保运行关卡时激活正确的 游戏模式(Game Mode) ,到调整全局光照在该关卡中的运行方式

世界设置按照设置能够影响关卡的哪些方面来分成几组。其中的部分设置是通用的

预计算的可视性

可以减少渲染操作线程时间,但是会占用运行时内存

游戏模式

就是游戏规则,一般是gamenmode及其重载

lightmass

设置光照细节

世界

这个会影响世界的核心方面

物理

重载世界重力,会影响某些Z轴动作

HLOD

在远距离时候,减少绘制数量来提高性能

世界分区设置和世界分区

新的数据管理和基于距离的关卡流系统
可以为大型世界自动流送系统

导航

配置关卡中使用的导航窗格

VR

使用 米级世界缩放(World to Meters) 变量来调整虚拟世界的大小规模。提高或降低此数字将会使用户感觉自己相对于周围的世界而言变得更大或更小了。此设置用虚幻单位(UU)来表示。在UE4中,1虚幻单位(UU)等于1厘米(cm)。

渲染

在此部分中,可以配置与距离场环境光遮蔽相关的多项配置,以及动态间接阴影。

音频

使用此部分中的设置可以配置项目宏的默认音效行为,例如音量、混响和消退时间。

AI

在此部分中,可以启用虚幻引擎4的人工智能(AI)系统。

更改默认关卡

在 虚幻编辑器 的项目设置中,你可以修改一些项目相关的设置,例如修改 游戏默认地图(Game Default Map) ,从而修改玩家打开项目后默认加载的关卡。 此外,你还可以设置 编辑器默认地图,比如设置成你经常使用的关卡,从而在打开编辑器后立即进入工作关卡。
在这里插入图片描述
如果在世界设置里没有gamemode就按这里的模式运行
可以在这里看到默认地图相关信息

<think>好的,我现在需要回答用户关于Unreal Engine 5中Level Streaming的用法和实现细节的问题。首先,我得回想一下自己了解的UE5关卡流送相关知识,确保信息准确。用户可能想了解如何动态加载和卸载关卡,以优化性能和内存使用。 首先,关卡流送的基本概念是什么?UE中的关卡流送允许开发者将大型世界分割成多个子关卡,根据需要动态加载或卸载,这样可以减少内存占用并提高运行效率。这一点我记得在文档里提到过,可能需要引用相关资料。 接下来,用户需要具体的使用方法和实现细节。我记得UE5主要有几种流送方式:蓝图触发、体积触发和程序化控制。蓝图触发是通过蓝图节点来控制加载和卸载,比如使用Load Stream Level和Unload Stream Level节点。体积触发则是当玩家进入特定区域时自动触发加载,这需要设置流送体积(Level Streaming Volume)并关联对应的子关卡。程序化控制则是通过C++代码来管理,比如使用ULevelStreaming类的方法。这些方法各有特点,比如蓝图适合快速原型设计,体积触发适合开放世界,程序化控制更灵活。 然后,实现细节方面,需要考虑子关卡的命名规范,确保在流送设置中正确引用。还有流送方式的选择,比如是否使用蓝图或代码。另外,流送模式有阻塞和非阻塞两种,阻塞会暂停主线程直到加载完成,可能影响流畅性,而非阻塞则异步加载。性能优化方面,需要注意内存管理和加载时机,避免卡顿。可能还需要引用到UE的文档或教程中的内容,比如引用[2]提到的三种加载方式。 用户可能还会遇到常见问题,比如关卡未正确加载,需要检查名称和流送设置;性能问题需要分析加载策略;还有流送顺序可能需要管理依赖关系。此外,UE5的新功能如World Partition是否与关卡流送结合使用,这点可能需要提及,但不确定用户是否需要,暂时先保留。 最后,生成相关问题需要考虑用户可能进一步想知道的内容,比如如何优化关卡流送性能,World Partition与关卡流送的关系,或者如何调试流送问题等。 现在需要确保回答结构清晰,分点说明,引用正确的资料,比如引用[2]提到的三种加载方式,以及引用[3]中的场景管理相关内容。同时,按照系统指令,数学公式用$...$,但这里可能用不上。检查是否有需要更正的地方,比如是否混淆了UE4和UE5的不同,确保信息准确。另外,代码示例如果有的话会更好,但用户没有特别要求,可能不需要。</think>### Unreal Engine 5 关卡流送(Level Streaming)使用方法及实现细节 #### 1. **基础概念** 关卡流送(Level Streaming)是UE5中管理大型开放世界的关键技术,通过动态加载或卸载子关卡优化性能和内存占用。子关卡可独立编辑并关联到主关卡,运行时根据玩家位置或逻辑需求切换可见性[^2]。 --- #### 2. **实现方式** ##### **2.1 蓝图触发流送** - **步骤**: 1. 将子关卡添加到主关卡的流送列表(`Window > Levels`)。 2. 在蓝图中调用`Load Stream Level`或`Unload Stream Level`节点。 3. 设置加载模式(阻塞/非阻塞)和加载完成后的回调事件。 - **特点**:适合快速原型设计或事件驱动的场景切换[^2]。 ##### **2.2 体积触发流送** - **步骤**: 1. 创建`Level Streaming Volume`并调整其覆盖区域。 2. 在体积属性中关联目标子关卡。 3. 设置触发条件(如玩家进入/离开)。 - **特点**:适用于开放世界场景,自动根据玩家位置加载区域。 ##### **2.3 程序化控制(C++)** - **代码示例**: ```cpp // 加载子关卡 ULevelStreaming* Level = ULevelStreamingDynamic::LoadLevelInstance(GetWorld(), TEXT("SubLevelName"), FVector(0,0,0), FRotator(0,0,0)); if (Level) { Level->OnLevelLoaded.AddDynamic(this, &AMyActor::HandleLevelLoaded); } // 卸载子关卡 GetWorld()->GetStreamingLevels()[0]->SetShouldBeLoaded(false); ``` - **特点**:灵活性高,适合复杂逻辑控制[^3]。 --- #### 3. **关键实现细节** - **子关卡命名规范**:子关卡需命名唯一且在流送列表中正确注册。 - **流送模式选择**: - **阻塞模式**:主线程暂停直至加载完成(可能导致卡顿)。 - **非阻塞模式**:异步加载,保持游戏流畅性。 - **性能优化**: - 预加载:提前加载相邻区域。 - 内存管理:及时卸载未使用的子关卡。 - 使用`Level Streaming Volume`的`Streaming Priority`控制加载顺序。 --- #### 4. **常见问题与调试** - **关卡未加载**:检查子关卡名称、流送列表注册状态及体积触发范围。 - **性能卡顿**:分析加载策略,优先使用非阻塞模式或分帧加载。 - **依赖关系**:若子关卡共享资源,需通过`Level Blueprint`管理加载顺序。 --- #### 5. **UE5新增特性** - **World Partition**:自动分块管理大型世界,与关卡流送结合实现无缝加载。 - **Data Layers**:动态激活/禁用场景中的特定数据层,增强流送灵活性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值