Zh/Box dropper: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
(汉化...个屁)
 
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{langsp|title=传送门教程-方块滴管}}
{{LanguageBar|Portal_Box_Dropper|title=传送门:投放器制作教程}}
{{Back | Portal Level Creation|返回传送门关卡制作}}
{{toc-right}}
 
本教程将逐步演示如何制作[[Portal|传送门]]测试密室中常见的'''投放器'''(官方名:'''维生装置通风口''')。该装置可在玩家原有配重存储方块被销毁时提供新方块。
 
== 基础构造 ==
=== 投放器模型 ===
[[File:Box dropper models.jpg|right|thumb|300px|模型组件]]
1. 创建{{ent|prop_dynamic}},设置模型为<code>models/props/box_dropper.mdl</code>
2. 创建第二个{{ent|prop_dynamic}},命名为<code>box_dropper_model_cover</code>,模型设为<code>models/props/box_dropper_cover.mdl</code>
3. 将两个实体对齐至目标位置


{{Back | Portal Level Creation:zh-cn}}
=== 顶部拱形结构 ===
{{toc-right}}
使用[[Hammer Arch Properties|拱形工具]]创建尺寸为<code>128L*128W*16H</code>的架构,参数设置:
{{Tutorial Skill Level | skill=2}}
{| class="wikitable"
! 属性 !! 值
|-
| 墙体厚度 || 24
|-
| 边数 || 8
|-
| 弧度 || 360°
|-
| 起始角度 || 0°
|}
 
* 将结构绑定至{{ent|func_detail}}
* 使用{{L|Hammer Vertex Tool|顶点编辑工具}}调整为矩形中空形态
* 纹理贴图:
  - 内缘:<code>metal/metalwall061f</code>
  - 底面:<code>concrete/concrete_modular_ceiling001a</code>


