Portal 2

Portal 2

Not enough ratings
p0rtalmaster 的 Hammer 指南系列 04/19
By Madeline and 1 collaborators
您好,欢迎阅读我的迷你指南系列的第04/19部分,旨在帮助您了解 Portal 2 创作工具最大的组成部分:Hammer。

要获得该系列的超快速版本,请查看我的另一篇指南,《慌乱的 Hammer》
   
Award
Favorite
Favorited
Unfavorite
这是一个翻译副本 / This is a translated copy
原指南 / Original guide:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=652689830
本指南中出现的 “我” 均指原作者。/ All "I" in this guide mean the original author.

本指南存在许多翻译不当的地方,欢迎提出指正。/ There are many improper translations in this guide, please correct me.
简介
现在我们终于找到了好东西:设计方块,按钮,激光器(及相关设备)以及那些试验室的经典圆形门。好消息是,除了门外,您无需命名其他任何东西。
(不要)按按钮!
“即使在紧急情况下,基于方块和按钮的测试仍然是科学的重要工具。”
~ 播音员

emmm,按钮:对于任何不知道如何使用触发器的人来说,都是一种快速逃生的方法。有几个按钮实体可以使用:



  • prop_button ——每个人最喜欢的基座按钮,用于在僵持状态下解决所有问题,从生成方块到关闭 GLaDOS。
  • prop_floor_button ——1500兆瓦的重型超碰撞超级按钮。可以由方块(包括无边安全方块)和玩家按压。在过去,您将不得不使用多个道具,一个 func_door 和一个 trigger / 触发器 来伪造此东西。现在,“一切都得到了照顾。不必。不必这样做。”
  • prop_floor_ball_button ——仅接受无边安全方块,实际上就是方块(特指类型设置为“sphere / 球”的 prop_weighted_cube)。不接受玩家。
  • prop_floor_cube_button ——通常仅接受六面体方块不接受玩家,但可以进行编程以接受任何类型的方块。但是,默认情况下的正常行为是不启用此按钮类型,因此:

  • prop_under_buttonprop_under_floor_button —— Aperture 直到1990年左右才使用的旧按钮,直到 Aperture 决定切换到较新版本。无论如何,这些实体的功能分别完全类似于 prop_buttonprop_floor_button。为了保持简洁,现代的主题,我们现在不会使用这些实体。
关于基座按钮的特殊键值:
  • Delay Before Reset / 重置前延迟:如果您记得在 Puzzlemaker 中看到一个小计时器,则这是它控制的键值。现在,您可以将基座按钮复位的时间减少到大约0.2秒或您想要的时间(即超过30秒)。要制作无限时间基座按钮,您必须使用一些较大的数字进行近似,例如999999999。
  • Play timer sound? / 播放计时器声音吗?:当您听到“滴答滴答”小声音时,它不是来自计时器显示屏,而是来自按钮。仅应为具有有限时间值且与琐碎事物(例如方块掉落器)无关的按钮启用此功能。
  • Prevent fast reset? / 防止快速重置吗?:您还记得遇到带有定时基座按钮的 PeTI 地图,然后一次又一次地按下它直到感觉准备好了吗?将此设置为“Yes / 是”将防止这种情况。
  • Skin / 皮肤:Clean / 清洁 或 Rusted / 生锈。
基座按钮通过以下输出发送输出:
  • OnButtonReset(每当按钮弹起时,都会触发输出信号。)
  • OnPressed(当按钮按下时触发输出信号)
  • OnPressedBlue/OnPressedOrange(分别用于 ATLAS/P-Body 的特殊 coop 玩家过滤器)
地板按钮具有可更改的按钮类型。共有三种模型可供选择:
  • models\props\portal_button.mdl(clean/normal,默认模型)
  • models\props\portal_button_damaged01.mdl(完全损坏)
  • models\props\portal_button_damaged02.mdl(部分损坏)
