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

这篇具有很好参考价值的文章主要介绍了虚幻引擎(UE5)-大世界分区WorldPartition教程(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

前言

在UE4版本中中,Actor是保存在关卡文件中的,也就是说,如果要编辑关卡中的某些Actor,需要签出关卡文件进行编辑,这种编辑粒度有可能会造成多人协作中工作流上的冲突,比如有多人想编辑某个关卡中的Actors,那么他们必须等待前一个人编辑完后才能编辑

因此,在UE5中细化了编辑粒度,将关卡中的每个Actor保存到一个单独的文件中而非关卡中,即所谓的一个Actor一个文件(One File Per Actor,OFPA),这意味着协作工作者只需签出自己想要编辑的Actor进行编辑即可,解决了工作流冲突问题


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

一、OFPA怎么用

如果是WP关卡,那么关卡中的Actor会默认被自动保存为外部文件,就拿游戏模板中第三人称关卡(ThirdPersonMap)来看,如上文所说,这是一个WP关卡

在创建工程之后,会在如下目录保存关卡中的所有Actor文件,并且会为关卡会生成一个同名文件夹,关卡中的Actor文件就保存在对应的文件夹中

虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
选中关卡中的任意一个Actor(在关卡编辑区域或OutLiner都可以),然后鼠标右键,点击Copy Actor Path菜单,可以查看Actor的具体路径

虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
这个时候大家应该猜的的到如果不是WP关卡的话,是创建的普通关卡,默认是禁用将Actor保存为外部文件的,它们仍然被保存在关卡中,举例如下:

再之前的普通关卡NoWP或者重新场景一个普通关卡,然后给它放一个Actor,然后右键拷贝路径会发现

虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
会发现普通关卡复制的路径是直接指定关卡文件,就是说Actor仍然是被保存在关卡文件(.umap)中的,那如果我想要在普通关卡中开启这个One File Per Actor 一个文件一个Actor要怎么弄呢?这个时候就要打开编辑器设置开启了,操作如下:
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
开启后,在关卡的WorldSettings中的World部分有个Use External Actors,勾上后保存关卡(Ctrl+S)会使该关卡的所有Actor被保存为外部文件

虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
就会发现变成和开启世界分区关卡一样的存储路径了。

普通关卡中的Actor还可以指定是否开启OFPA,具体操作如下:

选中Actor,然后去到它的Details面板,展开其中的Actor部分中的Advanced,其中有一个Packaging Mode(可以直接搜Packaging),然后选择External或Internal
虚幻引擎(UE5)-大世界分区WorldPartition教程(二)
External,该Actor会被保存为外部文件
Internal,该文件会被保存到关卡文件中

有了OFPA之后,我们可以针对Actor进行修改,并不会导致关卡被修改,如下图我修改了关卡中的SM_ChamferCube的位置,只会影响该Actor并不会影响当前关卡

官方文档有说基于当前关卡的所有子关卡需要手动勾选Use External Actors应该是预览版才需要这样做,正式版本中会默认保持
和父关卡一致,即使在非WP关卡中创建子关卡也有一个默认勾选的选项

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

二、OFPA怎么用

那么文件是如何与关卡中的Actor关联起来的?

如何将关卡中的Actor保存为外部文件的代码比较简单,起始位置为ULevel::ConvertAllActorsToPackaging,最终调用HashObjectExternalPackage方法,该方法就是将Actor对象与外部文件对应起来的关键

void HashObjectExternalPackage(UObjectBase* Object, UPackage* Package)
{
    if (Package)
    {
        FUObjectHashTables& ThreadHash = FUObjectHashTables::Get();
        FHashTableLock LockHash(ThreadHash);
        UPackage* OldPackage = AssignExternalPackageToObject(ThreadHash, Object, Package);
        if (OldPackage != Package)
        {
            //将Object、Package放入PackageToObjectListMap中
            AddToPackageMap(ThreadHash, Object, Package);
        }
    }
    else
    {
        UnhashObjectExternalPackage(Object);
    }
}

值得注意的是,OFPA机制只存在于编辑器中,在运行时候,Actor还是会被添加进Level中,代码如下:

AActor* UWorld::SpawnActor( UClass* Class, FTransform const* UserTransformPtr, const FActorSpawnParameters& SpawnParameters )
{
    //...
    // actually make the actor object
    AActor* const Actor = NewObject<AActor>(LevelToSpawnIn, Class, NewActorName, ActorFlags, Template, false/*bCopyTransientsFromClassDefaults*/, nullptr/*InInstanceGraph*/, ExternalPackage);
    //添加到Level中
    LevelToSpawnIn->Actors.Add( Actor );
}

总结

以上就是今天要讲的内容,本文仅仅简单讲解了OFPA机制要解决的根本问题就是关卡的编辑粒度问题,OFPA机制只存在于编辑器中,在运行时候,Actor还是会被添加进Level中

下一篇:虚幻引擎(UE5)-大世界分区WorldPartition教程(三)文章来源地址https://www.toymoban.com/news/detail-509885.html

到了这里,关于虚幻引擎(UE5)-大世界分区WorldPartition教程(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI最新进展介绍——大世界模型Large World Model (LWM)

    UC Berkeley    大世界模型( LWM )是一种通用的大型上下文多模态自回归模型。它使用 RingAttention 在一个包含各种长视频和书籍的大型数据集上进行训练,可以进行语言、图像和视频的理解和生成。   目前的语言模型在理解“世界上难以用言语描述的方面”存在不足,而且

    2024年03月10日
    浏览(61)
  • 制作unity大世界场景编辑的一点心得和注意事项(场景地编)

    制作unity大世界场景的一点心得和注意事项(地编注意事项) 这是一个项目的整个注意事项,所注意点都是根据制作的项目整理的。所以在做任何项目的时候要注意 举一反三 。 1,检查分组里的各种检查(这里的分组是每一个场景尤其是大世界地图制作人员比较多需要合理规

    2024年02月07日
    浏览(58)
  • 【虚幻引擎】UE4/UE5 材质

      基础颜色(BaseColor) :材质本身的颜色,例如绿色蓝色等 金属度(Metallic) :金属度,材质是否含有金属光泽 粗糙度(Roughness) :粗糙或者平滑度,物体表面的粗糙程度 自发光(EmissiveColor) :物体本身是否发光 透明度(Opactity) :物体表面是否透明,适用于 半透明(Translucent)、

    2024年02月02日
    浏览(82)
  • 【虚幻引擎】UE4/UE5插件

    Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。 BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数,可以在蓝图中直接调用。 ContentOnly:创建一个只包含内容的空白文件 Editor Toolba

    2024年02月05日
    浏览(75)
  • 【虚幻引擎】UE4/UE5 pak挂载

     找到:D:UEUE_4.27EngineBinariesWin64,  WindowS+R打开CMD命令 运行UnrealPak,运行结果如下      注意如果想要加载Pak内资源,那么这些资源必须是经过Cook的。如果打包的是未Cook的资源,那么即使Pak挂载成功,也不可能会成功加载Pak内资源。  Cook好之后,存储的路径在你的I:DBJ

    2024年02月10日
    浏览(75)
  • unrealengine(UE5)虚幻引擎下载安装

    早就听说功能强大的UE4游戏引擎,今天终于可以开始学习UE4了,还是有点点小激动哈,兄弟萌撸起来。。。。。。 UE4官网 进入ue5官网,现在是ue5版本了,首先需要先注册,才能下载ue4安装器 首先安装上一步的ue5下载器,安装完成后会自动弹出登录页面 点击“虚幻引擎”来安

    2024年02月12日
    浏览(71)
  • 【虚幻引擎UE】UE4/UE5 新人科普向

    Unreal Engine是当前最为流行的游戏引擎之一,具有丰富的游戏开发功能和强大的游戏引擎渲染能力。 UE5官方文档:UE5官方文档非常详细,介绍了UE5的各个功能和应用,适合入门学习和深入探究。链接:https://docs.unrealengine.com/5.1/zh-CN/ UE5中文社区:该社区聚集了大量的UE5开发者,

    2024年02月09日
    浏览(79)
  • [虚幻引擎][UE][UE5]控制多个pawn之间切换

    缺点:无法使用碰撞了,模型会穿模

    2024年02月13日
    浏览(53)
  • 【虚幻引擎UE】UE5 UI三种使用模式

    蓝图创建控件并添加到视口 场景中的显示效果: 1、创建Actor,放入用户控件,并将Actor拖入场景。 这种模式默认无法进行交互,但可播放动画。 1、在二的基础上,添加虚拟控件交互组件到角色身上。 2、在角色蓝图里加上:

    2023年04月10日
    浏览(62)
  • [虚幻引擎][UE5]获取当前系统的时间

    效果: 效果: 缺点:没有办法都是两位

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包