Zh/Floor button: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
m (?标题)
m ((Sourceeeeeeeeeeeeeee))
 
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>[[Tool_textures#nodraw|tools/toolsnodraw]]</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|Tool_textures#nodraw|tools/toolsnodraw}}</code> 的八边 [[Primitive#Cylinder | cylinder(圆柱体)]],即与按钮底座模型相同的位置。将这个笔刷绑定为 <code>{{L|func_door}}</code> 实体, 去 flags 确保取消选中所有框框,然后设置以下数值:
在笔刷上方整一个 <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

English (en)Русский (ru)中文 (zh)Translate (Translate)
传送门关卡设计
Note.png注意:神人网站不知道发什么颠,所有code词语都会自动跑到句子最后面去,故本页使用<单纯的边框>代替
Warning.png警告:原文巨量使用code语句,因此翻译可能出现大量来历不明的内容

本教程将逐步展示如何创建 地面按钮, 这是所有 Portal(en) 实验室中最常见的谜题元素. 地板按钮通过在上面放置方块(en)或玩家站在其上时激活,并用于触发其他谜题元素,例如门、平台和电梯。

创建

底座笔刷

一个底座

创建一个 <128长*128宽*8高> 的笔刷(en)并将它绑定为func_detail(en)实体。 为侧面使用<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(en) 的八边 cylinder(圆柱体),即与按钮底座模型相同的位置。将这个笔刷绑定为 func_door(en) 实体, 去 flags 确保取消选中所有框框,然后设置以下数值:

项目名称 内容
Name floor_button_door
Speed 25
Delay Before Reset -1
Move Direction 90 0 0

按钮顶部模型

这就叫严丝不合缝

放一个 prop_dynamic(en) 实体到按钮上。 将其 World Model 设为 <models/props/button_top_reference.mdl>,并将其 Pitch Yaw Roll (Y Z X) 设为与按钮底座模型相同的值,然后将其 Parent 设为 <floor_button_door>(就是上面那个杨桃)。最后,将其放置在与按钮底座相同的位置,但这个的原点应该比底座高 2 个单位。

用于按下的 Trigger

有点像鸡蛋

创建一个纹理为 tools/toolstrigger(en) 的 <48长*48宽*2高> 的笔刷。将它绑定为 trigger_multiple(en) 实体,并将其 Name 设为 <floor_button_trigger_player>。去它的 flags 选项卡并保证 Clients 是唯一选中的框框。


下一步要整一个 <8长*8宽*2高> 的八边形圆柱笔刷,也给它用tools/toolstrigger纹理,扔到和<floor_button_trigger_player>(上面那个)笔刷一样的位置并将其绑定为 trigger_multiple(en) 实体。将它的 Name 设为 <floor_button_trigger_box> 并去flags里确保只有 Physics Objects 勾着。然后,将它的 Filter Name设为 <filter_boxes>。

  • 如果你整了一个 方块滴管 在你的实验室里,你应该已经有了这个实体。
  • 但如果你没有这个实体,请创建一个新的 filter_activator_name 实体且 Name为 <filter_boxes> 并将其 filter 设置为你的方块的名称。


现在将以下输出添加到 <floor_button_trigger_player>:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnEndTouchAll floor_button_door Close   0.00 No
Io11.png OnEndTouchAll floor_button_trigger_box Enable   0.00 No
Io11.png OnStartTouch floor_button_door Open   0.00 No
Io11.png OnStartTouch floor_button_trigger_box Disable   0.00 No


接下来,将以下输出添加到 <floor_button_trigger_box>:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnEndTouchAll floor_button_door Close   0.00 No
Io11.png OnEndTouchAll floor_button_trigger_player Enable   0.00 No
Io11.png OnStartTouch floor_button_door Open   0.00 No
Io11.png OnStartTouch floor_button_trigger_player Disable   0.00 No


交互声音

还有喷射器()

创建两个 ambient_generic(en) 实体在按钮附近。

Note.png注意:如果你在地图里整了一个广播或别的什么让所有声音都从那儿发出的东西,并且你想让按钮音效也出现在那,请把这两也扔过去


为第一个填入如下内容:

名称 内容
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
Io11.png OnClose button_up PlaySound   0.00 No
Io11.png OnOpen button_down PlaySound   0.00 No


光——

HIKARI----

创建一个 light(en)实体在底座模型里,基础笔刷高 8 个单位

为它设置以下数值:

名称 数值
Brightness 251 159 57 30
BrightnessHDR 251 159 57 20

按钮现在应该能用了,它在地图中时刻准备着(吧?)

完成

你费尽心思的究极大作在游戏里的样子(所以在二代放按钮只需要一个实体)

将按钮放在它该在实验室里的位置。

添加激活时应有的输出,这条输出应为<floor_button_door>(对还是那个杨桃)的 OnOpen,这与释放按钮时的 OnClose 输出类似。

(意思是你两个都得有)