地板按钮通过以下输出发送输出:
  • OnPressed
  • OnPressedBlue/OnPressedOrange(分别用于 ATLAS/P-Body 的特殊 coop 玩家过滤器;不适用于立方体/球形按钮)
  • OnUnPressed
依附于这些按钮的将是 prop_weighted_cube,它也具有特殊的键值:
  • Skin (OLD) / 皮肤(旧):可选项有: Standard / 标准(蓝色),Companion / 同伴,Standard Activated / 标准激活(橙色),Reflective / 反射性(又名“Aperture Science 热阻滞重定向立方体”,从技术上讲是正确的,因为方块不反射任何东西),Sphere / 球形(又名“Aperture Science 无边安全方块”), Antique / 古董(在 Aperture 决定需要更坚固的方块之前使用……并决定使它们看起来更漂亮)。
  • Cube Type / 方块类型:从“标准”,“同伴”,“反射”,“球体”和“古董”中选择。首选 old skin / 旧皮肤的方法。
  • Skin Type / 皮肤类型:Clean / 清洁 或 Rusted / 生锈。
  • Use new skins / 使用新皮肤:默认情况下,此设置为“No / 否”,但我建议将其设置为“Yes / 是”。
  • Paint Power / 上漆能力:这是使用 Hammer 的灵活性之一:您可以在立方体上预先涂任何类型的凝胶(尽管只有 Bounce 和 Speed 凝胶才可以使用)!
  • Allow Portal Funneling / 允许传送门漏斗:如果将其默认选项设置为“是”,则方块,就像玩家一样,将被神奇地引导到传送门的中心。这将使玩家可以方便地对方块执行特殊的猛击,而不必进行过多的反复试验。(译者注:如果你不知道传送门漏斗是什么或者有什么用,你可以形象地理解它,就是生活中常见的漏斗,它有什么用处?当然是引导水流,不让水流到外面去。相同的,如果地上有一个传送门,你想跳进去,但是你跳下去的时候不一定能刚好跳进传送门里面,有可能是落在旁边。那么如果当你跳下去的时候有一个巨大的无形的漏斗,你自然就可以准确无误地掉进传送门里面了,所以传送门漏斗就是起到一个引导的作用。不过它只在玩家面向传送门时生效,就是你要看着那个传送门,如果你侧对着,或背对着传送门,那么将不会有漏斗引导你。这也就是玩游戏时,你要无限下坠,却突然停下来的原因——你没有看向传送门)
注意:在 Hammer 中,立方体的外观和类型看起来不正确,但是可以保证它们在游戏中正确出现并运行。
按钮底座


按钮底座旨在使您的按钮看起来更漂亮。如果需要,您甚至可以将它们隐藏在地板上(而不再是笨拙的128个单位了):



instances 子文件夹中有几个地板按钮实例。我通常不使用实例,而只是从以下文件之一复制并粘贴底座(全都是一个 func_detail):
  • instances\p2editor\floor_button_black_intact.vmf
  • instances\p2editor\floor_button_white_intact.vmf
  • instances\p2editor\floor_ball_button_black.vmf
  • instances\p2editor\floor_ball_button_white.vmf
  • instances\p2editor\floor_cube_button_black.vmf
  • instances\p2editor\floor_cube_button_white.vmf
然后我用 nodraw 对底面进行纹理处理。顶部和侧面也可以重新纹理化。只需使用“Face Edit tool / 面部编辑工具”选择所有相关的面,选择一个新的纹理,然后单击“应用”即可。标牌 overlays 层也可以应用于底座。请注意以下几点:



1)overlays 层已应用,但未完全显示。是的,常规按钮底座甚至都是这样的。

2)来自我们的老朋友“Face Edit tool / 面部编辑工具”的一点修复...

3)...现在 overlays 层再次完整显示。

