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

news2024/10/5 14:20:08

文章目录

  • 前言
  • LevelInstance的使用
    • 1.ALevelInstance
    • 2.选择Actor创建关卡
    • 3.运行时加载LevelInstance
  • 总结


上一篇:虚幻引擎(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教程(四)

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

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

相关文章

【每日一题】——Majority

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

A*算法学习笔记

1 算法思路 1、Dijkstra算法与A*算法 (1)Dijkstra算法(贪心策略 优先队列): 集合S:已确定的顶点集合,初始只含源点s。 集合T:尚未确定的顶点集合。 算法反复从集合T中选择当前到…

开闭架构

在《不过时的经典层架构》里,有朋友留言关于Manager和Engine的概念,虽然朋友留言把概念解释清楚了。为了避免其他人有同样的疑问,这里我还是再解释一下。 以上是经典的四层架构,在这个架构中,Manager和Engine(引擎)都是…

【liunx配置服务自启动】liunx系统设置net Core程序开机自启动服务 centos系统

liunx系统设置net Core程序开机自启动服务 系统版本:Centos7.9 我的程序部署到/www/wwwroot/AcmeBookStoreHttpApiHost.com/目录下, 程序名是Meowv.Blog.HttpApi.Hosting.dll 1.新建自启动配置文件 首先跳转到system目录下 cd /usr/lib/systemd/syste…

【.net core】yisha框架,实体不在同一项目下设置swagger接口及实体模型注释,授权鉴权

1.Startup.cs中ConfigureServices方法中添加: 授权鉴权内容 #region 授权鉴权//Bearer 的scheme定义var securityScheme new OpenApiSecurityScheme(){Description "使用JWT方案授权,请求时,在请求头部信息中加入: \"Authoriza…

分布式计算模型详解:MapReduce、数据流、P2P、RPC、Agent

前言 本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据理论体系 思维导图 MapReduce MapReduce 是一种分布式计算模…

Tomcat与Undertow容器性能对比分析

👨‍🎓作者:bug菌 ✏️博客: CSDN、 掘金、 infoQ、 51CTO等 🎉简介:CSDN博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者,全网合计8w粉,对…

BufferedImage将图片切成圆形

原图 修改后 方法一 //文件路径 File imageFile new File(path); public BufferedImage changeImages(File imageFile) {BufferedImage avatarImage null;try {avatarImage ImageIO.read(imageFile); avatarImage scaleByPercentage(avatarImage, avatarImage.getWidth(…

LENOVO联想笔记本电脑ThinkBook 15 G2-ITL(20VE)原装出厂Windows10系统恢复原厂OEM设置预装系统

Lenovo联想笔记本电脑,ThinkBook 15 G2-ITL(20VE)出厂Windows10系统,出厂预装系统 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小&#xf…

最优化--凸函数--拉格朗日乘子法

目录 凸函数 凸函数定义 凸函数的判定 性质特点 拉格朗日乘子法 基本思想 有约束最优化问题 拉格朗日乘子法 凸函数 凸函数(Convex Function)是定义在凸集上的实值函数,具有以下性质:对于任意两个定义域内的点&#xf…

Windows11系统启动VMware Workstation 在此主机上不支持嵌套虚拟化导致无法启动虚拟机

问题复现: VMware Workstation中的虚拟机时启动失败,弹出错误弹窗: VMware Workstation 在此主机上不支持嵌套虚拟化。 模块“MonitorMode”启动失败。 未能启动虚拟机。 问题原因: 不要同时开启hyper-V和VMware虚拟机软件&…

(小程序)指定问题换一批功能实现

(小程序)指定问题换一批功能实现 vue3写法 html <view class"title"><p>推荐问题</p><view class"refresh" click"onRefresh"><text>换一批</text><image src"https://cdn.tudb.work/aios/web/im…

MongoDB的数据类型

BSON JSON作为一种轻量级的数据交换格式&#xff0c;JSON的可读性非常好&#xff0c;而且非常便于系统生成和解析&#xff0c;这些优势也让它逐渐取代了XML标准在Web领域的地位&#xff0c;当今许多流行的Web应用开发框架&#xff0c;如SpringBoot都选择了JSON作为默认的数据编…

007+limou+C语言基础排序算法(上)

0.前言 您好这里是limou3434的一篇博文&#xff0c;感兴趣可以看看我的其他内容。 排序算法简单理解就是&#xff1a;一串数组经过排序算法后得到有序的数组。排序算法在不同应用场景有不同的效果&#xff0c;因此我们有必要了解一些基础的排序算法。 而本次我给您带来的是一…

vue+leaflet实现聚合图(根据半径划分)

效果 官方示例 github地址 1. 安装leaflet.markercluster插件 npm install leaflet.markercluster -S** 2. 在项目中引入leaflet.markercluster和样式文件 ** import leaflet.markercluster/dist/MarkerCluster.css import leaflet.markercluster/dist/MarkerCluster.Def…

SqlServer定时执行存储过程

1.连接数据库后选择【SQL Server 代理】—【作业】——右键【新建作业】&#xff0c;具体操作如下图&#xff1a; 2.【新建作业】步骤如下图所示&#xff1a; 3.新建【步骤】&#xff0c;具体如下图所示&#xff1a; 4.新建【计划】&#xff0c;具体如下图所示&#xff1a; 6.配…

Ubuntu 20.04 下g++用不了,但是提示已经安装

问题描述 用sudo apt-get install g来安装&#xff0c;系统却又说g已经是最新版本了&#xff0c;但是用g -v查看又提示需要安装 g&#xff0c;如图片所示。 解决方法 未安装g&#xff0c;安装依赖只需运行命令行&#xff1a; sudo apt-get install build-essential仍然无法成…

docker部署redis

一、拉取镜像 docker search redis 我部署的是redis6.0&#xff0c;使用docker pull 拉取镜像 docker pull redis:6.0 拉取成功后使用docker image查看镜像 docker images | grep redis 二、创建挂载目录 在 /opt 目录下创建redis的 conf 和 data 目录 sudo mkdir /opt/re…

YOLOv5 环境安装

Windows11下yolov5环境配置系列教程&#xff08;基础部分&#xff09; Windows11下yolov5环境配置系列教程&#xff08;基础部分&#xff09;_wnowswolf的博客-CSDN博客 安装 Anaconda3 可以改为miniconda 占用更小 将安装目录下的Scripts和condabin文件夹的路径加入环境变…

linux重启网卡失败

[TO简单粗暴啊&#xff1a; RTNETLINK answers: File exists 这个报错&#xff0c;我看了一下网卡目录下出现了两个网卡配置文件&#xff0c;一个ens33&#xff0c;一个eth0。我本机是ens33&#xff0c;所以把eth0的删除了&#xff0c;就可以了。我这个是测试机器&#xff0c;…