三维学习笔记——UE5加载子关卡的三种方式

发布时间:2026/6/26 8:32:03
三维学习笔记——UE5加载子关卡的三种方式 UE5.5 中三种子关卡加载方式各有明确的适用场景和权衡取舍以下是详细对比一、 加载方式1. 关卡流送Level Streaming原理通过UGameplayStatics::LoadStreamLevel或蓝图节点在运行时手动加载/卸载子关卡。子关卡在编辑器中预先配置位置、旋转等属性由持久关卡Persistent Level统一管理。优点手动控制精确开发者可以完全控制何时加载/卸载哪个关卡适合剧情驱动的线性流程。同步实例化透明引擎内部会根据流送策略自动分帧激活 Actor如按 LOD 优先级、空间分区等避免单帧卡顿。适合非欧几里得空间如需要一扇门连接两个物理上不可能相邻的位置手动流送可以灵活控制。缺点运行时配置受限加载后无法动态修改子关卡的位置、旋转等预先配置的属性。手动管理开销大需要开发者自己规划加载时机和区域边界不适合超大规模开放世界。多人协作冲突子关卡文件容易产生版本控制冲突。适用场景线性关卡或章节式游戏如《生化危机》式房间切换需要精确控制加载时机的剧情演出非欧几里得空间效果无限走廊、传送门等2. 世界分区World Partition原理UE5 引入的自动空间分区系统将整个世界划分为均匀的 Cell 网格基于玩家位置流送源自动加载/卸载 Cell。配合 HLOD分层细节级别和 Nanite 使用实现所见即所得的流送。优点全自动流送无需手动管理系统根据玩家位置和 Loading Range 自动处理加载/卸载。内存占用极低在 256km² 的地图中仅需加载玩家周边约 1km² 的资源。支持超大规模世界配合 64 位大世界坐标LWC可构建远超 UE4 尺寸限制的地图。多人协作友好采用一 Actor 一文件OFPA减少版本冲突。HLOD 集成远处物体卸载时自动生成代理网格避免凭空消失的视觉断层。缺点灵活性受限自动流送基于距离难以实现复杂的自定义流送逻辑如剧情触发加载。小地图性价比低对于 1.5km² 以下的中小型地图手动关卡流送可能更简单稳定。跨轴 Actor 问题覆盖到坐标轴上的 Actor 可能永远处于加载状态5.3 后已有解决方案。稳定性顾虑部分开发者反馈在中小型项目中仍不够稳定功能迭代较快。适用场景开放世界游戏如《塞尔达》《艾尔登法环》式大地图超大规模场景4km²需要多人协作开发的大型项目Nanite HLOD 全栈优化的项目3. 关卡实例Level Instances原理将一组 Actor 打包为可复用的子关卡支持在场景中多次实例化。运行时分为嵌入模式默认推荐和关卡流送模式两种。优点高效复用同一子关卡可在场景中生成多个实例修改原始关卡后所有实例自动更新。上下文编辑支持在当前场景中直接编辑实例内容无需反复进出子关卡。变换信息支持通过特殊 Actor 实现实例的位置、旋转、缩放变换。支持嵌套可以在子关卡中再嵌套其他子关卡构建复杂层级。缺点嵌入模式限制使用 OFPA 的实例在运行时会溶解到世界分区网格中非 OFPA Actor如 AWorldSettings会丢失。流送模式性能差非 OFPA 实例使用传统关卡流送运行时开销高不适合大量实例。依赖世界分区离开世界分区系统后关卡实例不会自动实现流送管理。适用场景重复性 POI兴趣点如森林中的多个相似树屋、迷宫中的相同房间。模块化建筑可复用的房屋、营地、商店等预制件。动态修改需求需要在运行时动态改变实例属性如光照、颜色而不影响原始关卡。打包型关卡蓝图用于静态建筑和密集视觉设置的渲染优化如《遗迹峡谷》的 Mega Assemblies。总结对比表维度关卡流送世界分区关卡实例控制方式手动代码/蓝图全自动基于距离半自动嵌入或流送模式适用规模中小型、线性大型、超大型开放世界模块化、重复性内容内存管理开发者手动控制引擎自动优化极低内存依赖底层模式灵活性高精确控制时机低按距离自动中复用变换协作开发易冲突子关卡文件友好OFPA友好复用原始关卡典型场景线性剧情、传送门开放世界、大地图重复建筑、POI 预制件实际项目中的组合使用在大型开放世界项目中通常三者结合世界分区作为底层架构管理整个大地图的自动流送。关卡实例用于生成重复的 POI如村庄、营地以嵌入模式融入世界分区网格。关卡流送用于处理特殊剧情区域或需要精确控制的加载时机如地下城入口、剧情演出房间。二、关卡实例的两种加载方式1.附加在关卡实例 Actor 里Embedded / 嵌入模式这是默认且推荐的方式在关卡中放置Level InstanceActor选择要引用的子关卡运行时这些 Actor直接实例化到当前关卡中成为持久关卡的一部分使用 OFPAOne File Per Actor时实例会溶解到世界分区的网格中参与自动流送管理没有额外的流送开销性能最优2.蓝图加载Load Level InstanceLevel Streaming / 流送模式通过蓝图节点Load Level Instance或Unload Level Instance动态加载运行时以传统关卡流送的方式加载子关卡会创建独立的关卡上下文有额外的流送管理开销适合需要动态加载/卸载的场景但不适合大量实例关键区别维度嵌入模式Level Instance Actor流送模式Load Level Instance加载时机关卡加载时自动实例化运行时手动/动态加载运行时开销低直接实例化较高传统流送系统OFPA 支持支持融入世界分区不支持独立关卡上下文动态控制不支持运行时切换支持运行时加载/卸载适用场景静态复用内容建筑、POI动态内容按需加载的房间推荐程度⭐ 默认推荐特定场景使用简单记忆嵌入模式 把子关卡粘贴进当前关卡成为一体流送模式 把子关卡当作独立关卡动态加载/卸载什么时候用哪种嵌入模式绝大多数场景。比如你在开放世界里放 20 个相似的村庄每个都是同一个子关卡的实例直接拖进场景就行世界分区会自动管理它们的流送。流送模式需要运行时动态控制的场景。比如玩家进入某个特定区域后才加载一个地下城或者需要根据游戏状态切换不同的房间布局。注意嵌入模式使用的LevelInstance Actor不可动态生成并加载关卡能在编辑器内使用但不能在打包后使用这在引擎层面并没有被完整支持。