AI 应用开发(二):Blender 建模助手

一、前言

上次简单介绍了一下 MCP,以及如何在 TRAR 中通过 MCP 实现一些 AI 功能,同时我也说过,以后的那些大型工具软件一定会加上自然语言驱动创作模块。

比如各种 Adobe、Autodask 等等系列软件,但是今天我要讲的一个开源轻量的 3D 建模软件 ——Blender,关于实现一个智能体,完成通过自然语言来控制 Blender 建模、贴图等基本操作。

二、环境清单

TRAE 0.5.7

Blender 4.0

Blender MCP

Python 3.10

三、BlenderMCP 介绍

要想用自然对话的方式在 Blender 中建模,就不得不提到 BlenderMCP 了,全称为 Blender Model Context Protocol,是一个旨在将 Blender 与 AI 模型无缝集成的工具。

它通过模型上下文协议(MCP)实现 Blender 与 AI 之间的双向通信,让用户能够利用自然语言指令来控制 Blender,从而极大地简化了 3D 建模和场景操作的流程,它主要由两个部分组成:Blender 插件和 MCP 服务器。

  1. Blender 插件(addon.py):该插件运行在 Blender 内部,负责创建 socket 服务器。它接收来自外部的命令,并在 Blender 中执行这些命令。例如,创建对象、修改材质等。插件还会将 Blender 的场景信息或操作结果反馈给外部服务器,实现双向通信。
  2. MCP 服务器(server.py):这是一个独立的 Python 服务器,实现了模型上下文协议(MCP)。它与 Blender 插件基于 TCP sockets 进行通信,接收用户通过 Claude AI 发出的指令,并将这些指令转换为 Blender 能够理解的命令。服务器还会处理 Blender 返回的结果,将其反馈给 Claude AI,形成一个完整的指令处理流程。

提示:下载整个项目后,只需要复制根目录下 addon.py (Blender 插件),用于在 Blender 中插件安装,另一个 Server.py 也可以下载单独部署(最好直接用 TRAE 中 MCP 插件市场的)。

四、工具的交互流程

1. 启动 Blender TCP 服务
用户在 Blender 中启用 MCP 插件,插件自动创建基于 TCP Socket 的本地服务器(默认端口 5000),用于接收外部指令。

2. 智能体连接 TCP 服务
第三方智能体(如 Claude、自定义 Agent)通过 TCP/IP 协议 连接到 Blender 的 MCP 服务器,建立双向通信通道。

3. 自然语言指令输入与解析
用户向智能体输入自然语言指令(如 “创建一把椅子模型并导入 Blender”),智能体通过 NLP 模型解析意图,判断是否需要调用 Hyper3D Rodin。

4. MCP 协议转换与指令分发
智能体将自然语言转换为 JSON 的 MCP 指令,包含操作类型(如 generate_model)、参数(如 text_prompt: “一把椅子”)和目标工具。

5. 调用 Hyper3D Rodin API
Blender MCP 接收到指令后,通过 HTTP/RPC 接口 调用 Hyper3D Rodin 的模型生成服务,传递文本描述或参考图像参数。

6. 模型生成与数据返回
Rodin 的 AI 模型生成带 PBR 材质的 3D 资产,将结果以 .glb 或 .obj 格式 返回至 Blender MCP 的临时存储路径。

7. 模型导入 Blender 场景
Blender MCP 自动执行 bpy.ops.import_scene 等 Python API 命令,将生成的模型导入当前场景,并调整材质、灯光等参数。

五、开始操作

1. 安装 Blender 插件

打开 Blender,点击插件安装,找到前面 BlenderMCP 里复制出来的 addon.py,安装后并启用。

2. 添加 BlenderMCP 服务

打开 TRAE 编辑器,在 MCP 市场搜索后直接添加,也可以用前面下载的项目里 server.py 本地添加。

3. TCP 服务启动

打开 Blender,找到或按快捷键 “N” 找到 BlenderMCP 插件面板,端口 9876 可以自定,勾选 “Use Hyper3D Rodin 3D model generation”,Rodin 选 “hyper3d.ai”,API Key 使用免费测试的,点击 “Set Free Trial API Key”。

4. 创建 “Blender 助手” 智能体

打开 TRAE 的智能体,自定义名字,工具勾选 “blender”,提示词可以参考我下面的。

## 角色:
你是一名Blender智能建模助手,擅长将自然语言指令转化为精准的Blender操作(建模/材质/动画)

## 交互协议:
- 用户输入自然语言描述(如:“创建一个带纹理的科幻飞船”)
- 系统自动解析为Blender操作队列并执行
- 支持多轮迭代修改(例:“将船翼延长50%并添加推进器”)

## 技能
### 技能 1:建模能力
- 基础几何体:创建立方体/球体/柱体及参数化变形。
- 高级建模:布尔运算、表面细分、挤压、倒角、曲线建模
- 场景构建:排列物体、生成地形、建筑结构生成

### 技能 2:材质与渲染
- 自动分配基础材质(金属/玻璃/塑料)
- 支持UV映射指令(“为飞船添加锈迹贴图”)
- 基础光照设置(HDR环境光/点光源定位)

### 技能 3:动画基础
- 关键帧动画(“让立方体在5秒内旋转360度”)
- 路径动画(“沿曲线轨迹移动相机”)

## 注意事项:
### 指令精度要求
- 明确参数:“创建半径2m的球体”
- 模糊描述:“做个大一点的球”

### 能力边界声明:
- 不支持:角色骨骼绑定/流体模拟/复杂粒子系统
- 有限支持:有机生物模型(需分步指令)

### 容错机制:
- 当指令歧义时主动询问(“请指定圆柱体的细分段数”)
- 复杂操作分步确认(“即将执行20个操作,是否继续?”)

5. 连接 TCP 服务

在 Blender 开启服务后,我们可以用 windows 指令监听端口。

还有查看 TRAE 中 MCP 的 blender 是否可使用,如果是绿勾,表示已经连接上了。

// 查看端口
netstat -ano | findstr "9876"

// 查看进程
tasklist | findstr "3780"

6. 开始建模

打开 TRAE,开始用 前面创建 “Blender 小助手” 智能体对话,直接输入 “创建一把椅子”,随后就会在 Blender 创建了椅子的 3D 模型。

六、写在后面

更多的如材质与颜色添加、动画调整、游戏引擎导入、TCP 交互的 Json 串,以后我再更新。

其实目前看,不管是 AI 通过文本或图片生成的 3D 模型都存在布线不规整的问题,就像上面这把椅子,顶点和面都上万,而且还是三角面,如果用来做动画或导入游戏,二次修改和性能都是很大问题。

既然有痛点,自然也就有方案,市场上不光有很多降低面数、三角面转四角面教程,还有很多重拓扑的插件,都能提升现阶段让 AI 建模的可行性。

但是,随着 AI 的意图理解和生成精度不断提高,BlenderMCP 的未来发展前景还是非常广阔,一定能在游戏创作、建筑设计、工业设计上实现更高级的建模操作。

本作品采用《CC 协议》,转载必须注明作者和本文链接
公众号: ZERO开发, 专注后端实战技术分享,致力于给猿友们提供有价值的内容。
北桥苏
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
UP @ 公众号: ZERO开发
文章
79
粉丝
2
喜欢
22
收藏
13
排名:1075
访问:4802
私信
所有博文
社区赞助商