Blender 教程: 使用几何节点创建抽象循环动画

Blender 教程: 使用几何节点创建抽象循环动画

欢迎来到本篇 Blender 教程!我们将使用 Blender 中的几何节点 (Geometry Nodes) 创建一个简单但效果炫酷的抽象循环动画。这个教程非常适合初学者,即使你之前从未使用过几何节点,也能轻松跟上。

通过本教程,你将学会:

  • Blender 几何节点的基础使用方法。
  • 如何使用节点程序化地创建和控制对象实例。
  • 如何为几何节点中的参数设置动画。
  • 基本的材质和背景设置。
  • Cycles 渲染器的基本设置。

最终效果如下:一个由多个玻璃质感的方块堆叠而成,并且有节奏地扭曲旋转的循环动画。

0:00
/0:02

步骤一: 场景初始化与几何节点编辑器设置

  1. 打开 Blender 。启动后,如果看到启动画面 (Splash Screen),可以直接在画面外的任意位置点击鼠标左键关闭它,进入默认场景。
  2. 默认场景中会有一个立方体、一个光源和一个相机。我们首先需要清空场景。按下键盘上的 A键全选所有对象。
  3. 按下 X 键,在弹出的菜单中点击 Delete,删除所有对象。
  4. 现在场景是空的,我们需要添加一个新的立方体作为我们动画的基础。按下 Shift + A,在弹出的添加菜单中选择 Mesh -> Cube。一个新的默认立方体会被添加到场景中心。
  5. 在右侧新创建的面板中,点击其左上角的 Editor Type 图标 (通常显示为一个立方体或网格球的图标)。在下拉菜单中选择 Geometry Node Editor
  6. 在几何节点编辑器面板中,你可能会看到右侧有一个侧边栏。按下 N 键可以隐藏/显示这个侧边栏。我们暂时不需要它,可以按 N 将其隐藏。
  7. 确保在 3D 视口中选中了我们刚才创建的立方体。然后在几何节点编辑器顶部的工具栏中,点击 + New 按钮。这会为选中的立方体创建一个新的几何节点树,并自动添加一个 Group Input (组输入) 和一个 Group Output (组输出) 节点。

接下来,我们需要设置几何节点编辑器。将鼠标指针移动到 3D 视口 (3D Viewport) 的右上角,当指针变为十字形时,点击并向左拖动,将视口分割成两个。

步骤二: 构建立方体堆叠效果

我们的目标是创建一个由多个薄片立方体堆叠而成的结构。

  1. 在几何节点编辑器中,按下 Shift + A 打开添加节点菜单。
  2. 在搜索框中输入 Mesh Line,然后选择并添加 Mesh Line 节点。这个节点可以创建一条由多个顶点组成的线。
  3. 再次按下 Shift + A,搜索并添加 Instance on Points 节点。这个节点可以将一个几何体(实例)复制到另一个几何体的每个点上。
  4. 现在连接节点:此时,你应该能在 3D 视口中看到一堆重叠的立方体。
    • Group Input 节点的 Geometry 输出端口 (绿色圆点) 连接到 Instance on Points 节点的 Instance 输入端口。这告诉节点系统我们要复制的是原始立方体的几何形状。
    • Mesh Line 节点的 Mesh 输出端口连接到 Instance on Points 节点的 Points 输入端口。这指定了我们要在 Mesh Line 生成的各个顶点上放置实例。
    • Instance on Points 节点的 Instances 输出端口连接到 Group Output 节点的 Geometry 输入端口。这将最终的几何体输出到场景中。
  5. 调整 Mesh Line 节点参数:
    • Mode 从默认的 "Offset" 改为 "End Points"
    • Start Location 的 Z 值设置为 -1 m
    • End Location 的 Z 值设置为 1 m
    • Count (点数,即立方体数量) 设置为 6
  6. 调整原始立方体的厚度:现在你应该看到 6 个薄片立方体均匀地堆叠在一起。
    • 在左侧的 3D 视口中,确保你的原始立方体(在层级管理器中名为 "Cube")仍被选中。
    • 按下 Tab 键进入 Edit Mode (编辑模式)。
    • 按下 S 键(缩放),然后按下 Z 键(约束到Z轴)。拖动鼠标,将立方体在 Z 轴上压扁,使其变成一个薄片,厚度大约为 0.20.3 之间,确保堆叠的 6 个薄片之间有合适的间隙,互不穿插。你可以多次按 S -> Z 进行微调。
    • 调整满意后,按下 Tab 键退出编辑模式,回到 Object Mode (物体模式)。

