重塑固体

From Valve Developer Community
Jump to: navigation, search
English Français 简体中文 한국어

本页面由大康翻译于2021年10月4日。部分内容由机器翻译。


一旦你创建了一个简单的、有纹理的固体,你就可以使用 Hammer 的工具来改进你的工作。这些工具包括顶点操作、面分割、剪切平面和雕刻。这些工具中的每一个都允许你通过修改你开始使用的基本形状来自定义固体。你会发现使用不同的工具可以达到相同或相似的效果;在进行你想要进行的精确更改时,有些比其他的更快、更容易。

顶点操作

顶点操作允许你移动固体的单个顶点和边缘,轻松创建不规则形状。这使你可以制作平面剪裁无法实现的形状,雕刻也则难以做到。顶点操作对于修改一组对象的特定部分也很有用,其中调整大小会干扰组中的其他对象。

Note.png 注意: 虽然顶点操作使创建新的复杂形状变得简单,但它也使创建无效形状的固体变得简单。请记住,凹形在 Hammer 中无效,并确保所有画笔面都是完全平坦的平面。如果它们弯曲(可能是通过移动一个顶点而不考虑其他顶点),那么你将得到一个畸形的固体错误。
Warning.png 警告: 此处未显示有关该工具的一些重要详细信息。请参阅 Hammer Vertex Tool 文章。

顶点和边

顶点是固体的一个角。移动一个顶点不会影响任何其他顶点,但会改变与其关联的任何边的位置。边是两个顶点之间的一个点,当移动它时,它会改变它的两个关联顶点的位置,以及它们关联的边(除了前两个顶点之外,没有其他顶点受到影响)。

Hammer vertexedit.jpg
图①

要编辑对象的顶点:

  1. 选择要对其使用顶点操作的对象。
  2. 从地图工具工具栏中选择顶点工具(Vertex tool)。选定的固体将变成带有部分阴影的线框图像。顶点将被标记为白点,边将被标记为黄点。
  3. 单击要移动的顶点/边。它们将以红色突出显示。请注意,你可以移动顶点和边。
  4. 你可以使用鼠标拖动选定的顶点或边,或使用箭头键在选定的 2D 视图中移动它们。
Note.png 注意: 你可以继续使用顶点工具,或按 Shift+V,在三种顶点编辑模式之间循环:顶点和边(默认)、仅编辑顶点和仅编辑边。

面分割

面分割允许你向笔刷添加其他面。当你想在关卡中做一个复杂的对象时,这是一个有用的工具。只需选择两个相对的边[图②的第三幅图(fig. 3)](平面上的两个相对顶点也可以)并按 Ctrl+F。这会将两条边变成顶点,并在它们之间放置一条新边(图 4)。

相对顶点之间的面分割对于用非平面修复以前无效的固体非常有用。可以通过这种方式将四边形分成两个三角形,但必须注意生成的笔刷不是凹形的——两个新面不能在中间“倾斜”。

Hammer facesplitting.jpg
图②

虽然自从起源引擎引入置换表层后不再那么重要,但涉及大量面分割的顶点操作曾经是为原始半条命引擎构建逼真地形的一种非常强大、有效的方式。

顶点缩放

顶点缩放允许你选择多个顶点并更改它们相互之间的比例。

要在对象上缩放一组顶点:

  1. 选择要缩放顶点的对象。
  2. 从地图工具工具栏中选择顶点工具。选定的固体将变成带有部分阴影的线框图像。顶点将被标记为白点,边将被标记为黄点。
  3. 单击要缩放的顶点/边。它们将以红色突出显示。
  4. Alt+E 以调出 Scale 对话框。
  5. 通过单击并拖动顶点选择中心的白色圆圈来更改缩放操作的中心。
  6. 更改 Scale 值以更改选定的点。你可以按向上或向下箭头以 0.1 为增量调整,或直接在文本区域中输入比例值。比例更改将自动反映在所选对象上。
  7. 完成缩放后按 EnterEsc 键关闭 Scale 对话框。
Hammer vertexscaling.jpg
图③

切割平面

剪切平面可让你在固体中进行精确切割,将其分成两部分。然后你可以选择保留生成的两个固体中的一个或两个。你可能会发现使用切割平面比雕刻或顶点操作更快、更有效。

