L4D关卡制作/电梯
译者:joyo_a(百度ID)
求生之路有一个创建电梯的独特系统,幸存者可以向上或者向下乘坐。导航网格需要从幸存者开始到需要到达的地方无缝连接。因此,电梯需要垂直连接导航网格区域。
用于电梯的笔刷实体被称为func_elevator。你也可以使用一个道具作为一个不可见的func_elevator,或者使用一个带有动画的道具来作为一个不可见的func_elevator。
一个纯粹用笔刷做的func_elevator的例子可以在tutorial_standards.vmf中找到。
创建笔刷电梯
根据你所想的func_elevator创建一个或多个笔刷。
选择它们,然后按Ctrl+T将它们绑定到一个实体中。从下拉菜单中选择“func_elevator”。
将名字更改为唯一的名字。
将Top floor position下面的Bottom floor position中的第三个数字更改为任意数字(这将有助于移动辅助节点)。
设置Speed值(英寸/单位每秒)。
在Front或Side视图中,你可以看到代表顶层和底层位置的辅助节点。
通过在节点的圆圈内左键单击来移动Bottom floor position辅助节点,并向下拖动到希望电梯下降到的位置。
添加地板
为了让你能够告诉电梯去某个楼层,你需要放置info_elevator_floor 实体。
转到Entity Tool并在Objects下拉菜单中选择“info_elevator_floor”。
在镜头视图中放置两个到电梯下。
在侧面或正面视图中,移动它们,使得一个是在func_elevator的顶层位置(Top floor position),而另一个是在func_elevator的底层位置(Bottom floor position)。
按Alt+↵ Enter打开底层的实体的属性。
更改Name为“bottom”。
打开顶层的实体并更改Name为“top”。
控制电梯
现在,你需要发送一个输入到func_elevator来告诉它移动。
在tutorial_standards地图中,有一个幸存者可以按下的func_button
。
要创建一个func_button
,先创建一个笔刷,然后使用Ctrl+T将其绑定到一个实体。在下拉菜单中选择“func_button
”。
这里有几个属性取决于你希望按钮如何工作,但现在除了更改Name为“button”之外,其他的只需全部保留默认值即可。
切换到Object Properties中的Flags标签,然后选择以下复选框:
- Don't move
- Use Activates
这意味着幸存者可以使用+use来按它,而当按下时按钮不会被移除。
现在切换到Outputs选项卡。
通过点击窗口底部附近的Add...按钮添加一个新的输出。
- 更改My output字段为“OnPressed”。
- 更改Target entities字段为“elevator_down_relay”。
- 更改Via this input字段为“Trigger”。
现在,我们需要创建一个elevator_down_relay
实体,该实体在按下按钮时会传递我们想要发送的消息。
在Entity Tool中,从Objects下拉列表框中选择“logic_relay”。
在func_button附近放置一个logic_relay。
使用Alt+↵ Enter打开其属性。
更改名字为“elevator_down_relay”以匹配我们从func_button发送的输出。
切换到Outputs选项卡并通过以下字段添加一个新的输出:
- My output named:OnTrigger
- Targets entities named:elevator
- Via this input:MoveToFloor
- With a parameter override of:bottom
- After a delay in seconds of:0
当幸存者按下按钮使relay被触发时将使电梯降落。
根据你的电梯的设置,你可能需要告诉电梯移动到另一个位置。可以看一下tutorial_standards.vmf中的func_elevator
上的func_button
示例。
添加导航
编辑一个func_elevator的导航需要你把电梯放在每一个可能有的位置上,放置一个nav_mark_walkable(M)并建立增加的导航(B)。
电梯导航以后将需要进一步的处理。当你准备好这样做时,请根据整理导航路线来考虑并进行故障排除。