L4D关卡制作/NAV编译

From Valve Developer Community
Jump to: navigation, search
English Français Português-Brasileiro

现在我们要制作一个“Navigation导航网络”,或者说是“Nav导航网络”, 在我们制作的地图里,NAV代表“可行走区域”,这就使电脑幸存者和丧尸知道怎样行走,并告诉导演系统哪里可以产生特感。翻译者:生死之交

Create tutorial04.vmf and compile

In Hammer, open the map file tutorial03.vmf that you created in the previous tutorial (if it's not already open). This should be located in the tutorial mapsrc folder, by default:

C:\Program Files\Steam\steamapps\common\left 4 dead\sdk_content\mapsrc\

Now we'll make a new version to work with and compile it:

  • Go to File menu and choose Save As...
  • Change the name to tutorial04.vmf.
  • Press F9 to open the Run Map dialog and click on the OK button to compile it.

准备工作

进入游戏后:

  1. 进入游戏后,我们会看到一个“ 地图无法进行(MAP IS UNPLAY) ”对话框,因为我们还没有编译NAV。 按“继续”按钮来关闭该对话框。
  2. 打开你的控制台 `
  3. 在控制台输入“director_stop”并按下 Enter 键,这样导演系统将不会再产生丧尸。
  4. 再输入“nb_delete_all”</code> 并且再次按下 Enter,这将会删除所有电脑幸存者和丧尸,防止它们打扰你。
  5. 再输入“nav_edit 1” 并且再次按下 Enter,这将进入NAV编辑模式
  6. 最后关闭控制台`.

创建新的NAV网络

放置一个 nav_mark_walkable

将鼠标对着一个空旷的地区,打开控制台输入"nav_mark_walkable"并按下 Enter

关闭控制台,你将看到那里出现一个金字塔状的东西。那个东西叫做"nav_mark_walkable".

产生的导航网络。

接着输入“nav_generate_incremental”,并按 Enter键 。现在系统将会会自动分析地图,并产生导航区域,它应该遍及整幅地图。这需要一点时间。导航区域产生的范围是以上面那个金字塔形状的东西2000个单位内的范围,不过现在你的地图还没有这么大,不必担心。现在你的地图就是下面这个样子。这些导航网格目前都处于被选中的状态。

Note:如果你的地图大的话,你需要多使用几次nav_mark_walkable命令。每次只创建一个金字塔,分析成为导航网络后再创建新的以保持导航网格不会发生错误。
Tip:在输入nav_generate_incremental命令后,系统会分析并产生导航网络。如果你想保存的话,在控制台输入 "nav_save" 以保存你的NAV导航网络。

NAV选择

在执行nav_generate_incremental,像上图所示,所有导航网格都是不透明的,说明它们都被选中。如果你犯了一个错误,希望删除NAV并重新创建的话,在控制台输入“nav_delete"”这将删除所有被选中的导航网格,也就是你刚才所创建的。然后,再次输入 nav_mark_walkablenav_generate_incremental 创建新的导航网络。 要选择或取消选择一个导航网格,将鼠标对准那个导航网格,并在控制台输入“nav_toggle_in_selected_set”。如果你想取消选择所有的导航网格,请在控制输入 “nav_clear_selected_set”。

  • 如果你想取消选择所有被选中的导航网格在控制台输入 “nav_clear_selected_set”。
  • 要选择或取消选择一个导航网格,将鼠标对准那个导航网格,并在控制台输入“nav_toggle_in_selected_set”。

Nav命令绑定

你可以使用控制台来绑定一些命令,这样编辑NAV将会快并简单很多,请看config (.cfg) file has been included

在控制台输入下面的命令并按下 Enter

bind PGDN "exec nav_mode"


现在按下Page Down键,将在“Nav编辑”模式和“游戏”模式之间切换。

绑定常用命令

在控制台绑定命令格式是下面这样的:

bind <键> "要绑定的命令"

例如,你要绑定Z执行“nav_toggle_in_selected_set”,你应该在控制台中输入如下指令。(推荐使用)。

bind z "nav_toggle_in_selected_set"

你也可以在left4dead/cfg/nav_mode.cfg文件中编辑你的要绑定的命令。

  • 更多绑定命令,请看 Bind.
Note:从现在开始,本教程将默认使用 nav_mode.cfg,虽然现在里面只绑定了一个键。 如果你使用了不同的绑定按键,你必须记住。

拆分导航网格

您还会注意到,一个导航网格有可能会很大。 有时有必要对那些大面积的导航网格分割成较小的。 您可以通过使用“nav_split “来拆分导航网格。现在如果你移动鼠标,你会看到一条白线也会跟随你的鼠标移动。 这就是这块导航网格被拆分成两块时的界限。停住鼠标,在控制台输入“nav_split”并按下回车键。


一条白线在跟随鼠标移动

In the included nav_mode.cfg file, nav_split is bound to the Insert key.

现在,你会听到一身清脆的像刀砍下去的声音,这是说明你成功拆分了导航网格,原来那个较大的导航网格被拆分成两个较小的导航网格,它们之间有了界限。效果如上图。 如果你使用了nav_mode.cfg,那么按下C键时将执行拆分命令。命令如下。 bind "c" "nav_split"


执行nav_split.
再次拆分一个大的导航网格


添加属性

一些导航网格有特定用途 。 首先,在控制台输入“ z_debug 1 “,以编译属性来看待。现在,我们将创建幸存者出生的地方。将您的鼠标对准你想要幸存者出生的地方,也就是“安全区域”。在控制台输入“ nav_toggle_in_selected_set “来选定导航网格。如果你绑定按键可以直接按的绑定的按键,例如刚才绑定的Z键。这样方便 现在,打开你的控制台,选择幸存者出生的位置的所有导航网格,然后输入“ mark PLAYER_START “,并按 Enter键 。这将是起点安全室所在地。 如果你将鼠标对着一个导航网格的话,选中的PLAYER_START的网格是粉红色,没有被选中的PLAYER_START的网格是紫红色。

你可以使用拆分命令来拆分那些过大的导航网格。

使用nav_toggle_in_selected_set来选中一个导航网格。


标记PLAYER_START属性


{{tip|提示:如果你想删除一个导航网格的属性,然后输入“ clear_attribute <需要删除的属性> “,并按下回车键。例如: “clear_attribute PLAYER_START”。这样被选定的导航网格不再拥有PLAYER_START属性。

走到你想的终点所在地,选中所有应该处于终点里的导航网格,这个地方可能是安全室或终局等待救援的地方。打开控制台,然后键入“ mark FINALE”,并按 Enter键 。 这将使这里变成最终的区域(安全室的地方),它会变成蓝色。如果你将鼠标对着一个导航网格的话,选中的FINALE的网格是浅一点的蓝色,没有被选中的FINALE的网格是深一点的蓝色,。


在第二个房间选择导航网格。


标记FINALE属性

为了游戏更具可玩性,我们必须丧尸让一些区域无法产生,让玩家不会进地图之后被丧尸围攻。选择你想要的安全区域(可以和出生地或最终区域重复)打开控制台,然后输入“ mark EMPTY “,并按↵Enter键 。这些区域会变为黄色。这丧尸将无法在这样的区域复活。


在起点选择有PLAYER_START属性的NAV网格


标记EMPTY属性


Note:注意:它不会阻止丧尸之后在幸存者离开之后在这里出生。如果需要添加属性“NO_MOBS”,丧尸将永远无法从这里重生。

现在在控制台输入“nav_save”保存NAV。

删除不必要的导航区域

如果你犯了一个错,想删除一个导航网格的话,选中那个导航网格,在控制台输入“nav_delete”。这将删除被选中的导航网格。 如果需要的话。推荐用Delete键绑定这个命令。

分析NAV

已经编译好的NAV

现在,我们有一个基本的导航网络了,我们需要系统来分析。

打开控制台,然后输入“ nav_analyze “,并按↵Enter键 。游戏会分析你所创建的导航网络,这需要一点时间。同样,地图越大所需时间越多。输入命令确认

后,你的游戏会黑屏一段时间,这是正常的。 当你重新进入地图,因为导演系统没开启,现在的地图一定没有丧尸出现。如果没有出现(MAP IS UNPLAY) 对话框,你的地图NAV就基本编译好了。在控制台输入“ director_start “开启导演系统。现在,将有丧尸出生在你的地图上。丧尸只能够出现在你们看不见的地方。小丧尸脚下有圆,而特感头上会有一个箭头。输入“ nav_save “保存你编译的地图。一副能够玩的地图就编译好了!

赶快玩一下吧

如果仍然出现(MAP IS UNPLAY) 对话框,请确认以下四点。

1.有标记了“ mark FINALE “的最终区域。(安全室区域)

2.有标记了“ mark PLAYER_START “的幸存者出生地。

3.确保标记了“mark PLAYER_START“间接地连接到标记了“mark FINALE”的最终区域,也就是有连在一起的导航网格或导航线。

4.确保每一个导航网格都连接到

添加导航到一个梯子

完成的效果

要在梯子上创建导航区域,要确保有func_ladder(hammer制作地图时的红色的LADDER纹理固体,覆盖在梯子上),现在看不见func_ladder。这个将鼠标对准func_ladder并输入“nav_build_ladder”。这将在func_ladder上建立导航网络.注:如果鼠标对准了func_ladder,在屏幕中央的小十字会变成绿色。

连接两个导航网格

连接两个导航网格

虽然您正确创建了导航区域,但有些高的地方的导航网格需要连接下面的导航网格。如果不连接,丧尸只会在下面转悠而不会跳上来,电脑幸存者也不会直接跳下去。

要连接两个导航领域,选择其中的一个,然后将鼠标对准另外一个,然后输入“ nav_connect “。

这将在两个导航网格之间建立一条导航线。 丧尸可以爬上去(只要不超过180个单位),,电脑幸存者也能直接跳下去。确保在这种情况下,你要连接的两个导航网格相距够高。 如果太低,丧尸们会在试图爬起来撞头。注意,浅蓝色的导航线为双向连接,深蓝色的导航线为单向连接

Drawing your own Nav areas

Sometimes the nav_generate_incremental leaves out areas that you want to have nav on. In these cases, you will need to draw your own nav area.

Drawing nav areas is done with 2 keys. One key is bound to "nav_begin_area" and other bound to "nav_end_area". The nav.cfg file has nav_begin_area bound to the left mouse button and "nav_end_area" bound to the right mouse button.

Point to the area you want to create an area and click the left mouse button. As you move the mouse around, you can see where the nav area will draw until you press the right mouse button to end drawing and create the area.

Drawing a nav area.

Click the right mouse to activate nav_end_area and see the result.

Note:Creating your own nav areas will not automatically connect them to the rest of the nav mesh. Use nav_connect to connect them to adjacent areas.
Tip:If you accidentally press the left mouse button when you don't want to draw a nav area, just press the left mouse button again and it will cancel the nav creation.

Grid snapping when drawing nav

You might notice that the cursor doesn't snap to a grid when you're in this mode. You can set the snapping properties using "nav_snap_to_grid" in the console.

Tip:In the nav.cfg, the F9 key is bound to "incrementvar nav_snap_to_grid 0 2 1". This will change the grid size when you press the bound key and continue to toggle through the sizes each time you press the F9 key.

It is also possible to draw a ladder using nav_begin_area and nav_end area. Simply point at a corner of the ladder and move the cursor vertically to go to the opposite corner.



L4D Level Design Basics Tutorial
L4D Level Design/Visibility
L4D Level Design/Checkpoints