&OutGeneratedStreamingPackageNames:nullptr);// Prepare GeneratedStreamingPackagescheck(GeneratedStreamingPackageNames.IsEmpty());for(constFString&PackageName:OutGeneratedStreamingPackageNames){// Set as memory package to avoid wasting time in UWorldPartition::IsValid...
1 Create New Level 点击Menu File->New Level 引擎提供了四种关卡模板。后面的两种,默认是不启用World Partition的,正是我需要的模板。这里我选择Basic,它包含了基础的地板,光照和天空球。 更多关卡创建的细节,可以参考官方文档:https://docs.unrealengine.com/5.0/en-US/level-designer-quick-start-in-unreal-en...
一个Cell中包含若干个Actor,并最终将这些Actor组织在一个LevelStreaming中:UWorldPartitionLevelStreamingDynamic,它是WorldPartition加载卸载的最小单位。 WorldSetting上的配置项存在于UWorldPartition中,而关于Cell划分方式的配置在它的一个成员变量中UWorldPartitionRuntimeHash* RuntimeHash;,RuntimeHash主要定义了如何划分...
当然,这里还有很多额外处理,我现在没有讲,是考虑到做streaming时的一些分页处理。这个分页可能会对cluster group造成切割,所以cluster group,还有一些group partition的概念,我们这里不做细化。另外,对于一些微小物体离得很远以后的情况,我们减到最后一级cluster,其实它还是有128个面,那如果场景里非常小的东西位于...
讲完两大招牌功能,我们快速过一下别的功能:比如最常被大家提到的大世界支持。从UE5开始我们有了更好的工具,比如World Partition就升级成了全新的数据组织方式,配合一套streaming系统,我们不需要手动处理runtime的streaming,引擎会帮你自动切分出不同的Partition,自动处理加载策略。
而且在这个基础上,我们又有Data Layer对于不同逻辑的处理,有World Partition Stream Policy根据layer对不同的Policy的定制,有Level Instance——可以把Level看成Actor、嵌套组成模板、模块化搭建地图,并且在Level Instance层级上设置Hlod的参数。 为了协同工作,我们还引入了One File Per Actor,大家每次在地图上编辑或新增...
而且在这个基础上,我们又有Data Layer对于不同逻辑的处理,有World Partition Stream Policy根据layer对不同的Policy的定制,有Level Instance——可以把Level看成Actor、嵌套组成模板、模块化搭建地图,并且在Level Instance层级上设置Hlod的参数。 为了协同工作,我们还引入了One File Per Actor,大家每次在地图上编辑或新增...
而且在这个基础上,我们又有Data Layer对于不同逻辑的处理,有World Partition Stream Policy根据layer对不同的Policy的定制,有Level Instance——可以把Level看成Actor、嵌套组成模板、模块化搭建地图,并且在Level Instance层级上设置Hlod的参数。 为了协同工作,我们还引入了One File Per Actor,大家每次在地图上编辑或新增...
讲完两大招牌功能,我们快速过一下别的功能:比如最常被大家提到的大世界支持。从UE5开始我们有了更好的工具,比如World Partition就升级成了全新的数据组织方式,配合一套streaming系统,我们不需要手动处理runtime的streaming,引擎会帮你自动切分出不同的Partition,自动处理加载策略。
从UE5开始我们有了更好的工具,比如World Partition就升级成了全新的数据组织方式,配合一套streaming系统,我们不需要手动处理runtime的streaming,引擎会帮你自动切分出不同的Partition,自动处理加载策略。 而且在这个基础上,我们又有Data Layer对于不同逻辑的处理,有World...