步骤三: 实现立方体旋转效果

接下来,我们将让每个立方体根据其在堆叠中的位置(索引)进行旋转。

  1. 在几何节点编辑器中,按下 Shift + A 添加以下节点:
    • Index 节点 (Input -> Index):提供每个实例的索引号 (从0开始)。
    • Combine XYZ 节点 (Utilities -> Vector -> Combine XYZ):允许我们分别控制X、Y、Z三个轴向的旋转。
  2. 连接节点:此时,立方体会根据其索引值进行旋转,但旋转幅度可能过大。
    • Index 节点的 Index 输出连接到 Combine XYZ 节点的 Z 输入。我们只希望沿Z轴旋转。
    • Combine XYZ 节点的 Vector 输出连接到 Instance on Points 节点的 Rotation 输入。
  3. 控制旋转幅度:现在旋转幅度变小了,但单位是弧度,不直观。
    • 按下 Shift + A 添加一个 Math 节点 (Utilities -> Math)。
    • Math 节点的运算类型从 "Add" 改为 "Divide"
    • Index 节点的 Index 输出连接到 Divide 节点的顶部 Value 输入。
    • Divide 节点的底部 Value 输入框中填入 5。 (因为我们有6个实例,索引从0到5,所以最大索引是5。用当前索引除以最大索引,可以将旋转值归一化到0-1范围)。
    • Divide 节点的 Value 输出连接到之前 Combine XYZ 节点的 Z 输入 (替换掉原来的 Index 直连)。
  4. 将弧度转为角度并控制旋转范围:现在,最顶部的立方体将旋转90度,其他立方体则按比例旋转。你可以调整 Multiply 节点的值来改变最大旋转角度,例如改为 180
    • 再添加一个 Math 节点,将其运算类型改为 "To Radians" (在 Functions -> Conversions 类别下)。这个节点可以将角度值转换为Blender内部使用的弧度值。
    • 再添加一个 Math 节点,将其运算类型改为 "Multiply"
    • 重新连接节点:
      1. Index -> Divide (by 5)
      2. Divide (by 5) 的输出 -> Multiply 节点的顶部 Value 输入。
      3. Multiply 节点的底部 Value 输入框中暂时填入 90 (代表最大旋转90度)。
      4. Multiply 节点的 Value 输出 -> To Radians 节点的 Degrees 输入。
      5. To Radians 节点的 Radians 输出 -> Combine XYZ 节点的 Z 输入。

步骤四: 制作循环动画