{{warning|此页面目前没有内容,请前往原址}}<br>
[https://developer.valvesoftware.com/w/index.php?title=Box_dropper&uselang=en 英文教程-滴管]
<br>
[[File:Box dropper models.jpg|right|thumb|300px|The models]]
<br>
<gallery>
<gallery>
Image:Box dropper arch.jpg|The arch
Image:Box dropper arch.jpg|原始拱形
Image:Box dropper arch2.jpg|The arch after vertex manipulation
Image:Box dropper arch2.jpg|顶点编辑后
Image:Box dropper arch3.jpg|The arch textured
Image:Box dropper arch3.jpg|贴图完成
</gallery>
</gallery>
<br>
[[File:Box_dropper_shaft.jpg|right|thumb|300px|The shaft seen from the outside]]
[[File:Box_dropper_shaft2.jpg|right|thumb|300px|The inside of the shaft with nodraw hidden]]
<br>
[[File:Box_dropper_stop_plugging.jpg|right|thumb|300px|<code>tube_stop_plugging</code>]]
<br>
[[File:Box_dropper_trigger.jpg|right|thumb|300px|<code>trigger_box_dropper_clear</code>]]
<br>
[[File:Box_dropper_funnel.jpg|right|thumb|300px|The sloped brushes]]


=== 垂直通道 ===
[[File:Box_dropper_shaft.jpg|right|thumb|300px|通道外观]]
[[File:Box_dropper_shaft2.jpg|right|thumb|300px|通道内部结构]]
1. 创建<code>128L*128W*256H</code>的垂直通道
2. 使用[[clipping tool|分割工具]]将各面均分
3. 纹理贴图:
  - 下部内壁:<code>metal/metalwall_bts_006a</code>
  - 上部内壁:<code>metal/metalwall_bts_006b_gradient</code>
  - 顶部:<code>lights/light_orange001</code>
== 功能系统 ==
=== 方块模板 ===
1. 在通道顶部创建<code>128L*128W*112H</code>的{{ent|func_detail}}空间(使用<nodraw>纹理)
2. 中央放置{{ent|prop_physics}}实体:
  - 模型:<code>models/props/metal_box.mdl</code>
  - 命名:<code>box</code>
  - 输出设置:
    {| class="wikitable"
    | OnOutOfWorld || !activator || Kill
    |-
    | OnOutOfWorld || logic_drop_box || Trigger
    |}
3. 创建{{ent|point_template}}:
  - 命名:<code>box_template</code>
  - 模板目标:<code>box</code>
4. 通道顶部附近创建{{ent|env_entity_maker}}:
  - 命名:<code>entity_box_maker</code>
  - 关联模板:<code>box_template</code>
5. 创建{{ent|filter_activator_name}}过滤器:
  - 命名:<code>filter_boxes</code>
  - 过滤名称:<code>box</code>
=== 舱门控制 ===
[[File:Box_dropper_stop_plugging.jpg|right|thumb|300px|防堵塞组件]]
1. 创建<code>96L*96W*4H</code>的{{ent|func_brush}}:
  - 命名:<code>stop_tube_plugging</code>
  - 初始状态:禁用
2. 创建<code>128L*128W*128H</code>的{{ent|trigger_multiple}}:
  - 命名:<code>trigger_box_dropper_clear</code>
  - 过滤器:<code>filter_boxes</code>
  - 标志设置:
    {{entity-flag-start}}
    {{entity-flag|Physics Objects|on}}
    {{entity-flag|Clients|off}}
    {{entity-flag-end}}
  - 输出链:
    {| class="wikitable"
    | OnEndTouch || 执行动作
    |-
    | → entity_box_maker || 生成新方块
    |-
    | → box_dropper_model_cover || 播放关闭动画
    |-
    | → stop_tube_plugging || 启用防堵塞
    |}
=== 逻辑控制 ===
创建{{ent|logic_relay}}:
- 命名:<code>logic_drop_box</code>
- 输出设置:
  {| class="wikitable"
  | OnTrigger || 执行动作
  |-
  | → box_dropper_model_cover || 播放开启动画
  |-
  | → stop_tube_plugging || 禁用防堵塞
  |-
  | → trigger_box_dropper_clear || 启用触发区域
  |}
== 进阶配置 ==
=== 自动补充机制 ===
当方块被{{L|Creating_a_portal/object_fizzler|分解立场}}或{{L|Creating poison water|毒液}}销毁时:
1. 对于湮灭场:在{{ent|trigger_portal_cleanser}}添加<code>OnDissolveBox → logic_drop_box:Trigger</code>输出
2. 对于毒液:在液体区域创建{{ent|trigger_multiple}}:
  - 过滤器:<code>filter_boxes</code>
  - 输出设置:
    {| class="wikitable"
    | OnStartTouch || 执行动作
    |-
    | → !activator || 销毁方块
    |-
    | → logic_drop_box || 触发补充
    |}


[[Category:Portal]]
{{ACategory|Portal|传送门系列}}
[[Category:Level Design]]
{{ACategory|Level Design|关卡设计}}
[[Category:Tutorials]]
{{ACategory|Tutorials|教程}}

Latest revision as of 04:56, 27 June 2025

English (en)中文 (zh)Translate (Translate)
返回传送门关卡制作

本教程将逐步演示如何制作传送门测试密室中常见的投放器(官方名:维生装置通风口)。该装置可在玩家原有配重存储方块被销毁时提供新方块。

基础构造

投放器模型

模型组件

1. 创建prop_dynamic,设置模型为models/props/box_dropper.mdl 2. 创建第二个prop_dynamic,命名为box_dropper_model_cover,模型设为models/props/box_dropper_cover.mdl 3. 将两个实体对齐至目标位置

顶部拱形结构

使用拱形工具创建尺寸为128L*128W*16H的架构,参数设置:

属性
墙体厚度 24
边数 8
弧度 360°
起始角度
 - 内缘:metal/metalwall061f
 - 底面:concrete/concrete_modular_ceiling001a

垂直通道

通道外观
通道内部结构

1. 创建128L*128W*256H的垂直通道 2. 使用分割工具将各面均分 3. 纹理贴图:

  - 下部内壁:metal/metalwall_bts_006a
  - 上部内壁:metal/metalwall_bts_006b_gradient
  - 顶部:lights/light_orange001

功能系统

方块模板

1. 在通道顶部创建128L*128W*112Hfunc_detail空间(使用<nodraw>纹理) 2. 中央放置prop_physics实体:

  - 模型:models/props/metal_box.mdl
  - 命名:box
  - 输出设置:
OnOutOfWorld !activator Kill
OnOutOfWorld logic_drop_box Trigger

3. 创建point_template

  - 命名:box_template
  - 模板目标:box

4. 通道顶部附近创建env_entity_maker

  - 命名:entity_box_maker
  - 关联模板:box_template

5. 创建filter_activator_name过滤器:

  - 命名:filter_boxes
  - 过滤名称:box

舱门控制

防堵塞组件

1. 创建96L*96W*4Hfunc_brush

  - 命名:stop_tube_plugging
  - 初始状态:禁用

2. 创建128L*128W*128Htrigger_multiple

  - 命名:trigger_box_dropper_clear
  - 过滤器:filter_boxes
  - 标志设置:
    
Flag
Checkbox-on.png Physics Objects {{{3}}}
Checkbox-off.png Clients {{{3}}}
  - 输出链:
OnEndTouch 执行动作
→ entity_box_maker 生成新方块
→ box_dropper_model_cover 播放关闭动画
→ stop_tube_plugging 启用防堵塞

逻辑控制

创建logic_relay: - 命名:logic_drop_box - 输出设置:

OnTrigger 执行动作
→ box_dropper_model_cover 播放开启动画
→ stop_tube_plugging 禁用防堵塞
→ trigger_box_dropper_clear 启用触发区域

进阶配置

自动补充机制

当方块被分解立场(en)毒液(en)销毁时: 1. 对于湮灭场:在trigger_portal_cleanser添加OnDissolveBox → logic_drop_box:Trigger输出 2. 对于毒液:在液体区域创建trigger_multiple

  - 过滤器:filter_boxes
  - 输出设置:
OnStartTouch 执行动作
→ !activator 销毁方块
→ logic_drop_box 触发补充