创建实验室门
本教程将逐步展示如何创建整个 传送门 实验室中可见的 实验室门 。实验室门通常用于将玩家关在终点门外,但也可以用作谜题元素本身。

创建
1.创建与剪切
创建一个 <32宽*128长*128高> 的笔刷。 然后使用 工具栏里的剪切工具在距顶部 24、48 和 84 个单位处分别横向剪切三次。

在这里需要的当然是全部保留,后续的剪切操作也是
之后,选择从顶部开始的第二个笔刷,并切一个在顶部从左往右数 48 个单位到→底部从左往右数 16 个单位的斜线剪切。在笔刷的另一侧做同样的事情,并删除中间残留的部分。
接下来,选择这个笔刷下方的笔刷,从顶部的从左往右数 16 个单位到→底部最外边咔一个斜线剪切。在另一侧做同样的事情并删除多余的部分。
现在,选择最底部的笔刷,从上方边缘到→底部从左往右数 20 个单位的斜线剪切。在画笔的另一侧做同样的事情,然后删掉最后的多余部分。
最后,选择所有门框笔刷并将它们一起绑定到 func_detail 实体。 之后,使用与门旁边墙壁相同的纹理对正面和背面进行纹理处理。使用<tools/toolsnodraw>纹理处理剩下的所有(即门内)部分。
对照图库 (使用大小为4的网格)
2.放置门框模型
放一个 prop_static 实体并将其 World Model 设为 <models/props/door_01_frame_wide_reference.mdl>。将门框模型对齐门框笔刷。
3.创建带动模型的func_door
创建一个使用 <tools/toolsnodraw> 纹理, <8宽*56长*104高> 的笔刷。将其对齐到门框的左侧,并将此笔刷绑定为func_door实体。确保所有flag均未勾选,并在其属性输入以下内容:
Property Name | Value |
---|---|
Name | door_left |
Speed | 250 |
Stop Sound | Doors.FullClose8 |
Delay Before Reset | -1 |
Lip | 12 |
Move Direction | 0 270 0 |
接下来创建一个相同的笔刷,它也使用 nodraw 纹理、也是<8宽*56长*104高>,但将其对齐到门的右侧。也将它绑定为 func_door 实体,也要确保所有flag均未勾选,最后在其属性中输入以下内容:
Property Name | Value |
---|---|
Name | door_right |
Speed | 250 |
Stop Sound | Doors.FullClose8 |
Delay Before Reset | -1 |
Lip | 12 |
Move Direction | 0 90 0 |
4.创建被带动的模型
创建一个 prop_dynamic 实体,并输入以下属性:
Property Name | Value |
---|---|
Parent | door_left |
World Model | models/props/door_01_lftdoor_reference.mdl |
Name | model_door_left |
对齐,直到它覆盖刚才的 door_left
。
下一步,和制作func_door时一样,弄另一个 prop_dynamic
实体并输入以下属性:
Property Name | Value |
---|---|
Parent | door_right |
World Model | models/props/door_01_rtdoor_reference.mdl |
Name | model_door_right |
它也应该覆盖 door_right
5.光点
在门前创建一个 info_lighting_relative ,离地56个单位高。 将它命名为 lighting_relative
。 现在将它的 Lighting Origin 同时设为model_door_right
和 model_door_left
。
实验室门应该准备就绪,至少能用了。
结果
第一步
将门放置在它该在的墙内,使框架笔刷与墙壁齐平。如果门旋转,则必须更改门的 Pitch Yaw Roll 值,以便门从正确的方向打开。
第二步
设置应打开门的项目,以便它向两者发送输入,并在门应打开时发送Open
输入给 door_left
和 door_right
,与之相对的是 Close
输入,即需要关上它时。