在这个简短的教程中,我们将看看如何在 Blender 中使用 Face Project 模式下的 Snap 工具,将一个对象放置到另一个对象的表面上。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在这个简短的教程中,我们将看看如何在 Blender 中使用 Face Project 模式下的 Snap 工具,将一个对象放置到另一个对象的表面上。我们不仅会介绍标准情况,还会看看几种更具体的解决方案。
让我们从最简单的情况以及适用于所有情况的通用设置开始。基本情况是假设我们要放置到另一个对象上的那个对象,其 Origin 位于作为其底面的那一侧面上。

在这种情况下,只需点击 3D View 标题栏中的磁铁图标启用 Snap 工具,然后选择 Face Project 和 Align Rotation to Target 选项即可。

完成这些设置之后,我们就可以移动第一个对象,把它放置到第二个对象上。

不过,如果我们要放置的对象的 Origin 并不位于它应作为底面的位置,那么 Snap 工具就不会得到预期的结果。在这种情况下,我们可以采用两种方法。

第一种方法是将对象的 Origin 移动到我们希望作为其底面的位置。为此,我切换到 Edit Mode,并首先选择我想用作对象 Origin 的顶点或面。
然后按下快捷键 SHIFT S,并选择 Cursor to Selected,将 3D Cursor 放置到该位置。

接着,我切换回 Object Mode,右键点击,并选择 Set Origin to 3D Cursor 工具。

现在我就可以把第一个对象放置到第二个对象上,并且这次能够得到期望的结果。
接下来我要展示的第二种方法稍微复杂一些,但如果由于某些原因你不想或无法将对象的 Origin 移动到目标位置,这种方法就会很有用。因此,我先把 Origin 重置到对象的中心位置。
为了实现这一点,我首先在场景中添加一个 Empty 对象。
按照我们之前看到的相同方式启用 Snap 后,我将 Empty 放置到对象上我希望作为其底面的位置。

完成之后,我将对象设为 Empty 的父级关系,操作如下:我先选择对象,然后按住 SHIFT 点击选择 Empty 进行多选,并确保 Empty 是当前激活对象。然后右键点击并使用 Parent Object 工具。

对象保持原来的 Origin 不变,但现在已经成为 Empty 的子对象,因此我可以移动 Empty,并将其放置到任何需要的位置。

如果对象最终出现上下颠倒的情况,不用担心。这是因为 Snap 会将 Empty 放置为其本地 Z 轴,也就是垂直方向,与所放置位置的面方向对齐。更准确地说,Empty 的本地 Z 轴与该面的 Normal 方向一致。

要修复这个问题,只需将 Empty 在所有轴上的旋转设置为零,然后绕 Y 轴旋转 180 度,按下 CTRL A,并选择 Apply Rotation。这样就可以使 Empty 的本地 Z 轴指向对象底面法线的相反方向。


现在我们可以通过移动 Empty 来将对象放置到目标表面上,同时保持对象的 Origin 仍位于原始位置。

如果在完成对象定位之后你想删除 Empty,请先选择对象,右键点击,并在 Parent 菜单中选择 Clear Parent and Keep Transformation。

这样一来,Empty 和对象之间的父子关系就会解除,你就可以删除 Empty,同时对象仍保持在最后放置的位置。
好了,本次教程就到这里!希望这个内容对你有所帮助!我们下次再见!