在 虚幻引擎 中制作 关卡 时,有时你可能需要将某些东西附加到 静态网格体 。你可以在 世界大纲视图 中向静态网格体生成一个对象。但你仍须将其置于网格体上所需的确切位置,这可能是一项繁琐的工作。插槽 是可以放置在静态网格体上的附加点。设置后,你就可以将对象连接到插槽。本教程将向你介绍如何为静态网格体创建插槽并在关卡中使用。
设置
如果你已有正在处理的项目,可以利用该项目遵循后续操作。否则,首先请启动虚幻引擎并创建一个启用了 初学者内容包(Starter Content) 的新项目。 本指南采用第一人称模板,但你可以随意选择想要使用的模板。有关在虚幻引擎中创建新项目的更多信息,请参阅创建新项目。
打开项目后,在 内容浏览器(Content Browser) 中找到 Starter Content 文件夹。接下来,找到 Props 文件夹和名为 SM_DoorFrame 的静态网格体。
如果你正在处理某个项目,但未启用初学者内容包,则可以从内容浏览器导入 资产 。从 添加(Add) 下拉菜单中选择 添加功能或内容包(Add Feature or Content Pack) 。请参阅内容浏览器界面,了解更多信息。
点击查看大图。
点击查看大图。
执行以下操作之一,在 静态网格体编辑器 中打开 SM_DoorFrame :
- 双击 资产。
- 右键点击 资产,在上下文菜单中选择 编辑(Edit) 。
之后,门框将出现在静态网格体编辑器中,如下所示。
点击查看大图。
创建你的第一个插槽
在静态网格体编辑器中打开了静态网格体的情况下,你可以创建一个插槽以便在门口的中间放置火焰粒子。
首先,请点击静态网格体编辑器顶部的 窗口(Window) 下拉菜单,然后选择 插槽管理器(Socket Manager) 。
点击查看大图。
插槽管理器窗口将出现在 细节(Details) 面板旁,如下所示。打开后,点击 创建插槽(Create Socket) ()。
点击查看大图。
点击该按钮后将创建插槽,你将收到重命名提示。在本例中,重命名为 Fire 。
点击查看大图。
查看视口中的静态网格体时,你可以看到插槽的平移控件。若未看到,请在视口或插槽管理器面板中点击插槽,使其可见。
点击查看大图。
看到插槽后,你可能会注意到位置不正确。默认情况下,当你创建新插槽时,它位于静态网格体的原点。在本例中,为门框的底部中心。
你可以使用视口中的平移控件手动将插槽移动到所需位置,或在 插槽管理器(Socket Manager) 面板内更改其相对位置、旋转和缩放。在本指南中,你希望插槽位于门口的中间,这样玩家在穿过这扇门时就必须穿过火焰。
将其相对位置(Relative Location)中的 Z 数值从0更改为115,如下图所示。
点击查看大图。
将对象附加到静态网格体
在静态网格体上放置了插槽的情况下,你可以着手将对象附加到关卡中的静态网格体上。
点击静态网格体编辑器内工具栏中的 保存(Save) ,然后返回关卡编辑器。
在 内容浏览器(Content Browser) 中找到 SM_DoorFrame ,然后将一个副本拖入关卡。接下来,转到 Starter Content 文件夹内的 Particles 文件夹,并找到名为 P_Fire 的资产。
点击查看大图。
将 P_Fire 的一个副本也拖入关卡。该粒子效果起到的作用是在 SM_DoorFrame 上附加火焰。
拖入 P_Fire 的一个实例后, 右键点击 视口内的粒子可打开上下文菜单。
点击查看大图。
在上下文菜单中,选择 附加到(Attach To) 。在搜索框内,键入 Door Frame 并选择 SM_DoorFrame 。
点击查看大图。
选择 SM_DoorFrame 后,选择你要附加对象的位置。该列表包含 无(None) 和你为静态网格体创建的每个插槽。从列表中选择 火焰(Fire) 。
点击查看大图。
在大纲视图(Outliner)中, P_Fire 现在是 SM_DoorFrame 的子项,但你可能会注意到粒子效果没有对齐到插槽的位置。要想实现此目的,你需要重置粒子效果的变换位置。
点击查看大图。
在选定了 P_Fire 的情况下,转到 细节(Details) 面板的 变换(Transform) 分段。点击 位置(Location) 栏最右侧的重置箭头(),将设置改回默认值。
作为 SM_DoorFrame 的子项,粒子效果的位置现在是相对于其父项的位置。因此,当它对齐到插槽时,变换数值会重置为0,0,0。
点击查看大图。
粒子效果现在已附加到静态网格体。

在粒子效果已通过其插槽附加到静态网格体的情况下,你仍然可以将粒子效果的移动、旋转和缩放操作与静态网格体分开。但对静态网格体所做的变换也会影响所附加的对象。
分离
若要从静态网格体分离对象,需遵循与附加对象类似的步骤。
右键点击 你要分离的对象,然后从上下文菜单中选择 分离(Detach) 。该对象不再是静态网格体的子项。
点击查看大图。
创建具有实心门的门口
现在你已用插槽创建了一个燃有火焰的门口,现在来创建一些更实用的东西。
在 初学者内容包(Starter Content) 内的 Props 文件夹中,找到 SM_DoorFrame 并将其另一副本拖入关卡。接下来,找到 SM_Door 并将其拖入关卡。
点击查看大图。
你可以使用已创建的插槽将门附加到门框,但这里存在一个问题。 静态网格体 SM_Door 的原点位于底角,因此若将门附加到 火焰(Fire) 插槽,门会漂浮在空中,并从门口的角落迸发。要解决此问题,你需要再创建一个插槽。
创建新插槽
在静态网格体编辑器中重新打开 SM_DoorFrame ,并在 插槽管理器(Socket Manager) 面板中新增一个插槽。给插槽门命名,这样稍后你就知道这是要附加门网格体的位置。
你可以使用3D控件手动移动插槽,也可以在 插槽管理器(Socket Manager) 面板中更改相对位置、旋转和缩放来移动插槽。在本例中,若将插槽的相对位置数值 Y 更改为42,会将插槽放置在门框网格体的底角。
点击查看大图。
若看不到插槽,请突出显示插槽按钮,使插槽可见。
点击查看大图。
将门附加到门框
现在你已经有了一个插槽用于将门附加到门框,请保存门框网格体并返回关卡编辑器。
在关卡中选择门网格体的实例,然后 右键点击 以调出其上下文菜单。
在上下文菜单内选择 附加(Attach) 并搜索 SM_DoorFrame 。
找到你要将门附加到的门框的实例并选择它。 询问要连接到哪个插槽时,选择 门(Door) 。
点击查看大图。
默认情况下, SM_Door 不会设置碰撞。如果你现在运行关卡,玩家可以穿过实心门,这并不是很有用。在静态网格体编辑器中为门设置 简单盒体碰撞(Simple Box Collison) 。如需了解如何操作,请参阅为静态网格体设置碰撞。
设置碰撞后,使用蓝图编写门打开和关闭行为的脚本。如需了解如何操作,请参阅开门指南。