导航网格

From Valve Developer Community
Jump to: navigation, search
English

导航网格,能够显示出地图上能够通行的地块,每次有变更之后,都会重新生成导航数据。导航网格控制着Dota2地图中的所有运动路径,决定着哪些地方可以去,哪些地方不能去。

导航网格在Dota2中是一种俯瞰的2D平面图形,这些显示也有一定局限性,比如悬挂物和桥梁下方也是不能通过的。这个网格的显示是由64x64的单元网格组成的,而整个网格覆盖在全地图上。 为了创建出导航网格,必须在自定义地图上有一个可以行走的材质地表。所有“混合”的材质都具有可行走的特性。自定义的材质则需要从"dota.nav.walkable 1"指定一个"User Material Attribute(用户材质属性)",以便导航网格可以覆盖上去。

注意:在Dota中类似岩石、标记等道具是没有碰撞体积的,大多数时候都可以优先考虑这些。但是如果放置了一个一定大小的岩石,这就需要阻隔岩石周围的空间,防止有单位从中穿过。

Hammer导航预览

Navmesh button preview.png
预览Hammer编辑器中的导航网格

允许在不进入游戏的情况下预览导航网格,只要使用顶端工具栏上的导航预览按钮就可以实现这个功能。点击之后就会在任何有效表面上动态绘制导航网格。在游戏则可以在控制台输入 "dota_gridnav_show 1" 进行查看

颜色定义

  • 绿:开放-任何单位可以在这里移动。
  • :禁止 -禁止通行, 在网格块之间的高度变化或者阻隔网格可以阻断这块区域,但是飞行单位依然可以穿过这些地方。
  • (仅在Hammer编辑器内生效):动态阻隔-在hammer中ent_dota_tree会显示出来。
  • :英雄阻断 - 英雄单位不能进入这块区域。
  • :生物阻断 - 生物AI单位不能进入这个区域,但是AI控制的英雄也会遵循英雄阻隔的原则,不会受到这些的影响。

创建一个导航网

地图编译时的导航网格会自动创建。

  • 点击工具栏顶端的 Run Map 按键,或者按下 F9
  • Build Physics 必须确认。
  • Build Grid Nav 必须确认。

阻隔 (Clip)

阻隔的范例

不同于其他Suorce引擎的游戏,阻隔可以影响到模型和地形表面的碰撞,在Dota2中,阻隔网格只会影响到它包含的导航网格。织构化一块阻隔网格,会影响到它所包含的导航网格。阻隔材质应用到网格上是不可以见也不可被渲染的。

一旦在一张地图上生成好导航网格,它就会组成一个很大的栅格区域。每一个方格都包含阻隔信息,当有单位想穿过这块区域时就会生效,玩家操作的英雄也是一种单位。

阻隔材质的类型

应用了阻隔材质的网格,会在编译的时候提供数据给导航网格,从而影响地图。要了解网格的构建和材质应用到网格面,请看 基本构建 教程。


下面是可应用到网格阻隔,材质的类型:

跳跃(Skip)
用来阻隔步行单位,飞行单位并不受约束,依然可以穿过这个空间。
阻隔(Clip)
最基本的变化模式,单位可以穿过它的顶部,就像坡道、楼梯地形或者其他可以创建的形状,这些形状上面也依然会生成导航网格。就像河面上架了一座桥(限制桥两边),就是很好的阻隔笔刷实例。
英雄阻隔(Hero Clip)
英雄不能穿过这个空间,不论行走还是飞行。
生物阻隔(Creature Clip)
和英雄阻隔类似,但是阻隔的是AI控制的单位。


提示:由于导航网格是一个64x64的单位区域,相比起来,在Hammer中生成一个32x32单位的方块就显得容易的多,把这个方块放在64x64的网格中间,反复使用方向键进行复制,这样比用笔刷圈出一片大区域来的方便得多。 这对建造标准阻隔区域来说很有效,但还是不推荐用于大规模划分的场景。

控制台命令

dota_gridnav_show
  • "0" - Off (关闭)
  • "1" - Basic Clip (基本阻隔)
  • "2" - Hero Clip (英雄阻隔)
  • "3" - Creature Clip (生物阻隔)