Zh/L4D Level Design/Elevators: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
m (updated used templates)
m (Unicodifying, replaced: [[Image: → [[File: (12))
Line 12: Line 12:


== 创建笔刷电梯 ==
== 创建笔刷电梯 ==
[[Image:l4d_hammer_elevator_01.jpg|thumb|left|500px|caption|tutorial_standards地图中的func_elevator示例。]]{{clr}}
[[File:l4d_hammer_elevator_01.jpg|thumb|left|500px|caption|tutorial_standards地图中的func_elevator示例。]]{{clr}}


根据你所想的func_elevator创建一个或多个笔刷。
根据你所想的func_elevator创建一个或多个笔刷。
Line 18: Line 18:
选择它们,然后按{{key|Ctrl}}+{{key|T}}将它们绑定到一个实体中。从下拉菜单中选择“func_elevator”。
选择它们,然后按{{key|Ctrl}}+{{key|T}}将它们绑定到一个实体中。从下拉菜单中选择“func_elevator”。


[[Image:l4d_hammer_elevator_02.jpg|thumb|left|500px|caption|func_elevator属性。]]{{clr}}
[[File:l4d_hammer_elevator_02.jpg|thumb|left|500px|caption|func_elevator属性。]]{{clr}}


将名字更改为唯一的名字。
将名字更改为唯一的名字。
Line 28: Line 28:
在'''Front'''或'''Side'''视图中,你可以看到代表顶层和底层位置的辅助节点。
在'''Front'''或'''Side'''视图中,你可以看到代表顶层和底层位置的辅助节点。


[[Image:l4d_hammer_elevator_06.jpg|thumb|left|500px|caption|func_elevator的辅助节点。]]{{clr}}
[[File:l4d_hammer_elevator_06.jpg|thumb|left|500px|caption|func_elevator的辅助节点。]]{{clr}}


{{Note|电梯已经放在它自己的用户可见组中。点击'''VisGroups'''面板中的'''Auto'''标签,取消勾选'''Auto'''。然后,切换回'''User'''选项卡并勾选'''Elevator'''复选框,看看电梯及其相关实体。}}
{{Note|电梯已经放在它自己的用户可见组中。点击'''VisGroups'''面板中的'''Auto'''标签,取消勾选'''Auto'''。然后,切换回'''User'''选项卡并勾选'''Elevator'''复选框,看看电梯及其相关实体。}}
Line 43: Line 43:
在'''侧面'''或'''正面'''视图中,移动它们,使得一个是在func_elevator的'''顶层位置'''(Top floor position),而另一个是在func_elevator的'''底层位置'''(Bottom floor position)。
在'''侧面'''或'''正面'''视图中,移动它们,使得一个是在func_elevator的'''顶层位置'''(Top floor position),而另一个是在func_elevator的'''底层位置'''(Bottom floor position)。


[[Image:l4d_hammer_elevator_03.jpg|thumb|left|500px|caption|info_elevator_floor实体指定func_elevator的楼层位置的名字。]]{{clr}}
[[File:l4d_hammer_elevator_03.jpg|thumb|left|500px|caption|info_elevator_floor实体指定func_elevator的楼层位置的名字。]]{{clr}}


按{{key|Alt}}+{{key|Enter}}打开底层的实体的属性。
按{{key|Alt}}+{{key|Enter}}打开底层的实体的属性。


[[Image:l4d_hammer_elevator_04.jpg|thumb|left|500px|caption|info_elevator_floor属性。]]{{clr}}
[[File:l4d_hammer_elevator_04.jpg|thumb|left|500px|caption|info_elevator_floor属性。]]{{clr}}


更改'''Name'''为“bottom”。
更改'''Name'''为“bottom”。
Line 55: Line 55:
== 控制电梯 ==
== 控制电梯 ==


[[Image:l4d_hammer_elevator_07.jpg|thumb|right|500px|caption|tutorial_standards地图里的func_button示例。]]
[[File:l4d_hammer_elevator_07.jpg|thumb|right|500px|caption|tutorial_standards地图里的func_button示例。]]


现在,你需要发送一个输入到func_elevator来告诉它移动。
现在,你需要发送一个输入到func_elevator来告诉它移动。
Line 61: Line 61:
在tutorial_standards地图中,有一个幸存者可以按下的<code>func_button</code>。{{clr}}
在tutorial_standards地图中,有一个幸存者可以按下的<code>func_button</code>。{{clr}}


[[Image:l4d_hammer_elevator_08.jpg|thumb|right|500px|caption|func_button属性。]]
[[File:l4d_hammer_elevator_08.jpg|thumb|right|500px|caption|func_button属性。]]


要创建一个<code>func_button</code>,先创建一个笔刷,然后使用{{key|Ctrl}}+{{key|T}}将其绑定到一个实体。在下拉菜单中选择“<code>func_button</code>”。{{clr}}
要创建一个<code>func_button</code>,先创建一个笔刷,然后使用{{key|Ctrl}}+{{key|T}}将其绑定到一个实体。在下拉菜单中选择“<code>func_button</code>”。{{clr}}


[[Image:l4d_hammer_elevator_09.jpg|thumb|right|500px|caption|func_button的'''Flags'''选项卡。]]
[[File:l4d_hammer_elevator_09.jpg|thumb|right|500px|caption|func_button的'''Flags'''选项卡。]]


这里有几个属性取决于你希望按钮如何工作,但现在除了更改'''Name'''为“button”之外,其他的只需全部保留默认值即可。
这里有几个属性取决于你希望按钮如何工作,但现在除了更改'''Name'''为“button”之外,其他的只需全部保留默认值即可。
Line 76: Line 76:
这意味着幸存者可以使用+use来按它,而当按下时按钮不会被移除。{{clr}}
这意味着幸存者可以使用+use来按它,而当按下时按钮不会被移除。{{clr}}


[[Image:l4d_hammer_elevator_10.jpg|thumb|right|500px|caption|为电梯添加一个输出到the func_button。]]
[[File:l4d_hammer_elevator_10.jpg|thumb|right|500px|caption|为电梯添加一个输出到the func_button。]]


现在切换到'''Outputs'''选项卡。
现在切换到'''Outputs'''选项卡。
Line 86: Line 86:
* 更改'''Via this input'''字段为“Trigger”。{{clr}}
* 更改'''Via this input'''字段为“Trigger”。{{clr}}


[[Image:l4d_hammer_elevator_11.jpg|thumb|right|500px|caption|创建一个logic_relay让电梯降落。]]
[[File:l4d_hammer_elevator_11.jpg|thumb|right|500px|caption|创建一个logic_relay让电梯降落。]]


现在,我们需要创建一个<code>elevator_down_relay</code>实体,该实体在按下按钮时会传递我们想要发送的消息。
现在,我们需要创建一个<code>elevator_down_relay</code>实体,该实体在按下按钮时会传递我们想要发送的消息。
Line 98: Line 98:
更改名字为“elevator_down_relay”以匹配我们从func_button发送的输出。{{clr}}
更改名字为“elevator_down_relay”以匹配我们从func_button发送的输出。{{clr}}


[[Image:l4d_hammer_elevator_12.jpg|thumb|right|500px|caption|logic_relay的Outputs选项卡。]]
[[File:l4d_hammer_elevator_12.jpg|thumb|right|500px|caption|logic_relay的Outputs选项卡。]]


切换到'''Outputs'''选项卡并通过以下字段添加一个新的输出:
切换到'''Outputs'''选项卡并通过以下字段添加一个新的输出:
Line 114: Line 114:
== 添加导航 ==
== 添加导航 ==


[[Image:l4d_nav_elevator_01.jpg|thumb|right|400px|caption|编辑<code>func_elevator</code>的导航。]]
[[File:l4d_nav_elevator_01.jpg|thumb|right|400px|caption|编辑<code>func_elevator</code>的导航。]]


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

Revision as of 10:41, 8 January 2024

English (en)Русский (ru)中文 (zh)Translate (Translate)

译者: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.png注意:电梯已经放在它自己的用户可见组中。点击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)。

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