在本教程中,我们将学习如何在 Blender 中创建电弧沿着两根电极向上攀升的动画效果。这种效果也被称为雅各布天梯,源自《圣经》中的一个典故。
本教程的视频版本目前尚未提供该语言版本。您可以在下方观看带字幕的英文版视频;视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在本教程中,我们将学习如何在 Blender 中创建电弧沿着两根电极向上攀升的动画效果。这种效果也被称为雅各布天梯,源自《圣经》中的一个典故。
我们将重点介绍如何创建并动画化表示电弧的 NURBS 曲线。我们将看到如何对其进行定位,使其循环动画,扰动其形状,并通过 Nodes Compositing 在后期处理中为最终渲染添加辉光效果。
本教程使用 Blender 3.3 版本制作,适合已经具备软件基础知识的用户。
让我们先来看一下初始场景。所有几何元素都属于同一个 mesh 类型的 Object,并且已经分配了材质和 PBR Textures。

场景由一个虚拟 camera 正面取景。这一取景方式正是我在本视频教程开头展示动画时所使用的视角。
切换到 Rendering 视图模式后,我们可以看到环境由虚拟 universe 的颜色均匀照亮。
为了获得更有趣的效果,我们在 World Properties 选项卡中将 World Background 颜色设置为黑色,然后切换回 Solid 视图模式。

电弧将通过一个 Path 类型的 NURBS 曲线创建,该曲线最初是直线。为了在两根电极底部添加 Path 曲线,我们先按如下方式将 3D Cursor 放置到那里:
选择 STARTING SET object 并切换到 Edit mode;
取消所有选择;
在 Edges selection mode 下,按住 SHIFT 和 ALT,并在要选择的 loop 的一条边上右键单击,从两根电极中各选择一个 edge loops;
按 SHIFT S,选择 Cursor to Selected,然后返回 Object mode。

现在我们可以添加一个 NURBS Path object,它的中心将正好位于 3D Cursor 所在的位置。刚创建的 object 会比两根电极之间的空间大很多,因此我们使用 S、X 和鼠标移动在 X 轴方向缩小它。

请注意,在完成该缩放之后,必须对 object 应用 Scale transformations,因为此时 Scale X 的值不再是 1,否则在使用 Wave modifier 时可能会产生错误结果。
要对 PATH 应用 Scale transformations,请按 CTRL A,然后在屏幕出现的 Apply 菜单中选择 Scale。

为了在动画的第一帧记录这个大小和位置,请按 I,然后在出现的 Insert Keyframe 菜单中选择 Location Rotation Scale。

有多种方法可以同时创建 object 的移动动画以及 PATH object 的拉伸动画。
由于本动画中移动只发生在垂直轴方向,而拉伸只发生在水平方向,因此只需在 Object mode 中调整 PATH object 的尺寸即可。
如果希望动画持续 2 秒,在每秒 24 帧的情况下,我们需要在 Timeline 中移动到第 48 帧。
将 PATH object 向上移动,并使用 S、X 和鼠标移动在 X 轴方向对其进行缩放。
达到最终尺寸后,按 I 并再次选择 Location Rotation Scale,将该状态记录在动画的第 48 帧。

电极并不是完全笔直的,因此通过这种方式创建的动画效果并不好,这一点可以在 Wireframe 视图模式下通过正交前视图观察到。
只需在曲线过长的某一帧对 object 在 X 轴方向进行缩放,并记录 keyframe,即可解决该问题。如果一个 keyframe 不足,可以在其他帧重复此操作。
为了让该动画在整个影片的所有帧中循环播放,我们打开 Graph Editor 窗口,并为相关的动画通道添加 Cycles modifier,即 Location Z 和 Scale X。

我曾在之前发布到 YouTube channel 的一个教程中介绍过 Cycles modifier,因此这里不再详细说明,只进行应用。
现在动画将在整个影片时长内循环播放。

接下来我们来看如何扰动 PATH 曲线。
打开 Modifiers 窗口,并为曲线添加一个 Wave modifier。
取消选中 Motion Y,使扰动仅沿 X 轴方向应用。

启动动画预览后,我们会看到效果并不理想。
需要调整 modifier 的 Height 和 Width 参数值,以获得更有趣的效果。

有时扰动只会出现在 PATH 曲线的一半区域。
例如,如果你在设置 keyframes 之前忘记应用 scale transformations,就可能出现这种情况。如果发生这种情况,请尝试修改 Wave modifier 的 Time Speed 参数值。
曲线现在已经产生了一些扰动,但仍然过于规则。
为了进一步增加波形的扰动,可以打开 Wave modifier 的 Texture 部分,并添加一个 texture,例如选择 Clouds 类型或 Distorted Noise 类型之一。

请尝试不同类型的 Textures,并调整其参数,直到获得满意的结果。