我们将使用 Mix 节点来控制动画的起始和结束旋转状态,并设置关键帧。

  1. 删除刚才添加的 Multiply (乘法) 节点。
  2. 按下 Shift + A 添加一个 Mix Node (Utilities -> Math -> Mix Node)。确保其模式为 Float
  3. 连接节点:
    • Divide (by 5) 节点的 Value 输出连接到 Mix 节点的 Factor 输入。
    • Mix 节点的 Result 输出连接到 To Radians 节点的 Degrees 输入。
    • Mix 节点的 A 输入将控制堆叠底部方块的旋转角度,B 输入将控制顶部方块的旋转角度。
  4. 设置时间轴:
    • 在 Blender 主界面下方的时间轴 (Timeline) 编辑器中,将 End 帧设置为 60。这将使我们的动画总长度为60帧。
  5. 设置关键帧:
    • 第 1 帧:
      • 确保时间轴播放头在第 1 帧。
      • Mix 节点中,将 Value AValue B 都设置为 0
      • 鼠标悬停在 Value A 输入框上,按下 I 键插入关键帧。同样地,悬停在 Value B 上按 I 插入关键帧。这两个输入框会变为黄色,表示已设置关键帧。
    • 第 30 帧:
      • 将时间轴播放头移动到第 30 帧。
      • Mix 节点中,将 Value AValue B 都设置为 180
      • 再次分别为 Value AValue BI 键插入关键帧。
  6. 调整动画曲线以实现循环:
    • 将时间轴编辑器切换到 Graph Editor (图表编辑器)。可以通过点击时间轴编辑器左上角的 Editor Type 图标进行切换。
    • 在图表编辑器中,你可能会看到两条动画曲线。如果曲线显示不全,可以点击菜单 View -> Frame All
    • N 键隐藏右侧边栏(如果可见)。
    • 在图表编辑器空白处点击一下,取消所有曲线的选择。
    • 在左侧的通道列表 (Channels) 中,找到并双击 Default Value (Mix) B (对应 Mix 节点的 Value B),以仅选中这条曲线。
    • 按下 G 键 (抓取/移动),然后按下 X 键 (约束到X轴)。向右拖动鼠标,将这条曲线整体向右平移大约 30 帧,使其起点与第 1 帧的 Value A 对齐,终点超出60帧。一个简单的办法是,选中曲线后,G X 30 Enter,将其向右移动30帧。
  7. 按下 空格键 播放动画,检查效果。

步骤五: 添加模型细节 (Modifiers)

为了让模型看起来更精致,我们将添加一些修改器。

  1. 回到几何节点编辑器。
  2. Instance on Points 节点和 Group Output 节点之间添加以下节点:
    • Realize Instances 节点 (Instances -> Realize Instances):将实例转换为实际的网格数据,这样后续的修改器才能正确作用于合并后的整体模型。将其连接在 Instance on Points 之后。
    • Set Shade Smooth 节点 (Mesh -> Write -> Set Shade Smooth):使模型表面平滑。确保其 Shade Smooth 复选框被勾选。将其连接在 Realize Instances 之后,Group Output 之前。
  3. 添加传统修改器:
    • 选中场景中的立方体对象。
    • 转到右侧的 Modifier Properties 面板 (扳手图标)。
    • 点击 Add Modifier,选择 Bevel (倒角)。
      • Amount (大小) 设置为一个很小的值,例如 0.001 m
      • Segments (段数) 可以保持为 1 或增加到 2
    • 再次点击 Add Modifier,选择 Subdivision Surface (表面细分)。
      • Levels Viewport (视图层级) 和 Render (渲染层级) 都设置为 56 (根据你的电脑性能调整,越高越平滑但越慢)。

步骤六: 设置材质与背景

  1. 设置对象材质:
    • 回到几何节点编辑器。
    • Set Shade Smooth 节点和 Group Output 节点之间,添加一个 Set Material 节点 (Material -> Set Material)。
    • 转到 Material Properties 面板 (红色球形图标)。如果之前没有材质,点击 + New 创建一个新材质。将此材质命名为 "glass"
    • 回到 Set Material 节点,从下拉菜单中选择我们刚创建的 "glass" 材质。
    • Material Properties 面板中,选中 "glass" 材质。将 Surface (表面) 类型从 "Principled BSDF" 改为 "Glass BSDF"
    • Glass BSDFRoughness (粗糙度) 设置为一个较小的值,例如 0.01,以获得更清晰的玻璃效果。
  2. 设置世界背景:
    • 将几何节点编辑器面板切换到 Shader Editor (着色器编辑器)。
    • 在着色器编辑器顶部,将上下文从 "Object" 切换到 "World"
    • 默认会有一个 Background 节点连接到 World Output
    • 按下 Shift + A,添加以下节点:
      • Geometry 节点 (Input -> Geometry)。
      • Separate XYZ 节点 (Converter -> Separate XYZ)。
      • Math 节点 (Converter -> Math)。将其操作改为 "Multiply Add"
      • ColorRamp 节点 (Converter -> ColorRamp)。
    • 连接节点:
      1. Geometry 节点的 Position 输出 -> Separate XYZ 节点的 Vector 输入。
      2. Separate XYZ 节点的 Z 输出 -> Multiply Add 节点的顶部 Value 输入。 (Multiplier 和 Addend 保持默认的0.5即可)
      3. Multiply Add 节点的 Value 输出 -> ColorRamp 节点的 Fac 输入。
      4. ColorRamp 节点的 Color 输出 -> Background 节点的 Color 输入。
    • 调整 ColorRamp
      • 将插值方式从 "Linear" 改为 "Ease"
      • 点击最左边的颜色滑块 (Position 0.0),将其颜色设置为深蓝色或深紫色 (例如,R: 0.05, G: 0.0, B: 0.2)。
      • 点击最右边的颜色滑块 (Position 1.0),将其颜色设置为浅蓝色或白色 (例如,R: 0.6, G: 0.8, B: 1.0)。
      • 你可以在中间点击 + 号添加更多颜色滑块来创建更复杂的渐变。例如:
        • Pos 0.325: 深红 (R:0.3, G:0, B:0.05)
        • Pos 0.670: 橙黄 (R:0.8, G:0.5, B:0.1)
        • Pos 0.782: 亮白 (R:1, G:1, B:1)
      • 不断调整颜色和滑块位置,直到在渲染预览中看到满意的背景效果。

