L4D关卡制作/电梯

From Valve Developer Community
Jump to: navigation, search
Underlinked - Logo.png
This article needs more links to other articles to help integrate it into the encyclopedia. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024
English (en)русский (ru)中文 (zh)
... Icon-Important.png

译者:joyo_a(百度ID)

求生之路有一个创建电梯的独特系统,幸存者可以向上或者向下乘坐。导航网格需要从幸存者开始到需要到达的地方无缝连接。因此,电梯需要垂直连接导航网格区域。

用于电梯的笔刷实体被称为func_elevator。你也可以使用一个道具作为一个不可见的func_elevator,或者使用一个带有动画的道具来作为一个不可见的func_elevator。

一个纯粹用笔刷做的func_elevator的例子可以在tutorial_standards.vmf中找到。

创建笔刷电梯

tutorial_standards地图中的func_elevator示例。

根据你所想的func_elevator创建一个或多个笔刷。

选择它们,然后按Ctrl+T将它们绑定到一个实体中。从下拉菜单中选择“func_elevator”。

func_elevator属性。

将名字更改为唯一的名字。

Top floor position下面的Bottom floor position中的第三个数字更改为任意数字(这将有助于移动辅助节点)。

设置Speed值(英寸/单位每秒)。

FrontSide视图中,你可以看到代表顶层和底层位置的辅助节点。

func_elevator的辅助节点。
Note.pngNote:电梯已经放在它自己的用户可见组中。点击VisGroups面板中的Auto标签,取消勾选Auto。然后,切换回User选项卡并勾选Elevator复选框,看看电梯及其相关实体。

通过在节点的圆圈内左键单击来移动Bottom floor position辅助节点,并向下拖动到希望电梯下降到的位置。

添加地板

为了让你能够告诉电梯去某个楼层,你需要放置info_elevator_floor实体。

转到Entity Tool并在Objects下拉菜单中选择“info_elevator_floor”。

镜头视图中放置两个到电梯下。

侧面正面视图中,移动它们,使得一个是在func_elevator的顶层位置(Top floor position),而另一个是在func_elevator的底层位置(Bottom floor position)。

info_elevator_floor实体指定func_elevator的楼层位置的名字。

Alt+ Enter打开底层的实体的属性。

info_elevator_floor属性。

更改Name为“bottom”。

打开顶层的实体并更改Name为“top”。

控制电梯

tutorial_standards地图里的func_button示例。

现在,你需要发送一个输入到func_elevator来告诉它移动。

在tutorial_standards地图中,有一个幸存者可以按下的func_button

func_button属性。

要创建一个func_button,先创建一个笔刷,然后使用Ctrl+T将其绑定到一个实体。在下拉菜单中选择“func_button”。

func_button的Flags选项卡。

这里有几个属性取决于你希望按钮如何工作,但现在除了更改Name为“button”之外,其他的只需全部保留默认值即可。

切换到Object Properties中的Flags标签,然后选择以下复选框:

  • Don't move
  • Use Activates

这意味着幸存者可以使用+use来按它,而当按下时按钮不会被移除。

为电梯添加一个输出到the func_button。

现在切换到Outputs选项卡。

通过点击窗口底部附近的Add...按钮添加一个新的输出。

  • 更改My output字段为“OnPressed”。
  • 更改Target entities字段为“elevator_down_relay”。
  • 更改Via this input字段为“Trigger”。
创建一个logic_relay让电梯降落。

现在,我们需要创建一个elevator_down_relay实体,该实体在按下按钮时会传递我们想要发送的消息。

Entity Tool中,从Objects下拉列表框中选择“logic_relay”。

在func_button附近放置一个logic_relay。

使用Alt+ Enter打开其属性。

更改名字为“elevator_down_relay”以匹配我们从func_button发送的输出。

logic_relay的Outputs选项卡。

切换到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的导航。

编辑一个func_elevator的导航需要你把电梯放在每一个可能有的位置上,放置一个nav_mark_walkable(M)并建立增加的导航(B)。

电梯导航以后将需要进一步的处理。当你准备好这样做时,请根据整理导航路线来考虑并进行故障排除。