基座按钮底座更易于创建。只需创建一个32×96×8单位的 nodraw 块。顶部几乎可以使用任何地砖纹理进行纹理处理,而侧面可以使用框架纹理进行纹理处理(如果需要,可以旋转90°)。剩下的就是将您的按钮放在上面,在底部的旁边放一个或两个描述性标牌。
激光,激光接收器和激光中继器


关联的道具(更多点实体)是:
  • prop_laser_catcher
  • prop_laser_relay
激光接收器有两个特殊选项:
  • Skin Type / 皮肤类型:Clean / 干净 或 Rusted / 生锈。
  • laser catcher model / 激光接收器模型:用于在两种不同的模型类型之间切换:上图显示的小型接收器模型(models\props\laser_catcher.mdl),和一个大的,居中的模型,在 Valve 的单人地图中见过(models\props\laser_catcher_center.mdl)。
这两个都通过输出 OnPoweredOnUnpowered 发送输出。相较于地板按钮,它们可以比作 OnPressedOnUnPressed

Aperture Science 热障光束或激光是另一个点实体:env_portal_laser。特殊键值包括:
  • No placement helper / 无放置辅助器info_placement_helper 点实体可以帮助您完美地放置传送门,并嵌入到 Aperture Science 的一些设备(例如激光器)的操作中。默认值为“No / 否”,并且仅当在激光末尾有一个自定义 info_placement_helper 时才可以更改,例如,可能要创建一个间接传送门。
  • Laser model / 激光模型:用于在两种不同的模型类型之间切换:小发射器模型(models\props\laser_emitter.mdl)和居中模型(models\props\laser_emitter_center.mdl)。
  • Start off? / 初始关闭?:Yes 或 No。
  • Deal lethal damage / 造成致命伤害:因为这甚至没有死亡的潜在后果的 Science?“Lethal / 致命”仅需轻轻一碰即可杀死(并且对激光使用不同的声音),“Non-lethal / 非致命”只会触烧玩家(但如果他们坚持下去,它仍然会杀死他们)。
  • Should auto aim / 应该自动瞄准:由于我们许多人将激光瞄准接收器时并不精确,我们将此选项默认设置为“Yes”。
  • Skin Type / 皮肤类型:Clean 或 Rusted。
env_portal_laser 实体没有任何特殊输出,但是接受输入——有关更多信息,请参阅后面的指南。同时,您可以使用 env_portal_laser 来控制激光接收器和中继器。
Test Chamber 门(和门框)
“请继续进入下一个测试室。”
~ GLaDOS

对于所有这些输出设备,我确定您想知道如何对它们进行控制。答案:很多东西!现在,我们将从在每个测试腔室的入口和出口看到的那些圆形门中的一个开始。要使用的实体是 prop_testchamber_door



在进入该测试元素的 I/O 之前,我们需要首先检查门框。与地板按钮底座一样,我通常只从以下文件之一复制并粘贴底座(全都是一个 func_detail):
  • instances\p2editor\door_frame_black.vmf
  • instances\p2editor\door_frame_white.vmf
这些门框的尺寸为128×128,但门会超出此范围,因此请确保每侧至少有64个单元(除非您的门位于某个狭窄走廊的尽头)。玩家可以看到的侧面也可以(有时应该)重新纹理化(但不要弄乱门碰到的 nodraw 东西)。只需使用“Face Edit tool”选择所有相关的面,选择一个新的纹理,然后单击“应用”即可。

现在,只需将门放入框架中,并使用“Open”和“Close”输出进行连接。门也可以被锁定和解锁。为了建立连接,您需要为其命名(例如“door1”);我们将为输出设备使用一个按钮:





测试室的门也有特殊输出,但是现在我们不需要。这种 I/O 方案足以使每当按下按钮时(即,玩家站在按钮上或当放置立方体时)打开门,并在按钮上没有任何东西时(即,玩家走下按钮或移除方块时)关闭门。

