UE5关卡场景无缝切换

概述

不清楚大家在使用UE5的时候有没有这样一个需求,在同一个Level中想丝滑切换几种不同的场景或光照效果。目前已知的做法有通过蓝图遮罩来实现,不过这种方法有限制且感知很明显,如Fab商城里面的这个效果:

上面这两个资源,有个明显的缺点就是只能改变场景中现有的物体或地形的材质变化,不能真正意思上来切换不同的关卡场景,并通过Sphere遮罩的扩展来进行转变。

目前,还有另外一种比较成熟的方案 Level Streaming,感兴趣的可以去看一下。

Level Streaming方案目前也存在一个问题就是不能真正的切换另一个场景内容,只是在当前关卡中实时流动加载或卸载而已,遇到需要卸载和加载更复杂、更庞大的环境和蓝图的情况。这时,卡顿就出现了,关卡流式传输也无济于事。这时就需要进行游戏性能分析,并采用各种优化技术——例如资源管理器、纹理流式传输等等。如果有需要,这篇文章可能对你有帮助。

但是,最近发现了UE5中的 World Partition – Data Layers 能很好的实现我想要的效果。它利用数据层资源和数据层实例,您可以在编辑器中动态加载和卸载图层,从而更好地管理复杂的世界。该系统取代了旧版本虚幻引擎中的图层系统。

World Partition 实操

下面就根据 World Partition功能进行案例操作演示:

创建数据层

首先,将现有的关卡转化成世界分区:可以使用 “Tools”>“Convert Level” 或使用命令行工具将地图转换为世界分区。

接下来在Level中创建两套场景和灯光内容:

创建好的两套场景灯光预设分别分配到不同的 Data Layer 中:

数据层State

三种状态对应不同的加载策略:当前显示的状态为Actived,在内存中加载但不显示出来的状态为Loaded,不加载忽略掉的内容状态为Unloaded,明白这三种状态后就方便在蓝图中进行调用和更改。

将数据层与蓝图结合使用

为了方便演示,在此做一个简单的效果,打开关卡蓝图:

Demo展示

好啦,目前这个效果已初步达到预期,在此作为一个框架基础,给需要的的朋友一点启发,如果有得到灵感和帮助,请留下评论和转发此文章,谢谢大家❤️

欢迎评论交流,如果文章对您有帮助,可以支持下博主。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