vault backup: 2024-07-24 12:12:11

This commit is contained in:
BlueRose 2024-07-24 12:12:11 +08:00
parent 848e7807c5
commit bb28cb45e3

View File

@ -125,6 +125,11 @@ Build - Build Minimap
### 使用蓝图或者c++控制DataLayer加载
通过**UDataLayerSubsystem**的SetDataLayerState()来控制DataLayer的加载与卸载。
相关的Runtime加载控制可以参考:https://youtu.be/LI6TsZf5hh0?si=nwqz-S6DDR7MgSBT
需要在世界设置的WorldPartitionSetup - RuntimeSettings - Grids中设置不同层级一些场景中的Detail场景物体可以添加到Priority比较低Cell Size与Loading Range比较小的Grid组中。
物体可以放到一个Actor中再将Actor的GridName设置好即可。之后就可以通过蓝图的DataLayerSubsystem进行控制。
# 相关CommandLet
- 烘焙WorldPartitionUnrealEditor.exe QAGame -run=cook -targetplatform=WindowsNoEditor -Unversioned -map=Playground
- HLOD Build`UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -builder=WorldPartitionHLODsBuilder`
@ -165,9 +170,19 @@ https://github.com/EpicGames/UnrealEngine/commit/51d38831de4da7df196eecaf13f3d4b
## 最终结论
1. Sequence不能控制DMX是因为大世界存在垃圾需要使用上面的重新构建命令重新构建一下问题就解决了。
2. 舞台DMX可以考虑加一个Runtime DataLayer之后塞进LiveArea中。
1. 这样可以保证看不到的Actor也会被加载。
1. 有关DataLayer的Runtime设置可以参考:https://youtu.be/LI6TsZf5hh0?si=nwqz-S6DDR7MgSBT
2. 这样可以保证看不到的Actor也会被加载。
3. 在异世界地图中也用到了WorldPartitionRuntimeStateVolumn。BP_LiveArea_12_1
4. AWorldPartitionRuntimeStateVolume是字节自己实现的。
4. AWorldPartitionRuntimeStateVolume是字节自己实现的。Puerts与C++没有任何调用,不知道该如何使用。
### ASoul的做法
1. 几个通用DataLayer
1. DL_AlwaysActive
2. DL_DMXStageAll
3. DL_EditorOnly
4. DL_LiveArea
2. 按照需要设置大世界专用DataLayer主要面对的是***占用区域较大,需要全部加载的。***
## 笔记
1. 枝江地图针对小房间、DMX、巨蛋DMX、舞蹈室以及舞台分别使用了DataLayer。