制作升降平台

From Valve Developer Community
< Zh
Revision as of 09:53, 4 October 2025 by Qp0001 (talk | contribs) (我真服了原文结尾被code弄得像shi一样)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
传送门关卡设计

本教程会展示如何制作Portal实验室中的升降平台。这些平台或面板通常以升高状态出现,并在激活某物(如能量球捕获器或直立开关)时降低。

激活后,当玩家踩到升降平台上时,它就会升起。

Note.png注意:升降平台通常由能量球捕获器或只能激活一次的东西(即不可切换状态的物体)激活。


创建

1.创建不可见的移动源

lift 笔刷的样子

创建一个使用<tools/toolsinvisible(en)>纹理, <16宽*16长*128高>的笔刷。 将这个笔刷绑定为<func_door(en)> 实体,并确保其所有flag均未勾选。接下来,在其属性输入以下内容:

Property Name Value
Name lift
Speed 20
Start Sound apc_engine_start
Stop Sound apc_engine_stop
Delay Before Reset -1
Move Direction 90 0 0

2.创建杆子

<brush_lift> 笔刷的样子

创建一个 <24宽*24长*136高> 的 12 面圆柱体并将其定位,使其与笔刷 <lift> 位于同一位置。将其绑定为 <func_brush>并将其Name设为<brush_lift> , 再将 Parent 设为 <lift>。

最后,对笔刷应用<metal/metal_lift001>纹理

3.创建平台模型

<model_lift_platform> 实体
实体 <model_lift_platform> 的详细位置

放一个 <prop_dynamic> 实体,并为它起名 <model_lift_platform>,而 Parent则设为 <lift>, 将World Model设为 <models/props/lift_platform.mdl>. 将其放置在<brush_lift>笔刷顶部,使其原点位于笔刷顶部向下 2 个单位。

4.创建玻璃层

玻璃笔刷
玻璃的详细位置

创建一个 120宽*120长*1高 的笔刷。它的顶部和底部使用 <glass/glasswindow_frosted_003> 纹理,并为剩下的所有面使用 <tools/toolsnodraw(en)>纹理。 将画笔定位到 <model_lift_platform> 模型实体的中间,其底部应位于<model_lift_platform>的原点向上 6 个单位。

Playerclip 笔刷
playerclip 的详细位置

接下来,创建一个使用tools/toolsplayerclip(en)纹理, <128宽*128长*4高> 的笔刷。使其包住<model_lift_platform 模型实体>,其底面应位于<model_lift_platform>的原点向上四个单位。

现在,选择玻璃笔刷和Playerclip笔刷,并将它们绑定为同一个 <func_brush> 实体。给它起名<lift_brush_2>, 并将其 Parent设为<lift>.

5.自动升降

Trigger 笔刷
触发器笔刷的详细位置

创建一个使用tools/toolstrigger纹理、 <112宽*128长*92高> 的笔刷。 将它绑定为 <trigger_multiple>实体,并起名 <lift_up_trigger>, 将它的Parent 设为 lift ,并将 Start Disabled flag设为 <Yes>>。最后,为trigger添加如下输出:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger lift Close   0.00 No
Io11.png OnEndTouch lift Open   0.00 No

升降平台已经完成,可以在地图中使用了。

完成

游戏中的升降平台

第一步

将电梯放置在地图中应位于的位置。 对于<lift_brush_2>(即玻璃和Playerclip), Playerclip的顶部应位于上层地板水平向下 2 个单位。如果电梯需要行驶超过 128 个单位,请将 <brush_lift> 和 <lift> 笔刷向下拉伸到较低的位置。<lift> 笔刷的长度决定了升降平台的移动距离。

第二步

向某个实体添加一些输出,。

OPEN输出将激活<lift>(上下移动的柱子),而Enable将激活<lift_up_trigger>(刚才的trigger).