创建实验室门
本教程将逐步展示如何创建整个 传送门 实验室中可见的 实验室门 。实验室门通常用于将玩家关在终点门外,但也可以用作谜题元素本身。
创建
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 输入,即需要关上它时。