当获得满意结果后,需要让电弧变得明亮。
切换到 Rendered 视图模式。由于我们已经移除了 World Background 的照明,场景此时应该完全是黑色的。
但是,仅仅为 PATH object 分配一个 Emission 类型的 Material 并设置较高的 Strength 参数值还不够,因为 PATH 没有厚度。
为了解决这个问题,打开 Object Data Properties 窗口,在 Geometry 的 Bevel 部分中增加 Depth 参数值。

现在我们也可以修改 PATH object 的 Emission material 强度,并在 3D Viewport 中观察效果。

在 Render Properties 窗口中可以看到 preview 和最终渲染都设置为 1024 Samples,这实在太多了。我们将这些值改为例如 200,并在 preview 和 rendering 阶段同时启用 Denoise。
还没有结束,我们需要在后期处理中添加辉光效果。
思路是将电弧从画面中分离出来,为其添加两个辉光效果,然后将这些效果叠加到初始渲染上。
首先打开一个 Compositor 窗口,并勾选 Use Nodes 复选框。

为了在该界面预览后期处理效果,需要将 Render Layers 的 Image 连接到一个 Output Viewer node,并启用窗口的 Backdrop 复选框。不过,在 Backdrop 中预览 Compositing 之前,需要先渲染场景。现在进行渲染。

缩放这个预览的方式比较特殊:按 V 键可以缩小,而按 ALT V 组合键可以放大。

为了确保保存到磁盘的渲染输出与 Backdrop 预览中的后期处理输出一致,我们在 Render Layers 和 Composite 之间添加一个 Layout Reroute object,然后再将该 Reroute object 同时连接到 Viewer。

如果需要移动 Reroute,请用鼠标单击选中它,然后按 G 键在窗口中移动。
为了能够从渲染中分离电弧,需要从 Render Layers node 中获取 IndexOB 类型的信息,并为 PATH object 指定一个数值标识符。
先为 PATH object 设置数值标识符:打开 object 的 Object Relations 选项卡,在 Pass Index 字段中输入 1。

为了在 Render Layers node 中获取该信息,需要打开 View Layers 窗口,并在 Passes 部分勾选 Object Index。

现在 Render Layers node 中会出现一个名为 IndexOB 的 socket,这正是我们需要的信息。
正如你可能已经注意到的,根据不同上下文,这一信息有三个不同名称:在 object 中称为 Pass Index,在 View Layer 窗口中称为 Object Index,在 Render Layers 中称为 IndexOB。这确实很容易让人困惑。

为了在整个渲染中只分离 PATH object,需要将 IndexOB 连接到一个 Converter ID Mask node,并在该 node 的 Index 字段中设置与之前为 PATH object 指定的相同数值。
然后需要将 ID Mask 的输出连接到 Reroute。

由于我们是在第一次渲染之后才修改 PATH 的 Pass Index 并启用了 IndexOB,因此为了在 Compositing 中看到该信息,需要再次渲染场景。现在进行新的渲染。

需要说明的是,你看到的白色轮廓并不是电弧的渲染结果,而是它的黑白遮罩。如果要通过这种技术恢复被分离 object 的原始颜色,应使用 Mix Multiply node 将 Render Layers 的 Image 与 ID Mask 相乘。不过电弧本身就是白色,因此我们可以直接使用 ID Mask 的输出进行处理。
接下来看看如何为电弧添加两种不同的辉光效果。
具体来说,我们将使用 Simple Star 滤镜创建光线效果,并使用 Fog Glow 滤镜创建柔和的扩散辉光。这两个效果都由 Glare node 实现,因此我们在节点结构中添加两个 Filter Glare nodes,并将它们的模式分别改为 Simple Star 和 Fog Glow。

为了分别测试这些效果,可以将它们逐个放置在 ID Mask 和 Reroute 之间。最初不会看到任何效果,因为这些 nodes 的 Threshold 字段默认值为 1。因此两个 Glare nodes 都是从 ID Mask node 获取初始信息。
将这两个 nodes 的该值都设置为 0,并分别测试它们,同时调整其他参数,直到获得满意的结果。

为了将这些效果添加到原始图像中,需要两个 Color Mix nodes 并设置为 Add 模式。先添加一个并立即修改其模式,然后使用 SHIFT D 组合键复制得到第二个。

请注意添加效果的顺序:来自 Render Layers Image 的图像必须连接到第一个 Add node 的第一个 Image 输入端口。在该 Add node 的第二个输入端口中,可以根据需要连接 Fog Glow 或 Simple Star。

第一个 Add node 的输出必须连接到第二个 Add node 的第一个 Image 输入端口。
将场景中剩余的另一个 Glare node 连接到第二个 Add node 的第二个输入端口。
将第二个 Add node 的 Image 输出连接到 Reroute,以观察结果。

如果结果令人满意,就可以开始渲染动画了。


总结一下:我们使用 Wave modifier 对一个 Nurbs PATH object 进行了扰动,然后在后期处理中通过 Glare nodes 为其渲染添加了辉光效果。
希望本教程对你有所帮助!下次见!