Blender自动化服务器

一个提供Blender 3D自动化和渲染能力的MCP服务器,支持程序化控制Blender进行场景创建、渲染、Python脚本执行等功能。

  • by 3Dean
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 3dean/blender_mcp_server

使用说明

Blender MCP服务器

一个模型上下文协议(MCP)服务器,提供强大的Blender 3D自动化和渲染功能。此服务器允许您通过MCP工具以编程方式控制Blender,从而实现自动渲染、场景创建、Python脚本执行等。

特性

🎬 渲染工具

  • 渲染场景:将Blender场景渲染为图像或动画
  • 批处理接收器:高效渲染多个Blender文件
  • 支持多种输出格式(PNG、JPEG、EXR、TIFF、BMP)
  • 可定制的分辨率和采样设置

🎨 场景管理

  • create_scene:使用预定义设置生成新的Blender场景
  • get_scene_info:分析现有Blender文件
  • 多种场景类型:基础、工作室照明、户外、产品展示
  • 自动对象放置和照明设置

🐍 Python集成

  • execute_python_script:在Blender中运行Python脚本
  • 完全访问Blender的Python API(bpy)
  • 能够以编程方式修改和保存场景

🔧 插件管理

  • 安装插件:安装并启用Blender插件
  • 同时支持.py和.zip插件文件

安装

  1. 再进行

    npm install
    
  2. 构建服务器

    npm run build
    
  3. 配置搅拌机路径 (可选) 设置自定义Blender安装的环境变量:

    export BLENDER_PATH="/path/to/blender"
    export BLENDER_OUTPUT_PATH="/path/to/renders"
    

用法

启动服务器

npm start

服务器在stdio上运行,可以与MCP兼容的客户端集成。

配置

服务器接受以下环境变量:

  • BLENDER_PATH:Blender可执行文件的路径(默认:“Blender”)
  • BLENDER_OUTPUT_PATH:渲染的默认输出目录(默认:“./rerenders”)

MCP客户端配置

将此服务器添加到MCP客户端配置中:

{
  "mcpServers": {
    "blender": {
      "command": "node",
      "args": ["path/to/blender-mcp-server/build/index.js"]
    }
  }
}

可用工具

渲染场景

将Blender场景渲染为图像或动画。

参数:

  • blendFile (必需):.blend文件的路径
  • outputPath (可选):渲染文件的输出路径
  • format (可选):输出格式(PNG、JPEG、EXR、TIFF、BMP)
  • frame (可选):要渲染的特定帧
  • resolution (可选):渲染分辨率{x,y}
  • samples (可选):渲染样本数

例子:

{
  "blendFile": "./scenes/my_scene.blend",
  "outputPath": "./renders/output",
  "format": "PNG",
  "resolution": {"x": 1920, "y": 1080},
  "samples": 128
}

execute_python_script

在Blender中执行Python脚本。

参数:

  • script (必填):要执行的Python脚本
  • blendFile (可选):要加载的.blend文件
  • saveFile (可选):保存修改文件的路径

例子:

{
  "script": "import bpy; bpy.ops.mesh.primitive_cube_add(location=(0, 0, 2))",
  "blendFile": "./scenes/base.blend",
  "saveFile": "./scenes/modified.blend"
}

create_scene

使用基本对象创建新的Blender场景。

参数:

  • outputFile (必需):保存新.blend文件的路径
  • sceneType (可选):场景类型(基本、工作室照明、户外、产品展示柜)
  • objects (可选):要添加的对象数组

例子:

{
  "outputFile": "./scenes/new_scene.blend",
  "sceneType": "studio_lighting",
  "objects": [
    {
      "type": "sphere",
      "location": [0, 0, 1],
      "scale": [1.5, 1.5, 1.5],
      "material": "RedMaterial"
    }
  ]
}

get_scene_info

获取Blender场景的详细信息。

参数:

  • blendFile (必需):要分析的.blend文件的路径

例子:

{
  "blendFile": "./scenes/my_scene.blend"
}

批处理接收器

渲染多个Blender文件或帧。

参数:

  • blendFiles (必需):.blend文件路径数组
  • outputDir (必需):保存渲染文件的目录
  • format (可选):所有渲染的输出格式
  • frameRange (可选):帧范围{开始,结束}

例子:

{
  "blendFiles": ["./scene1.blend", "./scene2.blend"],
  "outputDir": "./batch_renders",
  "format": "PNG"
}

安装插件

安装Blender插件。

参数:

  • addonPath (必填):插件文件的路径(.py或.zip)
  • enable (可选):安装后是否启用(默认:true)

例子:

{
  "addonPath": "./addons/my_addon.py",
  "enable": true
}

场景类型

基础

  • 简单的阳光
  • 基本相机定位
  • 快速原型制作的最小设置

工作室照明

  • 专业三点照明设置
  • 柔和阴影的区域灯光
  • 针对产品可视化进行了优化

户外

  • 高能太阳光
  • 接地平面
  • 自然光照模拟

产品展示

  • 按键、填充和边缘照明
  • 专业背景
  • 针对产品摄影进行了优化

对象类型

支持的基本体对象:

  • cube:基本立方体图元
  • sphere:UV球体
  • cylinder:圆柱体图元
  • plane:平面
  • monkey:Suzanne(Blender的吉祥物)

每个对象支持:

  • 自定义位置[x,y,z]
  • 自定义比例[x,y,z]
  • 材料分配

错误处理

服务器提供全面的错误处理:

  • 文件存在验证
  • 搅拌机过程监控
  • 详细的错误消息
  • 优雅的故障恢复

需求

  • 搅拌机:2.8+版本(建议3.0+版本)
  • Node.js:版本16+
  • 操作系统:Windows、macOS或Linux

发展

从源头构建

git clone <repository>
cd blender-mcp-server
npm install
npm run build

发展模式

npm run dev

这将在监视模式下启动TypeScript进行开发。

故障排除

常见问题

  1. 未找到搅拌机

    • 确保Blender在您的路径或设置中 BLENDER_PATH 环境变量
    • 测试: blender --version
  2. 权限错误

    • 确保输出目录的写入权限
    • 检查.blend文件的文件权限
  3. 渲染失败

    • 验证.blend文件未损坏
    • 检查可用磁盘空间
    • 确保场景设置正确(摄像头、照明)

调试模式

设置详细输出的环境变量:

DEBUG=1 npm start

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

致谢


备注:此MCP服务器要求您的系统上安装Blender。服务器通过命令行界面和Python脚本与Blender通信。