步骤七: 设置相机与渲染参数

  1. 相机设置:
    • 在 3D 视口中,按下 N 键打开侧边栏,选择 View 标签。
    • 勾选 "Camera to View"。这样你在视口中的导航就会直接控制相机的视角。
    • 调整视角,使堆叠的立方体完整且居中显示。
    • 调整好后,取消勾选 "Camera to View" 以锁定相机位置。
    • 选中相机对象 (在层级管理器中选择 "Camera")。
    • 转到 Object Data Properties 面板 (绿色相机图标)。
    • Focal Length (焦距) 设置为 250 mm,这会产生一种更平坦、畸变更小的透视效果。
  2. 渲染设置:
    • 转到 Render Properties 面板 (相机图标)。
    • Render Engine (渲染引擎) 从 "Eevee" 改为 "Cycles"
    • 如果你的电脑有支持的 GPU,可以将 Device (设备) 设置为 "GPU Compute"
    • 展开 Light Paths (光程) -> Max Bounces (最大反弹次数)。将 Total, Diffuse, Glossy, Transmission, Volume, Transparent 的值都提高,例如都设置为 128。这对于渲染高质量的玻璃材质很重要。
    • 展开 Denoise (降噪) 选项,勾选 RenderViewport 的复选框。Denoiser 可以选择 OptiX (如果NVIDIA GPU可用) 或 OpenImageDenoise
    • 勾选 Motion Blur (运动模糊) 复选框,使用默认设置即可。
  3. 输出设置:
    • 转到 Output Properties 面板 (打印机图标)。
    • Format (格式) 部分,勾选 "Render Region" 复选框。这将只渲染相机视图内的区域。
    • 设置动画的输出路径和文件格式(例如PNG序列或视频格式如FFmpeg Video)。
  4. 最终预览与调整:
    • 在 3D 视口中,切换到渲染预览模式 (视口右上角的球形图标)。
    • 在视口工具栏中,可以点击 Show Overlays 按钮 (两个重叠圆圈的图标) 来隐藏所有辅助线和Gizmo,以便更好地预览最终效果。
    • 根据预览效果,你可能还需要微调 ColorRamp 的颜色和位置,或者玻璃材质的 IOR (折射率,默认为1.450,对于普通玻璃是合适的)。

总结

现在,你可以点击 Render -> Render Animation 来渲染你的循环动画了!

通过这个教程,我们使用 Blender 的几何节点创建了一个动态的抽象方块堆叠动画。我们学习了如何实例化对象、如何通过索引控制实例的属性、如何设置关键帧动画,并对材质、背景和渲染进行了基本配置。希望你喜欢这个教程,并从中学习到有用的技巧!