因此,现在您知道创建一扇门是多么容易。在 Portal 的早期,由于门没有声音,您将不得不使用两个 func_door,两个 prop_dynamic 和一些 prop_static 和一个 virtual_generic

为了帮助将按钮与门,或任何输入元素(如硬光桥)与输出元素(如激光中继器)关联起来,请在附近使用一些标示牌 overlays。在下一个指南中,我们将学习如何创建指示灯,而完全不需要这种标牌。
调试门
有时,玩家或物体可能会卡在门内而不会被杀死。以下是一些解决方法:

配方:
  • 一个 invisible(tools/toolsinvisible)纹理化的 func_brush
  • 一个 trigger(tools/toolstrigger)纹理化的 trigger_portal_cleanser,并勾选“Physics Objects / 物理对象” flag / 标记。
其中每个应为128单位宽,104单位高和8单位厚。给每个实体起一个名字,然后将它们放在门中间。

现在,门将需要使用其输出来控制这些:



尽管这不能完全解决玩家卡在门内(希望很它少发生)的情况的问题。是否修复它取决于您是否希望门更完美。有关此类事情的更多信息,请查看 Galactic Cafe 的这篇文章[www.galactic-cafe.com],该文章是我们称为《The Stanley Parable / 史丹利寓言》的其他出色 Source 游戏中所有这些门的创建者。

严肃地说,让我们涵盖两种可能性。对于致命门,您将需要一个具有名称和以下设置的 trigger_hurt(尺寸与另一个触发器相同,但厚度为一半,并且仍居中于门):



同样,您还需要将门的输出发送到此触发器。为此,您只需将 I/O 复制并粘贴到 trigger_portal_cleanser,然后将名称(“My Output Named”)更改为 trigger_hurt 的名称。



完美的门设置起来有些复杂。它还可能在您的谜题中出现意外的解决方案,尤其是在合作中。替换掉 trigger_hurt,您将拥有一个16个单位厚而不是4个单位的 trigger_multiple(是的,仍然居中,并且所有内容都在中心)。 您还需要:
  • 两个 logic_branch,分别命名
  • 一个 logic_branch_listener,设置为侦听这些 logic_branch 中的每一个(可以在键值中设置)
这是使用按钮作为输入设备的所有内容的 I/O 设置:



通常,在使用 logic_branchlogic_branch_listener 时,logic_branch 将仅接收输入——不发送任何输出——而 logic_branch_listener 将仅发送输出。logic_branch_listener 不是通过通常的 I/O 系统接收输入,而是通过键值中预先选择的 logic_branch 更直接地接收输入。
避免错误和更多信息
  • 不使用按钮底座。好的工作体现在细节上,小兄děi!
  • 不给激光器,激光接收器或激光中继器的墙壁背后留孔。信不信由你,当我们看到的只是一个贴在墙上(或更糟的是地板)的框架时,它看起来很奇怪。
  • 不使用门框。这是一个非常重要的细节,即 func_detail
  • 忘记调试门了。是的,没有人喜欢卡在门上。请不要只使用 prop_testchamber_door 完成它。门关上时至少要使用 clipping 纹理!

来自 VDC Wiki 的更多信息:
谜题设计的简便之处在于,很多东西都可以在 Hammer 中进行原型制作,归因于各种专门的点实体:
主指南列表
请注意,部分工作仍在进行中。当我为您完成更多指南时,本节将更新!

您当前正在查看该系列的第04/19部分。

| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

上一指南(关于 Portal 2 中的声音)
下一指南(关于指示灯和复选标记/计时器)

请随时在下面留下一个合理的问题或评论。我或合格的实验室助理(您会知道,因为他们在 workshop 中制作了所有好的地图)都会做出回应。 如果您的问题或评论不合理,我建议您再次阅读我的指南,直到您100%理解它们。 这里不需要或将不需要进一步的信息,使用 Hammer,您将成为出色的实验室设计员!