UDN
Search public documentation:

NavMeshManualCreationCH
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3主页 > AI & 导航 > 手动创建导航网格物体

手动创建导航网格物体


概述


有时候,使用除自动生成网格物体以外的方法创建网格物体的一部分是有用的。本文档解释了这样做的一种方法,它导入一个预先存在的网格物体并把它转换为导航网格物体。这可以通过把一个或多个静态网格物体转换为专门导入的路标来完成。

然后,自动生成网格物体的过程将不会处理这些‘导入的’路标。一旦生成了自动网格物体,它将会尝试把导入的网格物体连接到其它的网格物体上。这个过程是或者在接近共面的导入网格物体上添加直边,或通过沿着导入网格物体和生成的网格物体的边界来分割产生的网格物体(稍后将会介绍关于这方面的更多信息)。

目前,创建手动网格物体的唯一方式是把一个或多个静态网格物体转换为专用的导入路标。这可以通过选择一个或多个静态网格物体,右击并选择convert staticmesh to navmesh(把静态网格物体转换为导航网格物体)来实现。 代码然后会从静态网格物体中直接获取顶点数据来把它转换为导航网格物体数据结构。

当选择多个静态网格物体时,它将会尝试相互地 对齐/排列 网格物体,以便它们可以尽可能地接近(也就是边界线),然后将会把结果放到‘导入的’路标上的一个单独的导航网格物体上。这种一次可以导入多个网格物体的功能允许您在不需要自动生成的导航网格物体的特定情况下,把这些手动的网格物体连接到一起。

把静态网格物体转换为导航网格物体


把静态网格物体转换为导航网格物体非常简单,以至于只要右击并选择转换静态网格物体为导航网格物体既可。

ConvertSMToNavMesh_0.png

请记住,静态网格物体中的几何体几乎是被完全地使用的,所以背面等也将会进行转换。这里是我们的示例网格物体,它由一个平面和两个三角形组成。

ConvertSMToNavMesh_6.png

当把它转换为导航网格物体后,您会看到现在网格物体呈现为美丽的绿色和红色的导航网格物体。

注意,那些多余的多边形将会融合到一起。

同时也要注意,这个导入的网格物体还有连接到其它的导航网格物体(自动地创建的导航网格物体)上。

ConvertSMToNavMesh_1.png

当您添加了您新导入的导航网格物体后,一旦构建路径,将会沿着导入的网格物体的边缘来分隔自动生成的网格物体。正如您在这里所看到的:

ConvertSMToNavMesh_2.png

同时也注意到沿着边界底部的紫色虚线预示着导入的多边形和这些基本的自动生成的多边形之间的连接。

把多个静态网格物体转换成一个独立的导入的路标

把几个静态网格物体转换为一个单独的路标是可以实现的。如果您正在从基本形状中草率地把手动创建的网格物体拼凑到一起,那么这个功能是有用的。这对于从一些非常简单的可以通过缩放或排列它们来组成一个大的形状的静态网格物体图形(比如长方形、户型等等)中构建出任意的结构也是特别的有用的 。

要想简单地排列彼此邻近的静态网格物体,只需要全部选中它们并点击转换为导航网格物体即可。这里对于邻近的静态网格物体允许有一些误差。也就是说,它将会尝试把邻近的网格物体拼接到一起,以便它们可以组成一个连续的形状。

这里是把简单的正方形拼接到一起的另一个实例:

ConvertSMToNavMesh_3.png

转换后的样子:

ConvertSMToNavMesh_4.png

最终路径构建后的效果:

ConvertSMToNavMesh_5.png

再次说明,紫色的虚线把网格物体连接到一起,而紫色的实线把导入的多边形连接到一起。这些是您在构建您导入的网格物体时需要密切关注的,从而可以保证在网格物体和网格物体多变形之间有正确的连接。

警告


添加和自动生成的网格物体共面的导入网格物体是可以的,但是当导入的网格物体偏离网格时将会导致它在和其它的网格物体连接时出现失真。

同时需要注意的是,AI默认地信赖导入的网格物体,所以如果您构建了一个没有意义的结构,AI将会信赖它,使AI看上去是非常愚蠢的,因为AI将尝试使用它进行导航。