从零开始学3D建模 用Blender制作游戏角色和建筑 附完整案例和新手常见错误
Blender零基础入门:游戏角色与建筑建模完全指南
嘿,朋友!欢迎来到3D建模的世界。
我知道你点开这篇文章的时候,可能对着屏幕上那些复杂的界面有些懵——一堆工具、几个选项卡、各种缩写缩写缩写……别担心,我当年学的时候比你还糊涂。Blender确实有个陡峭的学习曲线,但一旦你跨过那个门槛,你会发现它比你想的亲切得多。
这篇文章不会把你扔进一个术语炸弹里,也不会让你看完后依然不知道从哪里下手。我们会一步步来,从”这是什么?”到”我做出来的东西能放进游戏里”。
准备好了吗?我们开始吧。
第一章:Blender到底是什么?为什么选它?
在讨论建模之前,我想先跟你聊一个最基本的问题:Blender是什么,以及它为什么值得你花时间。
1.1 Blender的基本身份
Blender是一款开源、免费的3D创作软件,由Blender基金会维护。你可以用它做什么?
- 建模:创建三维物体,从简单的盒子到复杂的游戏角色
- 雕刻:用于高细节模型,类似数字黏土
- UV展开:把3D模型”剥皮”成2D贴图
- 纹理绘制:直接在模型上画画
- 绑定:给角色加骨骼,让它能动起来
- 动画:让角色和物体动起来
- 渲染:把3D场景变成图片或视频
- 游戏资产导出:导出到Unity、Unreal等引擎
其中最重要的是:这一切都是免费的。不是免费试用,不是免费版限制功能,是完全免费,开源代码。在 Blender 2.8版本之后,界面变得更加现代化和友好,对新手的门槛大幅降低。
1.2 为什么游戏行业选择Blender
你可能会想,市场上有3ds Max、Maya、ZBrush,为什么选Blender?
说实话,在2017年之前,这个问题我会回避。但现在情况完全不同了。
原因一:成本优势巨大
Maya的年度订阅费大约是2,000美元。3ds Max一年也要1,500美元左右。ZBrush单独购买需要495美元。一个小型独立游戏团队如果买齐这些软件,一年成本轻松过万。Blender把这些全部免费解决,而且功能并不弱。
原因二:Blender的建模能力不输任何商业软件
Blender的核心建模工具(挤出、倒角、布尔、雕刻、粒子等)与Maya、3ds Max处于同一水平线。对于游戏角色和建筑这类模型,Blender完全够用,甚至有些工具更直观。
原因三:社区生态快速增长
每年Blender conf(Blender的官方大会)都在增长,2024年的参会人数比五年前翻了三倍。大量教程、插件、模板涌现。B站上很多高质量的Blender教程作者,比三年前多了不止十倍。
原因四:与游戏引擎的集成越来越顺畅
Blender原生支持GLTF/GLB格式导出,与Unity和Unreal Engine的对接经过多年优化,已经非常成熟。许多独立开发者选择”Blender建模 → Unity/UE5集成”的工作流。
1.3 你需要准备什么
在开始之前,请确认:
- 一台电脑:不需要顶级配置,但建议有独立显卡(NVIDIA或AMD均可,4GB显存以上)
- Blender下载:前往 blender.org 下载最新稳定版
- 安装完成后:打开软件,先别急着建模,我们先熟悉界面
第二章:界面初探——别被吓到
第一次打开Blender,你可能会看到一个”默认场景”:一个立方体、一个摄像机、一个灯光。界面分为几个主要区域:
┌─────────────────────────────────────────────────────────┐
│ 顶部:菜单栏(文件、编辑、渲染等) │
├──────────┬───────────────────────────────────┬─────────┤
│ │ │ │
│ 3D视图 │ 属性面板 │ 工具栏 │
│ (主体)│ (右侧) │ │
│ │ │ │
│ │ │ │
│ │ │ │
├──────────┴───────────────────────────────────┴─────────┤
│ 底部:时间轴(用于动画) │
└─────────────────────────────────────────────────────────┘
2.1 3D视图——你的主战场
屏幕中央最大的区域就是3D视图。你可以在这里:
- 用鼠标中键拖拽旋转视角
- 用Shift+鼠标中键平移视角
- 用鼠标滚轮缩放
- 按住小键盘的
.键可以聚焦当前选中物体
2.2 两个关键模式
Blender有两种基本模式,新手必须分清:
| 模式 | 快捷键 | 用途 |
|---|---|---|
| 对象模式 | Tab |
移动、旋转、缩放整个物体 |
| 编辑模式 | Tab |
编辑物体的顶点、边、面(进入3D建模状态) |
初学者常见错误#1:很多人不知道
Tab键的含义,对着一个立方体什么都做不了,还以为软件坏了。记住:想改形状,按Tab进入编辑模式;想移动物体,按Tab回到对象模式。
2.3 常用快捷键(前10个)
在你开始建模之前,先记住这10个快捷键。它们会让你快10倍:
# Blender 常用快捷键速查表
快捷键组合 功能
─────────────────────────────────
Tab 切换对象模式/编辑模式
G 移动选中元素(Grab)
R 旋转(Rotate)
S 缩放(Scale)
X / Y / Z 限制移动到对应轴
E 挤出(Extrude)——建模最核心操作
I 内插面(Inset)
Ctrl+R 循环选择环切(创建细分)
Ctrl+Shift+B 倒角(Bevel)
Shift+A 添加新物体(Add)
Delete 删除选中元素
第三章:第一个项目——做个简单的建筑
在挑战游戏角色之前,我们先做一个简单的建筑模型。原因很简单:建筑建模能帮你理解坐标、比例、基础工具,而且结果立竿见影,很有成就感。
3.1 项目:一座小房子
我们来做一座小乡村房子,包含:
- 主体墙壁
- 屋顶
- 一扇门
- 一扇窗户
- 一个小烟囱
3.2 步骤一:搭建主体墙壁
1. 打开Blender,按 Delete 删除默认的立方体
2. 按 Shift+A → Mesh → Cube,添加一个立方体
3. 按 S(缩放),拖拽鼠标,把立方体拉成一个扁平的长方体
建议尺寸:宽度6米,深度6米,高度3米
4. 按 G(移动),把它放在地面上(Y轴方向)
在3D建模中,单位很重要。Blender默认单位是”米”,所以6米宽的房子在现实世界中是合理的比例。如果你的建筑比例错了,后续所有贴图、灯光都会不协调。
3.3 步骤二:创建墙壁厚度
现在你的”房子”只是一个扁平的板。我们需要让它有厚度,变成真正的墙壁。
1. 选中立方体,按 Tab 进入编辑模式
2. 按 A 全选所有顶点
3. 按 E(挤出),向Z轴方向挤出
- 按 Z 锁定Z轴
- 向上拖拽约0.3米(墙壁厚度)
4. 松开鼠标
结果:你现在有一个有厚度的”墙盒”,中间是空的。
3.4 步骤三:创建门和窗户的开口
这是新手最容易卡住的地方。我们用布尔运算来开洞:
步骤A:添加门洞
1. 保持编辑模式,在前面墙上创建一个方形开口
- 进入编辑模式 → 选中前面的面
- 按 X → 选择" faces"删除前面
2. 添加一个长方体作为"门的形状"
- 按 Shift+A → Mesh → Cube
- 缩放成一个门的形状(宽1米,高2米)
3. 把门移到墙的位置,穿过墙体
4. 按 Tab 回到对象模式
5. 选中墙体,按 Ctrl+N(应用修改器)之前,先添加布尔修改器:
- 右侧属性面板 → 蓝色扳手图标(修改器)
- 添加 → 布尔 → 选择"Difference"(差集)
- 目标物体选择刚才的门Cube
6. 应用修改器 → 按 Ctrl+A 应用缩放和旋转
布尔运算的逻辑很简单:用A物体从B物体上”挖掉”一块。门Cube从墙体Cube上挖掉了一块,门洞就出来了。
步骤B:创建窗户
1. 重复上面的步骤
2. 添加一个小长方体(宽0.8米,高0.8米)作为窗户形状
3. 用布尔差集从墙上挖掉
4. 完成!
3.5 步骤四:创建屋顶
屋顶是一个经典的建模练习,涉及斜面和倒角的概念。
方法一:使用倒角工具(Bevel)
1. 添加一个长条立方体作为屋顶基础
- 长度8米,宽度3米,高度0.2米
2. 按 Tab 进入编辑模式
3. 选中屋顶的前后两条边
4. 按 Ctrl+B 进行倒角,向上拖拽,形成三角形屋顶
5. 按 E 挤出屋顶的厚度(约0.15米)
方法二:使用形状键或手动调整顶点
(进阶方法,后面会详细讲)
3.6 步骤五:添加烟囱
1. 按 Shift+A → Mesh → Cube
2. 缩放成一个小长方体(0.5米 × 0.5米 × 1.5米)
3. 移动到屋顶侧面
4. 按 E 挤出顶部,形成烟囱的延伸
5. 删除烟囱底部的面(打开内部)
3.7 步骤六:材质和颜色
现在你的房子是灰色的,太单调了。我们加点颜色:
1. 选中墙体,按 Tab 进入编辑模式
2. 按 A 全选
3. 右侧属性面板 → 红色球图标(材质)
4. 点击"新建",设置:
- 基础色:浅灰色(RGB: 210, 200, 190)
- 粗糙度:0.8(墙壁不是光滑的)
- 金属性:0(墙壁不是金属)
5. 选中屋顶,设置材质:
- 基础色:深棕色(RGB: 100, 60, 40)
- 粗糙度:0.9
3.8 步骤七:导出为游戏资产
游戏引擎(如Unity或Unreal)需要特定的格式:
1. 全选所有物体(按 A)
2. 按 Ctrl+G → 将物体合并为一个(可选,建议分开导出)
3. 文件 → 导出 → glTF 2.0 (.glb/.gltf)
4. 选择保存位置,点击"导出glTF"
导出设置建议:
- 勾选”所选对象”(只导出你需要的)
- 勾选”嵌入纹理”(如果有贴图)
- 格式选择
.glb(二进制格式,文件更小)
第四章:游戏角色建模入门
现在,我们来挑战更有趣的东西——游戏角色。
这是很多新手最想做的部分,也是最容易放弃的部分。原因很简单:角色的比例、解剖结构、拓扑布线,每一步都有讲究。但别担心,我们从一个低多边形(Low-Poly)风格的角色开始,这个风格对拓扑要求相对宽松,而且非常流行。
4.1 什么是Low-Poly角色?
Low-Poly风格用较少的多边形来表现角色,特点是:
- 边缘清晰,有棱角感
- 适合移动端游戏、独立游戏
- 风格化强,不追求照片级真实
- 性能好,游戏引擎运行流畅
常见的Low-Poly角色包括《纪念碑谷》、《Gorogoa》、《Firewatch》等游戏的美术风格。
4.2 角色建模的基本流程
无论角色多复杂,建模流程基本一致:
1. 参考图准备 → 2. 基础体块 → 3. 细化形状 →
4. UV展开 → 5. 纹理绘制 → 6. 导出到游戏引擎
4.3 步骤一:准备参考图
在开始之前,你需要一个角色参考图。你可以:
- 在网上找参考图(Pinterest、ArtStation)
- 用真人拍照
- 自己画一个简单的火柴人比例图
参考图设置方法:
1. 按 Shift+A → Image → Reference
2. 选择你的参考图
3. 将参考图放在3D视图的背景位置
4. 按 N 键打开侧边栏 → Viewport → 勾选"Background Images"
4.4 步骤二:用基础几何体搭建角色
我们从立方体开始,逐步变成角色。
角色比例(以人形为例):
- 头部:约1个身体单位高
- 身体:约3-4个单位高
- 腿:约4-5个单位高
- 总高:约8-9个单位
步骤:
1. 按 Shift+A → Mesh → Cube
2. 缩放成一个小立方体,作为头部
- 按 S → 缩小到约0.5 × 0.5 × 0.5
3. 复制一个立方体作为身体
- 按 Shift+D 复制
- 缩放成稍大的长方体(0.6 × 0.8 × 0.4)
4. 复制两个立方体作为手臂
- 缩放成长条(0.15 × 0.7 × 0.15)
5. 复制两个立方体作为腿
- 缩放成长条(0.2 × 0.9 × 0.2)
6. 用 G 移动,把它们拼成一个简单的人形
这个阶段你不需要完美。就像画画时的草稿,先用简单的几何体把比例搭好。
4.5 步骤三:进入编辑模式,细化形状
1. 选中头部,按 Tab 进入编辑模式
2. 按 A 全选所有顶点
3. 按 E 挤出头部,让它更圆润一些
4. 选中头顶的面,按 G + Z 向上挤出
5. 使用旋转工具(R)调整角度
手臂细化:
1. 选中手臂的末端面
2. 按 E 挤出,形成手部
3. 使用倒角(Ctrl+B)让边缘更柔和
腿部细化:
1. 同样方法,从大腿挤到小腿
2. 底部挤出脚部
4.6 步骤四:使用修饰器简化流程
Blender的修饰器系统是新手的高效利器。我们来看几个常用的:
1. 镜像修饰器(Mirror)
- 作用:如果你只建模左半边,镜像出右半边
- 添加方法:右侧属性面板 → 蓝色扳手图标 → 添加修改器 → Mirror
- 记得先把物体原点放到中心线位置
2. 细分修饰器(Subdivision Surface)
- 作用:让低多边形模型变平滑
- 添加方法:添加修改器 → Subdivision Surface
- 级别设置2或3(太高会影响游戏性能)
3. 平滑修饰器(Shrinkwrap)
- 作用:把模型贴合到另一个物体表面
- 常用于服装、盔甲等
4. 布尔修饰器(Boolean)
- 作用:挖洞、切割
- 常用于盔甲上的孔洞、窗户等
4.7 步骤五:UV展开
UV展开是3D建模中最容易被新手忽视的步骤。它的目的是把3D模型的表面”展开”成2D平面,这样才能正确贴贴图。
UV展开步骤:
1. 选中角色,按 Tab 进入编辑模式
2. 按 A 全选所有面
3. 按 U → Unwrap(自动展开)
4. UV编辑器窗口会出现展开的UV岛
5. 手动调整UV岛的位置,避免重叠
- 按 G 移动UV岛
- 按 S 缩放UV岛
- 按 R 旋转UV岛
新手常见错误#2:UV重叠。如果你的UV岛重叠,贴图会糊在一起,角色看起来会很奇怪。检查UV时,确保每个UV岛不与其他岛重叠。
4.8 步骤六:纹理绘制
有两种方法给角色上色:
方法一:直接在Blender中绘制
1. 切换到"Texture Paint"工作区
2. 创建一个新的图像纹理
3. 选择画笔颜色,直接在模型上绘制
4. 保存图像文件
方法二:导出到外部软件
1. 导出UV展开的模型(.obj格式)
2. 导入到Substance Painter或Photoshop
3. 绘制纹理
4. 导出贴图,重新导入Blender
新手推荐:先从方法一开始。Blender自带的纹理绘制功能足够应付Low-Poly风格。
4.9 步骤七:材质设置
1. 选中角色头部,进入材质设置
2. 新建材质,设置:
- 基础色:皮肤颜色(RGB: 240, 200, 170)
- 粗糙度:0.6(皮肤不是完全光滑的)
- 金属性:0
3. 新建衣服材质:
- 基础色:深蓝色(RGB: 50, 80, 150)
- 粗糙度:0.8
4. 如果使用了纹理贴图,在"Base Color"下面选择"图像纹理",加载贴图
4.10 完整角色建模示例代码(Python脚本自动化)
如果你厌倦了手动操作,Blender支持Python脚本自动化。这里是一个简单的角色基础结构生成脚本:
import bpy
import math
# 清空场景
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
# 创建角色基础体块
def create_limb(name, location, scale):
"""创建四肢的基础体块"""
bpy.ops.mesh.primitive_cube_add(size=1, location=location)
limb = bpy.context.active_object
limb.name = name
limb.scale = scale
return limb
# 创建身体各部分
head = create_limb("Head", (0, 0, 2.5), (0.5, 0.5, 0.5))
torso = create_limb("Torso", (0, 0, 1.5), (0.6, 0.4, 0.8))
l_arm = create_limb("LeftArm", (-0.5, 0, 1.8), (0.15, 0.15, 0.7))
r_arm = create_limb("RightArm", (0.5, 0, 1.8), (0.15, 0.15, 0.7))
l_leg = create_limb("LeftLeg", (-0.2, 0, 0.5), (0.2, 0.2, 0.9))
r_leg = create_limb("RightLeg", (0.2, 0, 0.5), (0.2, 0.2, 0.9))
# 添加镜像修饰器到身体(如果需要对称)
bpy.context.view_layer.objects.active = torso
bpy.ops.object.modifier_add(type='MIRROR')
torso_mod = torso.modifiers[0]
torso_mod.use_axis = (True, True, False) # 只在X和Y轴镜像
# 合并所有部分到一个物体(可选)
bpy.ops.object.select_all(action='DESELECT')
for obj in [head, torso, l_arm, r_arm, l_leg, r_leg]:
obj.select_set(True)
bpy.context.view_layer.objects.active = torso
bpy.ops.object.join()
print("角色基础结构创建完成!")
print("当前物体:", bpy.context.active_object.name)
第五章:建筑进阶——做一座完整的游戏场景建筑
现在你已经会做简单的房子了,我们来挑战更复杂的建筑:一座有中庭、多个房间、装饰细节的建筑。
5.1 项目:中世纪风格的城镇建筑
目标:
- 两层楼的建筑
- 中庭(室内庭院)
- 拱形门洞
- 装饰性柱子
- 瓦片屋顶
5.2 步骤一:确定建筑比例和布局
建筑尺寸参考:
- 整体宽度:12米
- 深度:8米
- 一层高度:3.5米
- 二层高度:3米
- 总高度:约6.5米(不含屋顶)
房间布局(俯视图):
┌─────────────────────────────────────┐
│ 房间A │ │ 房间B │
│ (3m×4m) │ 中庭 │ (3m×4m) │
│ │ (3m×3m) │ │
│──────────┤ ├───────────────│
│ 房间C │ 走廊 │ 房间D │
│ (3m×4m) │ (2m宽) │ (3m×4m) │
└──────────┴─────────┴───────────────┘
5.3 步骤二:用布尔运算创建楼层
一层建造步骤:
1. 创建一个大的长方体作为一层的墙体
- 尺寸:12 × 8 × 3.5 米
2. 在墙体内部创建"房间"的分割墙
- 按 Shift+A → Mesh → Cube
- 创建隔板,用于分隔四个房间
3. 用布尔差集挖掉中庭区域
- 创建一个3×3×3.5的Cube作为"挖空区域"
- 布尔差集 → 应用到墙体
4. 同样方法创建二层的墙体(高度3米,叠在一层上面)
5.4 步骤三:创建拱形门洞
拱形门洞是建筑建模中的经典挑战,我们用曲线工具来完成:
1. 按 Shift+A → Curve → Bezier Curve
2. 进入编辑模式,调整曲线形状,创建拱形
3. 在曲线属性中,设置"几何数据" → "路径"
4. 按 Shift+A → Curve → Bezier Circle(创建拱形的截面)
5. 选中曲线,在物体数据属性中设置"几何" → "路径"为刚才的Circle
6. 调整拱形的大小和位置
7. 用布尔差集从墙上挖掉拱形门洞
5.5 步骤四:瓦片屋顶
1. 创建屋顶的基础形状
- 添加一个长方体,尺寸略大于建筑宽度
2. 进入编辑模式,调整顶点形成坡屋顶形状
3. 使用细分修饰器增加细节
4. 创建瓦片纹理(使用法线贴图或简单的颜色变化)
5. 添加屋顶装饰(如老虎窗、烟囱等)
5.6 建筑材质制作技巧
墙壁材质(石头):
- 基础色:灰白色(RGB: 200, 195, 185)
- 粗糙度:0.9
- 法线贴图:使用石头纹理增强表面细节
屋顶材质(瓦片):
- 基础色:红棕色(RGB: 140, 70, 50)
- 粗糙度:0.7
- 可使用图像纹理增强真实感
木材材质(门窗):
- 基础色:深棕色(RGB: 80, 50, 30)
- 粗糙度:0.6
5.7 建筑场景的灯光设置
1. 添加日光:
- 按 Shift+A → Light → Sun
- 强度:5(根据场景大小调整)
- 颜色:暖白色(RGB: 255, 245, 230)
2. 添加补光:
- 按 Shift+A → Light → Point
- 放在建筑内部,模拟室内灯光
- 强度:1-2
3. 调整环境光:
- 在"World"属性中,设置环境光颜色
- 建议使用淡蓝色,模拟天空散射
第六章:新手常见错误及解决方案
这部分是我觉得最有价值的内容。因为错误比正确的方法更能帮你成长。
错误1:不知道从哪里开始
症状:打开Blender,面对空白的3D视图,不知道该做什么。
原因:没有明确的目标和项目规划。
解决方案:
1. 先想清楚你要做什么(角色?建筑?道具?)
2. 找一个简单的参考图
3. 从最基础的几何体开始
4. 不要追求完美,先完成再优化
行动建议:
今天就做一个"小房子"或"简单角色",不求完美,只求完成。
错误2:建模顺序混乱
症状:先做了细节,发现比例不对,全部推翻重来。
原因:没有遵循”从大到小,从粗到细”的建模原则。
解决方案:
正确的建模顺序:
1. 确定比例和尺寸(参考图)
2. 搭建基础体块(用简单几何体)
3. 细化形状(挤出、倒角、调整顶点)
4. 添加细节(装饰、纹理、小部件)
5. UV展开和材质
6. 导出优化
记住:永远从大处着手,逐步细化。
错误3:拓扑布线一团糟
症状:模型表面出现奇怪的褶皱,动画时关节处变形异常。
原因:布线不均匀,或存在非四边形网格。
解决方案:
1. 尽量使用四边形网格(Quads)
- 避免三角形和五边以上多边形
2. 布线要均匀,特别是在关节处
3. 使用循环选择工具(Ctrl+R)来添加辅助线
4. 检查并修复N-gons(五边以上的面)
工具推荐:
- Blender内置的"Remesh"功能
- 插件:Quad Remesher(付费,效果优秀)
错误4:UV展开后纹理扭曲
症状:贴图在模型上严重拉伸,看起来像被压扁了。
原因:UV岛分布不均匀,或展开时没有正确处理。
解决方案:
1. 在UV编辑器中检查UV岛
2. 使用"Smart UV Project"快速展开(适合Low-Poly模型)
3. 手动调整UV岛,避免重叠
4. 确保UV岛的比例与模型面的比例大致匹配
错误5:多边形数量过多,影响游戏性能
症状:导出到Unity/UE5后,游戏帧率大幅下降。
原因:模型面数太高,没有进行必要的优化。
解决方案:
低多边形优化技巧:
1. 游戏角色建议面数:5,000 - 15,000面(Mobile可更低)
2. 建筑细节面数:根据距离调整,近景可多,远景要少
3. 使用法线贴图来模拟细节,减少实际多边形
4. 合并小部件,减少Draw Call
检查方法:
- 在Blender中查看面数(右下角状态栏)
- 导出到游戏引擎后用性能分析工具检查
错误6:不导出前不检查模型
症状:在Blender中看起来很好,导到Unity后材质全黑,或者模型比例不对。
原因:没有正确应用修改器,或未正确导出。
解决方案:
导出前的检查清单:
□ 所有修改器已应用(Ctrl+A 应用缩放和旋转)
□ UV已正确展开
□ 材质已正确设置
□ 模型法线方向正确(面向外)
□ 无多余顶点或未使用的面
□ 原点和轴方向正确
导出设置:
- 格式:glTF 2.0 (.glb)
- 勾选"所选对象"
- 勾选"嵌入纹理"
错误7:忽视比例和真实世界尺寸
症状:模型在Blender里看起来不错,但导到游戏引擎后,角色比门还高,或者建筑小得可笑。
原因:建模时没有参考真实世界尺寸。
解决方案:
1. 在Blender中设置单位系统:
- 场景属性 → 单位 → 长度 → 米
- 勾选"使用单位"
2. 参考真实比例:
- 成年人平均高度:1.7-1.8米
- 门的高度:2.0-2.2米
- 窗的高度:1.2-1.5米
- 楼梯踏步高度:0.15-0.18米
3. 建模时始终参考这些尺寸
第七章:从Blender到游戏引擎的工作流
学会建模只是第一步。真正的价值在于,你的模型能放进游戏里运行。
7.1 导出格式选择
常用格式对比:
┌─────────┬──────────────┬──────────────┬──────────────┐
│ 格式 │ 优点 │ 缺点 │ 适用场景 │
├─────────┼──────────────┼──────────────┼──────────────┤
│ glTF │ 现代标准 │ 文件较大 │ 网页游戏 │
│ │ 支持PBR材质 │ │ 实时渲染 │
├─────────┼──────────────┼──────────────┼──────────────┤
│ FBX │ Unity/UE支持好│ 格式复杂 │ PC/主机游戏 │
│ │ 广泛使用 │ │ 商业项目 │
├─────────┼──────────────┼──────────────┼──────────────┤
│ OBJ │ 简单通用 │ 不支持动画 │ 静态模型 │
│ │ 兼容性好 │ 不支持材质 │ 3D打印 │
└─────────┴──────────────┴──────────────┴──────────────┘
7.2 Unity集成示例
1. 在Blender中导出模型
- 文件 → 导出 → glTF 2.0 (.glb)
- 勾选"嵌入纹理"
2. 打开Unity,创建新工程
- 项目设置 → Player → Resolution and Presentation
- 确保纹理导入设置正确(压缩格式根据平台选择)
3. 导入模型
- 将导出的.glb文件拖入Unity的Assets文件夹
- Unity会自动识别并导入
4. 设置材质
- 在Unity中选择导入的模型
- 检查材质是否正确应用
- 根据需要调整PBR参数(Metallic, Smoothness等)
5. 创建Prefab
- 将模型拖入场景
- 设置好光照和阴影
- 保存为Prefab,方便复用
7.3 Unreal Engine 5集成示例
1. 导出模型
- 文件 → 导出 → FBX 7.4 Binary
- 勾选"Apply Scalable Transform"
- 勾选"Embed Texture"(如果使用贴图)
2. 打开Unreal Engine 5
- 创建新项目(选择"游戏"模板)
3. 导入模型
- 在Content Browser中右键 → Import
- 选择导出的FBX文件
- 导入设置:
- 勾选"Import Textures"
- 勾选"Import Materials"
- 勾选"Generate Lightmap UVs"(如需光照贴图)
4. 材质设置
- UE5使用MegaParse或自定义材质
- 根据游戏风格调整
- 建议使用Nanite(如使用UE5.2+)
5. 创建蓝图
- 将导入的模型拖到场景中
- 创建Blueprint类
- 添加碰撞体(Collision)
- 根据需要添加动画和逻辑
第八章:持续学习与进阶路径
你已经学会了基础,但3D建模是一个深不见底的世界。以下是一些进阶方向:
8.1 角色建模进阶
进阶方向:
1. 高模雕刻(ZBrush或Blender Sculpting)
2. UV展开优化
3. PBR材质制作(Substance Painter)
4. 角色绑定(Rigging)
5. 动画制作(Animation)
6. 毛发和布料模拟
8.2 建筑场景进阶
进阶方向:
1. 程序化生成(Geometry Nodes)
2. 大规模场景优化(LOD系统)
3. 真实感渲染(Cycles/Eevee优化)
4. 环境光照(HDR环境贴图)
5. 粒子系统(植被、装饰物生成)
6. 建筑可视化(ArchViz)
8.3 推荐学习资源
免费资源:
- Blender官方教程(youtube.com/user/BlenderFoundation)
- Blender Guru的"Donut教程"(入门必修)
- Grant Abbitt的Low-Poly角色教程
- B站搜索"Blender入门"(中文资源非常丰富)
付费课程:
- CG Fast Track(YouTube频道,质量极高)
- Domink Griesbacher(高级角色建模)
- FlippedNormals(行业级教程)
插件推荐:
- Hard Surface Shader Tools(硬表面建模)
- BoxCutter(布尔建模增强)
- Quick UV Texture(UV展开加速)
第九章:实战项目——完整的游戏角色案例
让我给你一个完整的实战案例:制作一个Low-Poly风格的战士角色。
9.1 项目概述
角色设定:
- 风格:Low-Poly,约5,000面
- 用途:移动端RPG游戏
- 包含:身体、武器、盔甲、配饰
目标:
1. 从零开始建模
2. UV展开
3. 纹理绘制
4. 导出到游戏引擎
9.2 详细建模步骤
阶段一:基础体块搭建
─────────────────────
1. 创建头部
- 立方体 → 缩放 → 圆角处理
- 添加眼睛位置(用简单的凸出表示)
2. 创建身体
- 长方体 → 调整比例
- 添加肩膀(用小立方体)
- 添加胸部(稍作凸出)
3. 创建四肢
- 手臂:长条立方体 → 调整形状
- 腿部:长条立方体 → 调整形状
- 手和脚:小立方体 → 简化形状
阶段二:细化形状
─────────────────────
1. 头部细化
- 挤出鼻子
- 调整下颌形状
- 添加耳朵(小三角)
2. 身体细化
- 添加锁骨
- 调整腰部曲线
- 添加腰带
3. 四肢细化
- 手臂:添加肘部、前臂曲线
- 腿部:添加膝盖、小腿曲线
- 手脚:简化手指和脚趾
阶段三:装备添加
─────────────────────
1. 武器
- 剑:长方体 → 刀身
- 剑柄:小圆柱体
- 护手:扁平形状
2. 盔甲
- 胸甲:覆盖胸部
- 肩甲:覆盖肩膀
- 护腕:覆盖手腕
- 护腿:覆盖大腿和小腿
3. 配饰
- 腰带上的小包
- 头盔上的羽毛
- 披风(使用布料模拟或简单形状)
阶段四:UV展开和材质
─────────────────────
1. UV展开
- 按标记边(Mark Seam)
- Unwrap
- 在UV编辑器中调整
2. 纹理绘制
- 创建图像画布(2048×2048)
- 绘制皮肤、衣服、盔甲、武器
- 使用颜色块区分不同材质区域
9.3 建模脚本示例
import bpy
import math
def create_character():
"""创建Low-Poly战士角色的基础结构"""
# 清空场景
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
# 创建材料
materials = {
'skin': bpy.data.materials.new(name='Skin'),
'cloth': bpy.data.materials.new(name='Cloth'),
'armor': bpy.data.materials.new(name='Armor'),
'weapon': bpy.data.materials.new(name='Weapon')
}
for name, mat in materials.items():
mat.use_nodes = True
bsdf = mat.node_tree.nodes['Principled BSDF']
if name == 'skin':
bsdf.inputs['Base Color'].default_value = (0.9, 0.7, 0.6, 1)
bsdf.inputs['Roughness'].default_value = 0.6
elif name == 'cloth':
bsdf.inputs['Base Color'].default_value = (0.2, 0.3, 0.5, 1)
bsdf.inputs['Roughness'].default_value = 0.8
elif name == 'armor':
bsdf.inputs['Base Color'].default_value = (0.5, 0.5, 0.5, 1)
bsdf.inputs['Roughness'].default_value = 0.3
bsdf.inputs['Metallic'].default_value = 0.7
elif name == 'weapon':
bsdf.inputs['Base Color'].default_value = (0.3, 0.3, 0.3, 1)
bsdf.inputs['Roughness'].default_value = 0.2
bsdf.inputs['Metallic'].default_value = 0.9
print("角色基础结构创建完成")
print("材料已创建:", list(materials.keys()))
return materials
# 执行创建
materials = create_character()
9.4 性能优化检查清单
□ 总面数控制在5,000-10,000面
□ UV无重叠
□ 纹理尺寸:1024×1024 或 2048×2048
□ 合并相同材质的面
□ 删除不可见的面(如接触地面的部分)
□ 使用LOD(多细节层次)方案
□ 法线方向全部朝外
□ 原点和轴方向正确
第十章:给你的建议和鼓励
我知道这个过程可能看起来很长。从”这是什么”到”我能做一个游戏角色”,中间隔着一段不算短的路。
但我想告诉你几件事:
第一,每个3D艺术家都是从”丑丑的立方人”开始的。 我见过的所有教程里,大师们展示的都是精美的作品,但你不会看到他们第一周做的东西。那往往是一团混乱的几何体。这是正常的。
第二,Blender的社区非常友好。 你有问题,去Blender Artists论坛、Discord服务器、B站评论区问,大多数人会愿意回答。这不是一个”你自己悟”的圈子。
第三,实践比理论重要一百倍。 看一百个教程,不如动手做一个小项目。哪怕它很丑,哪怕它有很多错误,但你做完了,你就学到了东西。
第四,犯错是学习的一部分。 我列出的那些”新手常见错误”,都是我或者我的学生真正犯过的。你现在看到它们,可以避免,或者更快地找到解决方案。
最后的提醒:保持耐心
3D建模是一项技能,和任何技能一样,需要时间。你不可能一天之内成为一个高手,但你可以一天之内开始。
今天的你,打开了这篇文章,了解了Blender是什么,知道了一步步该怎么做。这已经是进步了。
接下来,打开Blender,创建一个立方体,按Tab,按E,挤出一点点。
这就是开始。
祝你建模愉快!
如果你这篇文章对你有帮助,欢迎分享给更多想学习3D建模的朋友。有问题可以在评论区提问,我会尽量回答。
