WP构建方式 :https://docs.unrealengine.com/5.0/zh-CN/world-partitioned-navigation-mesh/
针对WP的构建方式特殊配置项关闭就好:
取消勾选RecastNavMesh-XXX下的IsWorldPartitioned
执行n.bNavMeshAllowPartitionedBuildingFromEditor 0取消编辑器下构建WP NavMesh
以上两种都取消掉自动构建,规避每次打开编辑器自动刷新导航数据
编辑器配置中关闭Update Navigation Automatically
项目管理配置中Navigation System中取消勾选Auto Create Navigation Data
根据需要勾选Display配置
Draw Filled Polys 用于生成的导航网格显示
Draw Nav Mesh Edges 显示导航Mesh边界
其他的如有调试需要开启,平时关闭即可
瓦片生成调试配置
勾选Enable
勾选Enable Drawing
Generation配置
属性 | 配置数据 | 特殊说明 |
Fixed Tile Pool Size | WP勾选、常规方式不勾选 | 用于瓦片数据的流式加载 |
Tile Pool Size | 瓦片池Size大小 | 如果开启流加载的情况下保持1024的值即可(该值充足) |
Tile Size UU | 设置参数大小: 4096, 4096, 4096 | 这里设置可设置三个分段值,和Cell Size对应 |
Cell Size | 设置参数大小: 32, 64, 64 | 这是给出的示例与TileSizeUU对应,都是默认TileSize为64 |
Cell Height | 这里暂时设置为10 | 该值调大后内存占用会上升,但影响幅度不像Cell Size那么明显 |
Agent Radius | 推荐默认值35 | 单个导航代理配置下没有问题 |
Agent Height | 推荐默认值144 | 单个导航代理配置下没有问题 |
AgentMaxSlope | 默认值70.344009即可 | 这个参数根据功能需要调整即可,不会影响整体的内存占用 |
AgentMaxStepHeight | 调整该值为80-100 | 该值可以影响AI的导航攀爬,数值调整的越大,内存占用会约低 |
Min Region Area | 该数值可微调为50-100 | 为了优化内存占用,该值微调可以降低整个内存占用,但是过大会造成孤立的导航数据区域丢弃,所以不宜过大 |
Merge Region Size | 默认值400即可 | 区域合并值影响导航区域的合并,整体对内存影响比最小区域值还要小,默认值即可 |
Max Simplification Error | 该数值默认保持1.3即可 | 越低占用内存越多,越大越少;相对应的是该值越低最终生成的导航数据与物体碰撞误差越小,越大误差越大 |
Sort Navigation Areas by Const | 默认勾选即可 | 如果动态导航模式下,为了节省构建消耗可以取消勾选 |
IsWorldPartitionNavMesh | 不勾选 | 这个开启WP构建模式时使用,这里不勾选 |
Do Fully Async Nav Data Gathering | 默认不够选 | 该值在开启修改导航模式的情况下开启,把模型数据导出放到异步线程里去做,目前不知道对构建导航Task造不造成影响 |
其他未提及数值暂时按照默认值处理
属性 | 配置数据 | 特殊说明 |
Default Agent Name | 可以为None | 如果不填写默认支持的第一个代理配置为默认配置 |
Auto Create Navigation Data | 取消勾选 | 不启动自动勾选 |
Spawn Nav Data in Nav Bounds Level | 取消勾选 | 不在子关卡里生成导航配置 |
Allow Client Side Navigation | 取消勾选 | 不在客户端生成导航 |
Should Discard Sub Level Nav Data | 勾选该选项 | 丢弃子关卡中的导航数据 |
Supported Agents | 根据需要配置 | 多配制的情况下会有导航数据匹配问题,如果没有特殊的情况下建议使用单个代理配置 |
其他未提及的配置按照默认值即可
TileSizeUU | TileSize | CellSize | RecastMemory | PERM_TILE_DATA | DetourTileMemory | TileCacheMemory | TileNavLinksMemory |
1024 | 32 | 32 | 475.23 | 228.28 | 142.74 | 66.90 | 45.32 |
2048 | 64 | 32 | 239.01 | 165 | 105.55 | 52.13 | 44.34 |
4096 | 128 | 32 | 166.60 | 145.69 | 96.07 | 36.74 | 27.04 |
2048 | 32 | 64 | 162.28 | 93.75 | 66.80 | 18.53 | 18.51 |
4096 | 64 | 64 | 96.38 | 77.78 | 57.28 | 13.57 | 15.07 |
8192 | 128 | 64 | 79.69 | 73.71 | 55.16 | 12.08 | 14.15 |
4096 | 32 | 128 | 37.56 | 20.94 | 15.87 | 3.25 | 3.72 |
8192 | 64 | 128 | 23.86 | 18.78 | 14.54 | 2.57 | 3.16 |
如果不要求精细的情况下建议:Tile Size UU : 4096 CellSize : 64
要求精细导航的数据下最佳: Tile Size UU : 4096 CellSize : 32
体积摆放多少对导航数据的影响不大,只和体积中包含的碰撞模型数据多少有关
如果有必要把不影响导航的组件及Actor中Collision的CanEverAffectNavigation取消勾选,可以影响Nav Tree Memory占用
各部分相关占用 | 占用量 |
Recast Memory | 140.64M |
Detour PERM_TILE_DATA | 119.23M |
Detour Tile Memory | 68.11M |
Detour PERM_TILES | 13.M |
Tile Cache Memory | 40.36M |
Detour Tile Nav Links Memory | 17.88 |
Detour Tile Nav Verts Memory | 12.11 |