在游戏中 Gameware Navigation 的主要用途大部分依靠 NavData。NavData 是优化的数据结构,表示游戏地形中的可导航区域和拓扑连接。NavData 是一个重要资源,您必须为游戏中使用的每个地形或关卡生成 NavData。
一般认为,您将使用 NavData 生成系统的 API,将 NavData 的生成直接集成到设计人员创建游戏关卡所用的相同的游戏编辑器工具中。这会自动生成数据,并确保 NavData 将始终与地形自身的最新更改相匹配。但是,设置此集成需要一些时间和精力。因此,我们将使用 Navigation Lab 生成一些初始 NavData,随后在集成阶段 6:使用 NavData 生成 API 中回到数据生成 API 的集成。
将您的地形导出到 .obj 文件。有关该文件格式的详细信息,请参见此处。
此文件中的网格必须包含角色在寻径和路径跟随中需要考虑的场景中的所有静态、不可破坏的对象。其中包括地面或高度贴图、建筑物、树、灯柱、墙、长椅、栅栏等。其他可破坏的和/或动态障碍物(例如车辆或木箱)必须不包含在您的 .obj 文件中;这些类型的动态对象将在运行时添加到世界。
请注意,使用 .obj 文件是单机版 Navigation Lab 工具的要求,但不是数据生成系统本身的要求。将 NavData 生成系统集成到您自己的代码中时,您无需使用 .obj 文件(如果愿意您仍然可以使用)。
现在,选择要在运行时完全加载的小地形。默认情况下,Navigation Lab 将创建单个输出文件,其中包含整个地形的 NavData。当您完成该初始集成教程后,可以按照多种方法将地形划分为多个地块,以反映用于游戏中其他类型的数据的数据流逻辑,并减少在运行时需要加载的数据量。
将显示一个对话框,用于设置在游戏中使用的坐标系。表明在游戏的坐标系中哪个轴用作“上”、“右”和“前”坐标。此外,使用 OneMeter 控件来设置在游戏中多少度量单位相当于一米。这会控制测量地形的比例。
NavGenProj File 设置确定 Navigation Lab 创建以记录生成的项目文件的位置。您可以随时重新打开此 .NavGenProj 文件以找到之前离开时的位置。
将 Base output Directory 设置为绝对路径,您将在该路径下创建所有 NavData 输出文件。每次生成游戏的数据时,请保持此值相同。
将 Relative Directory 设置为基本输出目录下的路径,您将在该路径下创建此关卡的 NavData。该相对目录保存在输出 NavData 中,可以在进行可视调试时使用,以自动检索当前已加载到游戏中的关卡的数据。
根据您选择的地形,您可能会看到在某些位置生成了 NavMesh,而您不希望游戏中的角色前往这些位置:屋顶、树梢、墙顶等。目前这不是问题,但您最终会希望使用多种可能的策略之一来排除不需要的区域。请参见标识可导航区域。
注意:如果生成过程失败,或花费的时间过长,则为您的地形设置坐标系映射时可能在 OneMeter 控件中错误配置了地形的比例。使用更大的 OneMeter 值再次尝试。
您可以从 Navigation Lab 保存生成项目。用于执行生成的所有信息均写入扩展名为 .NavGenProj 的文件中,它包含生成设置和输入 .obj 文件的 XML 表示形式。
在 Navigation Lab 中生成数据时,Navigation Lab 会透明地将该文件传递到命令行 NavGenLauncher 工具。您也可以自己调用 NavGenLauncher 工具,并向其传递该文件,以便在 Navigation Lab 外部重新运行生成。另请参见 NavGenLauncher。