Gameware Navigation 2015.0.x 新特性

此页列出了 2015.0.x 版本中引入的新功能。

2015.0.2

单个 SDK 库集

以前,两个库集(-md 和 –mt)包含在适用于 Win 32 和 Win 64 的 MSVC 8.0MSVC 9.0MSVC 10.0 Navigation 程序包中。从 Gameware Navigation 2015.0.2 开始,只有单个库集包含在 lib 目录中。必须将链接器链接至新库集:win<platform>_<toolset>.debugwin<platform>_<toolset>.releasewin<platform>_<toolset>.shipping,具体取决于您的项目构建模式。也可以将新库集链接至使用 –md 或 –mt 构建的外部库。

InsidePosFromOutsidePosQuery 类中的模式

现在,InsidePosFromOutsidePosQuery 类具有两种模式,用于在 NavMesh 内查找距 NavMesh (X,Y) 边界外指定位置 (m_inputPos3f) 的有效位置:

  • INSIDEPOSFROMOUTSIDE_FROM_NEAREST_HALFEDGE - 查找距指定位置最近的 NavMesh 边界并计算 NavMesh 边界内的有效位置。
  • INSIDEPOSFROMOUTSIDE_FROM_RAYCAST - 使用光线查找特定方向 (m_castDirection) 距指定位置最近的 NavMesh 边界。只有与光线相交的边界才用于计算 NavMesh 边界内的有效位置。

2015.0.0

将 BotOutput 添加到人物类

调用 World::Update() 后,即可访问 Bot::GetBotOutput() 以检索 outputVelocityoutputFrontDirectionavoidanceResultupperBoundType

要了解是否需要重新计算路径,可调用 BotOutput::IsPathRecomputationNeeded() 函数。如果 IsPathRecomputationNeeded() 返回的结果为 True,就必须重新计算路径。有关详细信息,请参见监视路径跟随

狭窄通道内的样条线计算

以前,浮动参数 (distToBorder) 用于计算距通道边界的距离。当 channelWidth 值过小(小于 distToBorder 的两倍)时,该距离很宽松,因此,样条线可以通过狭窄通道的中部。现在,distToBorder 参数将替换为新的 DistanceToInnerCorner() 函数。您可以使用 DistanceToInnerCorner() 自定义样条线距狭窄通道每侧内角的最短距离。有关详细信息,请参见用于计算和跟随轨迹的通道

新的 NavMesh 生成参数

在极少数情况下,如果希望 NavMesh 垂悬于悬崖,请将新的 GeneratorAdvancedParameters::m_forceNoErosionFromHoles 参数设置为 True。此设置会修改 GeneratorAdvancedParameters::m_distanceFromHoles 的行为,并且 NavMesh 将垂悬于悬崖。

GeneratorAdvancedParameters::m_distanceFromHoles 参数可用于更改地形中 NavMesh 边界和洞之间的默认距离,以避免角色意外掉落到洞中或跌落悬崖。如果 GeneratorAdvancedParameters::m_forceNoErosionFromHoles 设置为 False(默认值),NavMesh 边界和各个洞之间的距离至少为 m_distanceFromHoles。如果 m_distanceFromHoles 是负值(默认值),m_distanceFromHoles 将设置为 entityRadius/2

访问通道中的 CircleArcSpline

您可以访问样条线以了解人物的当前位置以及如何计算样条线。有关更多信息,请参见访问 CircleArcSpline

通道上的前置和后置通道部分

通道具有前置部分和后置部分。有关详细信息,请参见用于计算和跟随轨迹的通道

错误修复

此版本包含许多错误修复。有关详细信息,请参见 Autodesk Gameware 开发人员网站上的版本历史记录,网址为 http://gameware.autodesk.com