Zh/L4D Level Design/Elevators: Difference between revisions
1416006136 (talk | contribs) m (updated used templates) |
Thunder4ik (talk | contribs) m (Unicodifying, replaced: [[Image: → [[File: (12)) |
||
Line 12: | Line 12: | ||
== 创建笔刷电梯 == | == 创建笔刷电梯 == | ||
[[ | [[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”。 | ||
[[ | [[File:l4d_hammer_elevator_02.jpg|thumb|left|500px|caption|func_elevator属性。]]{{clr}} | ||
将名字更改为唯一的名字。 | 将名字更改为唯一的名字。 | ||
Line 28: | Line 28: | ||
在'''Front'''或'''Side'''视图中,你可以看到代表顶层和底层位置的辅助节点。 | 在'''Front'''或'''Side'''视图中,你可以看到代表顶层和底层位置的辅助节点。 | ||
[[ | [[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)。 | ||
[[ | [[File:l4d_hammer_elevator_03.jpg|thumb|left|500px|caption|info_elevator_floor实体指定func_elevator的楼层位置的名字。]]{{clr}} | ||
按{{key|Alt}}+{{key|Enter}}打开底层的实体的属性。 | 按{{key|Alt}}+{{key|Enter}}打开底层的实体的属性。 | ||
[[ | [[File:l4d_hammer_elevator_04.jpg|thumb|left|500px|caption|info_elevator_floor属性。]]{{clr}} | ||
更改'''Name'''为“bottom”。 | 更改'''Name'''为“bottom”。 | ||
Line 55: | Line 55: | ||
== 控制电梯 == | == 控制电梯 == | ||
[[ | [[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}} | ||
[[ | [[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}} | ||
[[ | [[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}} | ||
[[ | [[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}} | ||
[[ | [[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}} | ||
[[ | [[File:l4d_hammer_elevator_12.jpg|thumb|right|500px|caption|logic_relay的Outputs选项卡。]] | ||
切换到'''Outputs'''选项卡并通过以下字段添加一个新的输出: | 切换到'''Outputs'''选项卡并通过以下字段添加一个新的输出: | ||
Line 114: | Line 114: | ||
== 添加导航 == | == 添加导航 == | ||
[[ | [[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
译者: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)。
电梯导航以后将需要进一步的处理。当你准备好这样做时,请根据整理导航路线来考虑并进行故障排除。