L4D关卡制作/可见性

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

译者:joyo_a(百度ID)

可见性基础

编译的地图的文件扩展名为.bsp。“BSP”代表二元空间划分。基本上,游戏引擎仅需要绘制从玩家站立的地方可见的地图的区域。这有助于地图的性能(帧速率有多快)。为此,引擎将地图切成称为“叶子”的块。如果玩家站在看到另一片叶子的叶子上,那么就画出那片叶子。规则(非实体)的笔刷决定叶片切割的位置。笔刷实体,例如我们在上一节中创建的func_ladder,不会影响切割的位置。

那么,为什么你不想要笔刷把地图切成更多的叶子?如果你有更多的笔刷来切割地图,那么引擎就必须做更多的工作以计算可见性,而且更多的地图剪切也意味着需要更多的面数来绘制。

你创建的任何不会有效阻止可见性的笔刷应该是一个称为func_detail的笔刷实体。这些func_detail笔刷在世界上仍然是固体的,但是被忽略于可见性计算。

  • 这是游戏引擎可见性系统的一个非常基本的解释。有关BSP和可见性绘图的更多详细信息,请参阅Visibility optimization

创建tutorial03.vmf

在Hammer里,打开你在上一个教程创建的地图文件tutorial02.vmf(如果你还没有打开)。默认情况下,它应位于教程mapsrc文件夹中:

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

现在我们将建立一个新版本来工作:

  • 转到文件File,然后选择Save As...
  • 更改名字为tutorial03.vmf

创建一个平台

保持我们的地图叫tutorial02,让我们创建一个平台来延伸我们创建梯子的上层。

使用Hammer select.png选择工具,通过 Shift拖动复制在上一个教程中我们延伸出来的后墙笔刷来创建上板。重塑它是一个从一侧的上板延伸出来的平台。

它应该是368个单位宽,176个单位长,16个单位深。

复制墙刷来制作一个平台。

顺便重新涂上平台的底部的纹理,使其符合天花板和地板。

纹理化平台的底部。

现在,转到Tools菜单并选择Tie to Entity。你还可以使用Ctrl+T快捷键。

从工具菜单中选择Tie to Entity。

对于笔刷实体,默认的func_detail

使用默认类创建笔刷实体

如果你在下拉菜单下看到其他内容,你需要更改Tools > Options > Game Configurations选项卡中的设置。

确保Default SolidEntity Class字段设置为“func_detail”。

将func_detail设置为默认固实体类。

就是这样。大功告成!你刚刚创建了一个不会将BSP切成更多的叶子的笔刷。

运行地图

F9打开Run Map对话框,然后点击OK按钮以编译地图并在游戏里运行。

注意:像之前一样,忽略“Map is unplayable!”错误提示框并直接按Continue来观察你的地图。

对于func_detail笔刷的好候选

那么你要怎么知道一个笔刷能否转变为func_detail

细节实体如:

  • 立柱和横梁
  • 装饰物
  • 框架
  • 小平台
  • 柱子
  • 家具
  • 桁架
注意:请记住,你的地图必须完全封闭以正确编译,并使引擎根据可见性来执行。因此,没有密封地图的笔刷应该是func_detail。这将出现leak到外面。



L4D关卡制作基础教程
L4D关卡制作/梯子
L4D关卡制作/导航网格