Blender 教程:创建旋转文字圆环动画
zhezhongyun 2025-05-28 21:40 11 浏览
本教程将指导你使用 Blender 创建一个三维文字环绕成圆环并旋转的动画效果。我们将使用文字工具、曲线修改器(Curve Modifier)、重构网格修改器(Remesh Modifier)以及 Cycles 渲染引擎来实现最终带有玻璃质感和动态光效的视觉效果。
核心思路是先创建 3D 文字,然后利用一个圆形的曲线(Curve Circle)和曲线修改器让文字沿着曲线路径弯曲成环状。为了解决文字弯曲后可能出现的模型表面瑕疵(Artifacts),我们会使用重构网格修改器来优化几何体(Geometry)。接着,添加一个圆环体(Torus)作为外部的玻璃罩。最后,设置材质、灯光和动画,并使用 Cycles 引擎进行渲染,通过合成节点(Compositing Nodes)添加辉光(Glare)和色散(Dispersion)效果。
添加文字
- 启动 Blender。
- 按下 Shift + A,在弹出的菜单 (Menu) -> Text (文本) 中选择 Text,添加一个文字对象。
- 按下 Tab 键进入编辑模式 (Edit Mode)。
- 删除默认的 "Text",输入你想要的文字,比如 "BLENDER TEXT"。
- 再次按下 Tab 键退出编辑模式。
设置文字格式
- 选中文字对象。
- 在右侧的属性面板中,找到并点击绿色的 'a' 图标,进入对象数据属性 (Object Data Properties)。
- 展开 Paragraph (段落) 面板。
- 在 Alignment (对齐) 部分,将 Horizontal (水平) 设置为 Center (居中),Vertical (垂直) 设置为 Middle。
- 展开 Font (字体) 面板。
- 点击字体选择框旁边的小文件夹图标,打开字体浏览器。
- 为了让文字弯曲和重构后效果更好,需要选择一个笔画粗壮 (Bold) 的字体。带有 "Black" 或 "Heavy" 字样的字体通常很合适。避免使用纤细的字体。
- 在你的系统中选择一个粗字体,例如 "Arial Black"。点击 Open Font (打开字体)。
挤出和倒角
- 在文字的对象数据属性中,展开 Geometry (几何体) 面板。
- 调整 Extrude (挤出) 的值,给文字增加厚度,可以根据视觉效果调整,使其看起来比较方正。
- 展开 Bevel (倒角) 面板。
- 稍微增加 Depth (深度) 的值(比如 0.01m 左右),为文字边缘添加一点圆滑的倒角效果,让它看起来不那么尖锐。Resolution (分辨率) 保持默认即可。
创建曲线圆环
- 按下 Shift + A,选择 Curve (曲线) -> Circle (圆环),添加一个贝塞尔圆环。这个圆环将作为文字变形的路径。
应用曲线修改器
- 选中你的文字对象。
- 在右侧属性面板,点击扳手图标,进入修改器属性 (Modifier Properties)。
- 点击 Add Modifier (添加修改器),选择 Deform (形变) 下的 Curve (曲线)。
- 在 Curve 修改器的 Curve Object (曲线物体) 选项中,点击吸管图标或者下拉菜单,选择刚刚创建的 BezierCircle。
- 你会看到文字已经沿着圆环路径弯曲了。
调整文字方向
- 选中文字对象。
- 在右侧属性面板,点击橙色方块图标,进入对象属性 (Object Properties)。
- 展开 Transform (变换) 面板。
- 找到 Rotation (旋转),将 X 轴旋转设置为 90 度。
- 将 Z 轴旋转设置为 -180 度。这样文字的正面就朝向外侧了。
修正文字几何体(Remesh)
- 你可能会发现弯曲后的文字表面有很多瑕疵和不规则的面。直接使用 Shade Smooth (平滑着色,右键菜单中选择) 效果不佳。
- 选中文字对象。
- 回到修改器属性(扳手图标)。
- 添加 Generate (生成) 下的 Remesh (重构网格) 修改器。
- 重要: 将 Remesh 修改器拖拽到 Curve 修改器的上方。修改器的应用顺序很重要。
- 在 Remesh 修改器设置中:将模式从 Voxel 改为 Sharp。取消勾选 Remove Disconnected (移除连接断开的部分),否则字母的内部孔洞可能会消失。将 Octree Depth (八叉树深度) 的值提高,比如 8 到 10。这个值越高,模型细节越多,但计算量也越大。原理说明: Octree Depth 类似于细分级别,它决定了重构网格的精细度。请根据你的电脑性能调整,值太高可能导致 Blender 卡顿或崩溃。勾选 Smooth Shading (平滑着色)。
- 现在文字的表面应该变得平滑干净多了。
调整字符间距(可选)
- 如果发现字母之间因为弯曲而挤压或重叠过于严重,可以选中文字对象,回到对象数据属性 ('a' 图标)。
- 展开 Spacing (间距) 面板。
- 适当增加 Character Spacing (字符间距) 的值,直到字母分开一些。
- 调整间距后,你可能需要稍微缩放 (S) 一下文字对象,使其整体大小合适。
添加外部圆环(Torus)
- 为了获得更好的性能,可以暂时将文字对象的 Remesh 修改器的 Octree Depth 调低,比如 6。
- 按下 Shift + A,选择 Mesh (网格) -> Torus (圆环体)。
- 不要立刻进行其他操作! 在视图左下角会出现 Add Torus (添加圆环体) 的选项面板,点击展开它。
- 调整 Major Radius (主半径),使其大致匹配文字圆环的大小。
- 调整 Minor Radius (次半径),使其厚度刚好能包裹住文字的厚度。你可以临时切换到线框视图(按 Z 选择 Wireframe)来观察。
- 调整完毕后,可以点击视图空白处确认。
平滑圆环
- 选中刚刚创建的 Torus 对象。
- 按下 Tab 键进入编辑模式。
- 确保所有顶点都被选中(如果没有,按 A 全选)。
- 右键点击,选择 Subdivide (细分)。
- 在左下角的 Subdivide 面板中,将 Smoothness (平滑度) 设置为 1。
- 按 Tab 键退出编辑模式。
- 右键点击 Torus 对象,选择 Shade Smooth (平滑着色)。
恢复文字细节
- 选中文字对象。
- 回到修改器属性(扳手图标)。
- 将 Remesh 修改器的 Octree Depth 设置回你想要的高精度值,例如 10。
设置 Cycles 渲染参数
- 在右侧属性面板,点击相机图标,进入渲染属性 (Render Properties)。
- 确保 Render Engine (渲染引擎) 设置为 Cycles。
- 将 Device (设备) 设置为 GPU Compute (如果你的显卡支持)。
- 展开 Light Paths (光线路径) -> Max Bounces (最大反弹次数)。
- 将 Total, Diffuse, Glossy, Transmission, Volume, Transparent 的值都设置为 5 左右。 由于我们会用到玻璃材质,需要足够的光线反弹次数(尤其是 Transmission)来正确渲染透明和折射效果。将它们设为 5 是一个比较快的折中方案。
- 展开 Sampling (采样) -> Render (渲染)。将 Max Samples (最大采样数) 设置为一个较高的值,比如 500。这个值决定了最终渲染图像的噪点多少,值越高噪点越少,但渲染时间越长。
设置材质
- 选中外部的 Torus 对象。
- 在右侧属性面板,点击红色的球形图标,进入材质属性 (Material Properties)。
- 点击 New (新建) 创建一个新材质。
- 将 Base Color (基础色) 设置为纯白色(或接近纯白)。
- 将 Roughness (糙度) 设置为 0(或者一个非常小的值,比如 0.03,如果想要一点点模糊感)。
- 将 Transmission (透射) 设置为 1。这会让它变成玻璃材质。
- 调整 IOR (折射率) 的值。IOR 控制光线穿过材质时的弯曲程度。默认 1.45 是类似玻璃的值。你可以按住 Shift 拖动滑块微调,观察内部文字的变形效果,找到你喜欢的感觉(可以调到 1.18 左右,产生了有趣的放大效果)。
- 选中内部的文字对象。
- 点击 New 创建一个新材质。
- 将 Metallic (金属度) 设置为 1。
- 将 Base Color 设置为纯白色。
- (可选)降低一点 Roughness,让金属更有光泽。
设置灯光
- 点击视图右上角的渲染预览按钮 (Viewport Shading),进入 Cycles 实时预览。
- 在世界属性 (World Properties,红色地球图标) 中,将 Color (颜色) 设置为纯黑色,创建全黑背景。
- 按下 Shift + A,选择 Light (灯光) -> Spot (聚光灯)。
- 按下 G 移动灯光,可以移到斜上方。按 R 两次(自由旋转)或 R 加轴向(如 RX)来调整灯光指向圆环。
- 选中聚光灯,在灯光属性(灯泡图标)中:将 Power (功率) 大幅提高,例如 10000 W 或更高(根据场景亮度调整)。将 Color 设置为浅蓝色。可以调整 Radius (半径) 来控制阴影柔和度,调整 Spot Size (光束大小) 和 Blend (混合) 来控制光照范围。
- 选中第一个聚光灯,按 Shift + D 复制一个。
- 将复制的灯光移动到圆环的另一侧(比如相对的位置),同样用 R 两次调整方向,使其也照亮圆环。
- 选中第二个聚光灯,在灯光属性中:将 Power 设置为更高的值,例如 20000 W。将 Color 设置为醒目的红色或橘红色。
设置摄像机
- 按 ~ 键(波浪号键,通常在 Tab 上方)选择 View Camera (查看摄像机) 进入摄像机视图,或者按 Numpad 0。如果还没有摄像机,或者想调整视角:
- 先在 3D 视图中调整到你喜欢的观察角度。
- 按 Ctrl + Alt + Numpad 0 将当前视图设置为摄像机视角。
- 选中摄像机,按 G 然后按 Z 两次,或者按 G 然后按鼠标中键,可以前后移动摄像机,调整距离。
设置动画控制(Empties)
问题: 如果我们直接旋转文字或圆环,再想让它们整体倾斜旋转会很麻烦,轴向会混乱。 解决方案: 使用空物体 (Empty) 作为控制器来分离不同的旋转轴。
- 按下 Shift + A,选择 Empty -> Plain Axes (平面坐标轴)。
- 在 Outliner (大纲视图,右上角) 中,将这个 Empty 重命名为 ROTATE 1。
- 按顺序选中:文字对象、BezierCircle、Torus 对象,最后按住 Shift 键选中 ROTATE 1 这个空物体。
- 按下 Ctrl + P,在弹出的菜单中选择 Object (Keep Transform) (物体(保持变换))。这样,文字、曲线和圆环都成为了 ROTATE 1 的子级。
- 再次按下 Shift + A,添加第二个 Empty -> Plain Axes。
- 将这个新的 Empty 重命名为 ROTATE 2。
- 选中 ROTATE 1,然后按住 Shift 键选中 ROTATE 2。
- 按下 Ctrl + P,选择 Object (Keep Transform)。现在 ROTATE 1 成为了 ROTATE 2 的子级。
控制逻辑:
- ROTATE 1 将控制 Z 轴的持续旋转。
- ROTATE 2 可以用来设置整体的倾斜角度,并且这个倾斜会随着 ROTATE 1 的旋转而保持。
制作旋转动画
- 在底部的时间线 (Timeline) 窗口,确保当前帧是第 1 帧(如果不是,点击最左边的跳转按钮)。总帧数 End 设为 250。
- 选中 ROTATE 1 这个空物体。
- 在对象属性(橙色方块图标)-> Transform -> Rotation 中,将鼠标悬停在 Z 值上,按下 I 键,插入一个旋转关键帧。
- 点击时间线上的跳转到结尾按钮(最右边的按钮),跳转到第 250 帧。
- 将 ROTATE 1 的 Z 轴旋转值改为 360。
- 再次将鼠标悬停在 Z 值上,按下 I 键,插入第二个关键帧。
- 重要: 为了实现无缝循环,需要将动画曲线设置为线性。在时间线窗口中,确保两个关键帧都被选中(黄色),然后右键点击 -> Interpolation Mode (插值模式) -> Linear (线性)。或者,在主菜单 Edit (编辑) -> Preferences (偏好设置) -> Animation (动画) 中,将 F-Curves (函数曲线) 下的 Default Interpolation (默认插值) 设置为 Linear。
- 现在选中 ROTATE 2 这个空物体。
- 按下 R 两次,自由旋转 ROTATE 2,直到你获得想要的倾斜视角。不要为 ROTATE 2 设置关键帧,我们希望这个倾斜角度在整个动画中保持不变。
- 按下 Space (空格键) 预览动画,你应该能看到圆环在倾斜的同时,绕着自身的中心轴旋转。
后期处理(Compositing)
- 切换到顶部菜单栏的 Compositing (合成) 工作区。
- 勾选 Use Nodes (使用节点)。你会看到一个 Render Layers (渲染层) 节点和一个 Composite (合成) 节点。
- 按下 Shift + A,搜索 Viewer (查看器) 节点并添加。将 Render Layers 节点的 Image 输出连接到 Viewer 节点的 Image 输入。这样你就能在背景看到渲染结果了。
- 为了方便连接,可以按住 Shift 键并用鼠标右键在 Render Layers 的 Image 输出和 Composite 节点之间拖拽,创建一个 Reroute (重路由) 节点。
- 启用降噪数据: 回到渲染属性(相机图标),展开 Sampling -> Render,勾选 Denoise。然后去视图层属性 (View Layer Properties,两个叠加方块图标),展开 Passes -> Data,勾选 Denoising Data。
- 回到 Compositing 工作区。按下 Shift + A,搜索 Denoise (降噪) 节点并添加,放在 Render Layers 和 Composite/Viewer 之间。
- 将 Render Layers 的 Image、Denoising Normal 和 Denoising Albedo 输出分别连接到 Denoise 节点的对应输入。
- 将 Denoise 节点的 Image 输出连接到 Composite 和 Viewer 节点的 Image 输入。
- 按下 Shift + A,搜索 Glare (辉光) 节点并添加,放在 Denoise 和 Composite/Viewer 之间。
- 将 Glare 节点的模式从 Streaks 改为 Fog Glow (雾辉光)。调整 Threshold (阈值)、Size (大小) 等参数可以控制辉光效果。
- 按下 Shift + A,搜索 Lens Distortion (镜头畸变) 节点并添加,放在 Glare 和 Composite/Viewer 之间。
- 勾选 Fit (适配)。
- 稍微增加 Dispersion (色散) 的值,比如 0.05 到 0.1,可以在物体边缘产生轻微的色差效果(模拟镜头色散)。
最终渲染
- 检查所有设置:分辨率、帧率、采样数、输出路径、文件格式(建议 PNG 序列)。
- 确保你保存了项目 (Ctrl + S)。
- 点击顶部菜单栏的 Render (渲染) -> Render Animation (渲染动画)。
- 等待渲染完成。渲染时间取决于你的电脑性能和设置的采样数。
- 渲染完成后,你会在指定的输出文件夹中找到一系列 PNG 图片。你可以使用 Blender 的视频编辑器 (Video Editing workspace) 或其他视频编辑软件将这些图片序列合成为最终的视频文件。
恭喜你完成了这个旋转文字圆环动画!
相关推荐
- 饿了么面试官:实现一下 Element-UI 官网的主题切换动画!
-
最近看到ElementPlus官网上的切换主题方式非常有趣,这是一个过渡的动画效果所以在网上查了一番,找到基本的实现方法实现基本效果首先我们起一个html文件,写一个按钮,以及简单的背景颜色切...
- 强大而好用的选择器:focus-within
-
伪类和伪元素在开发网页样式中,选择器必不可少,而且选择器也是在开发css中非常重要的内容,包括常用的类选择器,id选择,同时还有伪类,伪类选择器最大的特点就是冒号开头。平时也经常会有小伙伴问到,在使用...
- 令程序员惊叹的一些CSS3效果库
-
还在寻找那些CSS3的效果库吗?如果你的答案是肯定的,并且目前没有找到,那么你一定不能错过小编为大家收集的这些CSS3效果库,这是一个令你兴奋的集合!最新的CSS3都配备了新的特性,来设计创建动画和互...
- 伪元素黑魔法:一个替代onerror解决图片加载失败的方案
-
问题的引出是这样的,在一个项目中有大量的页面主体是table做数据展示,所以就封装了一个table的组件,提供动态渲染的方案。有个问题是数据类型中有图片,对于图片的加载失败我们需要做容错。一般我们的思...
- 前端 - 如何通过CSS修改图片透明度
-
如果在图片上显示文字,经常会遇到这个情况,就是当文字和背景颜色差不多时,文字会看不清楚,我们一般通过给文字加textshadow或者修改图片的透明度来让文字显示更加突出。我们今天说一下透明度的问题,...
- CSS元素居中方法完全指南
-
这里是工作狂的聚集地职场学术新媒体设计极客专门治愈处女座强迫症。本文为CSS入门翻译redman9原载CSS-Trick人们经常抱怨在CSS中居中元素的问题,其实这个问题并不复杂,只是因为方法众...
- CSS图像 hover 动画效果
-
点击页底“阅读原文”下载原码CSSHover在网页设计中是极为常用的一个CSS效果,只要你有创造力,都可以让Hover变得更多姿多彩,今天我们主要分享40多款使用CSSHOVER完成...
- 前端能限制用户截图吗?
-
摘要:在某些业务场景下,保护屏幕信息的私密性,防止用户随意截图分享,成为了前端开发者的一个棘手需求。但浏览器和操作系统的设计,真的允许网页开发者完全掌控用户的截图行为吗?本文将深入探讨前端限制截图的...
- 每天一个CSS小技巧 - 不规则投影
-
当我们想给一个矩形或者其他能用border-radius生成的形状加投影时,box-shadow的表现都很棒的。但是,当元素添加可一些伪元素或半透明的装饰之后,border-radius会无视这些。这...
- Web开发中10个有用的免费CSS代码
-
在本文中主要展示了在Web开发中一些免费但是非常有用的代码,开发人员可以下载它们来简化工作流程。在这个集合中的所有代码都是经过精挑细选的,对于开发人员来说非常有用。在开发一个网站时,这些代码将节省大量...
- 什么是伪类和伪元素?两者有什么区别?单一冒号和双冒号有何不同
-
https://juejin.im/post/5df1e312f265da33d039d06d?utm_source=bigezhang.com#comment伪类伪类存在的意义是为了通过选择器找到那...
- CSS2与CSS3中常用的伪类汇总大全
-
CSS2与CSS3中有非常多的伪类,可以用于实现各种强大的、酷炫的功能。有用于选择标签状态的,如:a:linka:hoverinput:checkedinput:focus等;也有用于根据结构选...
- 实用!这8个CSS工具可以提升编程速度
-
作为网页设计师,为了在预期的时间内能完成项目,前期肯定是要进行大量练习的。但是如果你花了大量的时间在编写CSS代码上,那无疑是浪费时间。工欲善其事必先利其器,聪明的设计师善于利用工具提升他们的编码效率...
- 《丝路传说怀旧版》宠物融合丹:属性加成与技能继承要点
-
在《丝路传说怀旧版》中,宠物融合丹是优化宠物属性与技能的核心道具,其使用需结合技能继承规则、品质提升机制及资源规划策略。以下是关键要点分析一、属性加成机制品质提升与属性增长品质阶梯:宠物分为白、绿、蓝...
- Python 3.14 t-string 要来了,它与 f-string 有何不同?
-
Python最近出了个大新闻:PEP-750t-string语法被正式采纳了!这意味着Python将在今年10月发布的3.14版本中引入一种新的字符串前缀t,称为模板字符串(Tem...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)