虚幻引擎(UE5)-大世界分区WorldPartition教程(三)

文章介绍了UE5中ALevelInstance的使用,包括如何创建和编辑LevelInstance,以及在运行时如何加载。LevelInstance允许在大关卡中重复使用Actor并管理多个实例,同时支持在运行时动态加载,优化了大世界分区的资源管理和流送效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


上一篇:虚幻引擎(UE5)-大世界分区WorldPartition教程(二)

前言

在制作大关卡时,可能会遇到这样一种情况,就是关卡中的某些Actor会重复出现或者你想单独编辑某区域的Actors,举个例子,关卡中有两片一模一样的森林,很显然,如果在关卡中制作两个这样的森林不科学

在UE5中可以通过一个特殊的Actor即ALevelInstance管理多个Actor,它会被保存为一个关卡文件(即SubLevel),在运行时可以被实例化为多个,即所谓的Level Instancing技术


提示:以下是本篇文章正文内容

LevelInstance的使用

1.ALevelInstance

手动创建一个ALevelInstance蓝图,然后为它指定任意的Level

在这里插入图片描述
在这里插入图片描述
将该LevelInstance蓝图拖到你想要放的关卡中即可,此时在拖到的关卡中还不能对该LevelInstance的Actor进行编辑,需要点击该LevelInstance的Details面板下的Edit按钮进行编辑,编辑完后提交即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当然也可以直接指定的关卡

在这里插入图片描述

2.选择Actor创建关卡

在当前关卡的Viewport或Outliner选中多个Actor,然后为其创建LevelInstance
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就将多选的actor合并到一个新的关卡里面了。

提示:LevelInstance可以嵌套多层,也就是说LevelInstance下面还可以有子LevelInstance

还有一点值得注意,LevelInstance和它下面的Actor的是否被保存为外部文件是根据它们所在的关卡决定的,所在关卡为WP关卡,那么默认会保存到外部文件,所在关卡为非WP关卡,可以按照OFPA小节介绍的方法来决定是否将这些Actor保存为外部文件

这个时候会发现这里的LevelInstance 有两个选项,这两种的区别如下:

  1. LevelInstance,不会合并Actor
  2. PackedLevelActor,它试图将静态网格的Actor合成成尽可能少的静态网格Actor

比如选中几个静态网格Actor创建PackedLevelActor后,会被合成一个Actor
想具体了解静态网格Actor如何被Packed可以翻一下源码的FPackedLevelActorISMBuilder::PackActors方法

3.运行时加载LevelInstance

在运行时有两种方式加载LevelIntance

  1. 如果LevelInstance开启了OFPA(即PackageMode为External),它拥有的所有Actor都会被嵌入到当前WP关卡中,这些Actor会被自动划分到Cell中,并且将WP关卡中的LevelInstance这个Actor直接丢弃掉(它只存在于编辑时)
  2. 如果LevelIntance没有开启OFPA(即PackageMode为Internal),它拥有的Actor不能被嵌入到WP关卡中,LevelInstance这个Actor仍然会保留,当加载LevelInstance这个Actor时会加载它关联的SubLevel

第一种方式是默认的也是推荐的方式,它会将LevelInstance关联的SubLevel中的所有Actor嵌到WP关卡中,然后将它们自动划分到Cell中来流送,第二方式和UE4中的关卡流送机制类似,在流送LevelInstance这个Actor所在的Cell时会将它关联的SubLevel全部加载进来,这可能造成性能问题

具体实现可参见ULevelInstanceSubsystem::UpdateStreamingState

总结

以上就是今天要讲的内容,本文仅仅简单介绍了LevelInstance的使用,Level Instance既方便了编辑时候对某些Actor的重用和生成多实例,同时也方便将UE4的SubLevel接入WP关卡。

下一篇:虚幻引擎(UE5)-大世界分区WorldPartition教程(四)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS子枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值