Zh/Floor button: Difference between revisions
(原文太辣鸡了翻译的好苦(~TAT~)) |
m ((Sourceeeeeeeeeeeeeee)) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar|Creating a button and door}} | {{LanguageBar|Creating a button and door|title=地面按钮}} | ||
{{Back|Zh/Portal Level Creation|传送门关卡设计}} | {{Back|Zh/Portal Level Creation|传送门关卡设计}} | ||
{{toc-right}} | {{toc-right}} | ||
Line 10: | Line 10: | ||
=== 底座笔刷 === | === 底座笔刷 === | ||
[[File:Floor button base.png|300px|thumb|right|一个底座]] | [[File:Floor button base.png|300px|thumb|right|一个底座]] | ||
创建一个 <128长*128宽*8高> 的{{L|brush|笔刷}}并将它绑定为<code>{{L|func_detail}}</code>实体。 为侧面使用<signage/hazard_orange_03b>纹理,为顶部使用<concrete/concrete_modular_floor001a>纹理,并将底部设为<code>[[ | 创建一个 <128长*128宽*8高> 的{{L|brush|笔刷}}并将它绑定为<code>{{L|func_detail}}</code>实体。 为侧面使用<signage/hazard_orange_03b>纹理,为顶部使用<concrete/concrete_modular_floor001a>纹理,并将底部设为<code>[[Tool_textures_(Source)#nodraw|tools/toolsnodraw]]</code>纹理。 | ||
{{clr}} | {{clr}} | ||
Line 27: | Line 27: | ||
=== [[func_door]]笔刷 === | === [[func_door]]笔刷 === | ||
[[File:Floor button door.png|300px|thumb|right|是不是有点像杨桃()]] | [[File:Floor button door.png|300px|thumb|right|是不是有点像杨桃()]] | ||
在笔刷上方整一个 <60长*60宽*8高> ,纹理为 <code>{{L| | 在笔刷上方整一个 <60长*60宽*8高> ,纹理为 <code>{{L|Tool_textures_(Source)#nodraw|tools/toolsnodraw}}</code> 的八边 [[Primitive#Cylinder | cylinder(圆柱体)]],即与按钮底座模型相同的位置。将这个笔刷绑定为 <code>{{L|func_door}}</code> 实体, 去 flags 确保取消选中所有框框,然后设置以下数值: | ||
{| class="standard-table sortable" | {| class="standard-table sortable" | ||
|- | |- |
Latest revision as of 13:25, 3 October 2025


本教程将逐步展示如何创建 地面按钮, 这是所有 Portal 实验室中最常见的谜题元素. 地板按钮通过在上面放置方块 或玩家站在其上时激活,并用于触发其他谜题元素,例如门、平台和电梯。
创建
底座笔刷
创建一个 <128长*128宽*8高> 的笔刷 并将它绑定为func_detail
实体。 为侧面使用<signage/hazard_orange_03b>纹理,为顶部使用<concrete/concrete_modular_floor001a>纹理,并将底部设为tools/toolsnodraw
纹理。
在四角铺上叠加层(Overlays)
放置四个纹理为 <signage/overlay_button_accent> 的 overlays 到笔刷顶部。将它们放到角落并旋转它们,使它们看起来像右图所示。
按钮模型底部
创建一个 prop_static
实体并将其 World Model 设置为 <models/props/button_base_reference.mdl>。随后将其放在底座笔刷的中间。旋转它,使按钮边缘带有方块和箭头的标志朝向玩家进入房间的方向。
func_door笔刷
在笔刷上方整一个 <60长*60宽*8高> ,纹理为 tools/toolsnodraw
的八边 cylinder(圆柱体),即与按钮底座模型相同的位置。将这个笔刷绑定为 func_door
实体, 去 flags 确保取消选中所有框框,然后设置以下数值:
项目名称 | 内容 |
---|---|
Name | floor_button_door |
Speed | 25 |
Delay Before Reset | -1 |
Move Direction | 90 0 0 |
按钮顶部模型
放一个 prop_dynamic
实体到按钮上。 将其 World Model 设为 <models/props/button_top_reference.mdl>,并将其 Pitch Yaw Roll (Y Z X) 设为与按钮底座模型相同的值,然后将其 Parent 设为 <floor_button_door>(就是上面那个杨桃)。最后,将其放置在与按钮底座相同的位置,但这个的原点应该比底座高 2 个单位。
用于按下的 Trigger
创建一个纹理为 tools/toolstrigger
的 <48长*48宽*2高> 的笔刷。将它绑定为 trigger_multiple
实体,并将其 Name 设为 <floor_button_trigger_player>。去它的 flags 选项卡并保证 Clients 是唯一选中的框框。
下一步要整一个 <8长*8宽*2高> 的八边形圆柱笔刷,也给它用tools/toolstrigger
纹理,扔到和<floor_button_trigger_player>(上面那个)笔刷一样的位置并将其绑定为 trigger_multiple
实体。将它的 Name 设为 <floor_button_trigger_box> 并去flags里确保只有 Physics Objects 勾着。然后,将它的 Filter Name设为 <filter_boxes>。
- 如果你整了一个 方块滴管 在你的实验室里,你应该已经有了这个实体。
- 但如果你没有这个实体,请创建一个新的
filter_activator_name
实体且 Name为 <filter_boxes> 并将其 filter 设置为你的方块的名称。
- 但如果你没有这个实体,请创建一个新的
现在将以下输出添加到 <floor_button_trigger_player>:
接下来,将以下输出添加到 <floor_button_trigger_box>:
交互声音
创建两个 ambient_generic
实体在按钮附近。

为第一个填入如下内容:
名称 | 内容 |
---|---|
Name | button_down |
Sound Name | Portal.button_down |
SourceEntityName | floor_button_door |
为第二个填入如下内容:
名称 | 内容 |
---|---|
Name | button_up |
Sound Name | Portal.button_up |
SourceEntityName | floor_button_door |
接下来,将以下输出添加到 <floor_button_door>(那个杨桃/哈哈):
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnClose | button_up | PlaySound | 0.00 | No | |
![]() |
OnOpen | button_down | PlaySound | 0.00 | No |
光——
创建一个 light
实体在底座模型里,比基础笔刷高 8 个单位。
为它设置以下数值:
名称 | 数值 |
---|---|
Brightness | 251 159 57 30 |
BrightnessHDR | 251 159 57 20 |
按钮现在应该能用了,它在地图中时刻准备着(吧?)
完成
将按钮放在它该在实验室里的位置。
添加激活时应有的输出,这条输出应为<floor_button_door>(对还是那个杨桃)的 OnOpen,这与释放按钮时的 OnClose 输出类似。
(意思是你两个都得有)