L4D关卡制作/可见性
译者: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
,让我们创建一个平台来延伸我们创建梯子的上层。
使用选择工具,通过⇧ Shift拖动复制在上一个教程中我们延伸出来的后墙笔刷来创建上板。重塑它是一个从一侧的上板延伸出来的平台。
它应该是368个单位宽,176个单位长,16个单位深。
顺便重新涂上平台的底部的纹理,使其符合天花板和地板。
现在,转到Tools菜单并选择Tie to Entity。你还可以使用Ctrl+T快捷键。
对于笔刷实体,默认的类为func_detail
。
如果你在类下拉菜单下看到其他内容,你需要更改Tools > Options > Game Configurations选项卡中的设置。
确保Default SolidEntity Class字段设置为“func_detail
”。
就是这样。大功告成!你刚刚创建了一个不会将BSP切成更多的叶子的笔刷。
运行地图
按F9打开Run Map对话框,然后点击OK按钮以编译地图并在游戏里运行。
对于func_detail笔刷的好候选
那么你要怎么知道一个笔刷能否转变为func_detail
?
细节实体如:
- 立柱和横梁
- 装饰物
- 框架
- 小平台
- 柱子
- 家具
- 桁架
func_detail
。这将出现leak 到外面。