Hammer clipplanes.jpg
图①
  1. 选择要剪裁的对象。(图①的第一幅图)
  2. 点击地图工具工具栏上的剪切工具(Clipping Tool)按钮。
    Note.png 注意: 你可以通过单击切割工具按钮或按 Shift+X(图①的第 2、3、4 幅图)来循环切换裁剪模式。你可以通过按住 Ctrl 并拖动其中一个点来移动切割线的两个点。
  3. 在所选对象上拖一条线。 (图①的第二幅图)这是切割线。要保留的对象部分将以粗白线突出显示。
  4. 如果你对生成的对象感到满意,请按 Enter 键执行切割。 (图①的第 5、6 幅图)

Hammer 具有显示剪切笔刷实心区域大小的功能。如果你尝试将画笔切割为精确大小,这将非常有用。

Hammer clipplanes2.jpg
图②

要打开和关闭此功能,请在 2D 视图中按“o”(小写)热键。

雕刻

左:手动调整。右:雕刻。
未优化的圆柱雕刻。
Warning.png 警告: 雕刻操作将雕刻所有接触选定雕刻对象的对象。你需要确保只有你希望受到影响的对象才能接触雕刻对象。以下信息纯粹用于教学目的,详细说明雕刻工具的功能,但雕刻笔刷会产生凌乱的几何图形,包括:无效的面、无效的笔刷体积和可能损坏的笔刷。雕刻工具是 Quake 1 引擎的遗留物,当时的设计师和艺术家没有实时预算来利用我们现在所说的位移和高多边形模型。雕刻工具旨在解决繁琐的几何问题,例如洞穴或错综复杂的互连笔刷。顶点编辑更加清楚,并得到改进;因此,本网站强烈建议不要使用雕刻工具!如果你发现自己在制作复杂的笔刷,你应该重新估计将几何体作为静态网格物体(prop_static)或置换表层是否更容易解决。

在 Hammer 中,任何固体都可用于从其他固体中雕刻出一个体积。例如,你可以在房间的墙壁内放置一个固体,然后告诉 Hammer 从墙上删去这个固体——有效地在墙上打一个洞!此功能不仅限于使用立方体形状作为雕刻工具:任何固体(圆柱、立方体和楔形)均可用于雕刻其他实体。

要从周围的实体雕刻对象:

  1. 在这一步中,你有要被雕刻的对象(绿色)和用于雕刻的对象(蓝色)。应选择蓝色对象。
  2. 移动雕刻对象,使其位于你希望孔所在的位置。
  3. 从工具(Tools)菜单中选择 Carve。你也可以按 Ctrl+ Shift+C 或地图操作工具栏上的雕刻按钮。
  4. 要么删除你用来雕刻的对象,要么用它来填补。(例如,使用从门口雕刻出来的那块作为门。)
用简单的块雕刻。

在上图中,你可以看到绿色对象现在被分成四个独立的对象。这是因为游戏引擎无法处理凹面物体,Hammer 将其分解成凸块。

重载后的十进制损失

具有严重小数丢失问题的笔刷。

某些笔刷可能看起来有效,但在保存并重新加载地图或运行切割平面工具后会发生变化。原因是因为地图文件将固体描述为一组平面,而 Hammer 将它们视为一组顶点。平面,顾名思义,是在所有方向上延伸到无穷远的平面。当 Hammer 读取地图文件时,它会找到三个平面相交的位置并在这些位置创建顶点。(这就是为什么凹形笔刷是不可能的。)问题是用于描述平面和顶点的数字的小数点数量有限。尽管创建画笔时顶点可能完全位于网格上,但生成的平面可能有许多小数位。如果达到小数限制,平面将略有不同。有此类问题的形状可能会在边缘形成可见的接缝,在那里可以透过画笔看到(尽管这些可能不会出现在游戏中,请参阅下面的注释。)

Note.png 注意: VBSP 将未对齐的顶点(仅约 0.03 个单位的边距)重新对齐。任何大于 0.03 个单位的距离都应使用顶点工具手动对齐。
Tip.png 小技巧: 此处对 Hammer 进行了修改,可修复此小数丢失问题(仅在视觉上),请参阅 HammerPatch。这不会影响编译器将使用的实际 VMF