SuperAPI AI 工具集

blender-pipeline

设计与创作

查看项目

更新于 10-16 16:25

技能介绍

用途

blender-pipeline 是一套基于 Blender Python API(bpy)的无头游戏资产流水线技能,用于自动化游戏开发所需的 3D 资产制作与加工。触发场景包括 3D 建模、资产转换、精灵图集、绑定、Mixamo、FBX/glTF 转换,以及程序化资产生成相关的请求。

安装

Linux(MiniPC / 服务器)提供多种方式:

Snap(推荐 — 最新版本)

sudo snap install blender --classic

APT(可能是旧版本)

sudo apt install blender

直接下载(最灵活)

wget https://download.blender.org/release/Blender4.4/blender-4.4.0-linux-x64.tar.xz tar xf blender-4.4.0-linux-x64.tar.xz sudo ln -s $(pwd)/blender-4.4.0-linux-x64/blender /usr/local/bin/blender

macOS:

Homebrew

brew install --cask blender

或直接下载

CLI 路径:/Applications/Blender.app/Contents/MacOS/Blender

安装确认:

blender --version blender -b --python-expr "import bpy; print('bpy OK:', bpy.app.version_string)"

主要能力与使用方式

无头运行模式

基本结构包括:执行脚本(新场景)、加载 .blend 后执行脚本、在 -- 之后传参、使用工厂设置忽略用户配置,以及启用插件:

blender -b --python script.py blender -b scene.blend --python script.py blender -b --python script.py -- --arg1 value1 --arg2 value2 blender --factory-startup -b --python script.py blender -b --addons "rigify,io_scene_gltf2" --python script.py

参数顺序很重要,正确顺序为:先加载 blend,再设置输出,最后渲染:

blender -b scene.blend -o /tmp/output -F PNG -f 1

GPU 渲染(headless)

在无头模式下需手动启用 GPU,示例脚本 gpu_setup.py 中设置 prefs.compute_device_type(可选 CUDA、OPTIX、HIP、METAL),调用 prefs.get_devices() 并为每个设备设置 device.use = True,再将 bpy.context.scene.cycles.device 设为 'GPU'。运行示例:

blender -b scene.blend -E CYCLES -P gpu_setup.py -f 1 -- --cycles-device CUDA

提供的脚本

  1. 格式转换(convert_format.py):支持 FBX→glTF、OBJ→FBX、glTF→OBJ,以及按目录批量转换。例如 FBX→glTF:

blender -b --python scripts/convert_format.py -- --input model.fbx --output model.glb --format GLB

批量转换示例:

blender -b --python scripts/convert_format.py -- --input-dir ./models/ --output-dir ./converted/ --input-ext .fbx --format GLB

  1. 精灵图集渲染(render_sprite_sheet.py):支持 8 方向精灵图集、等距视图(指定相机角度)、动画精灵图集(所有帧)。例如:

blender -b character.blend --python scripts/render_sprite_sheet.py -- --angles 8 --size 128 --output sprites/character.png

  1. 程序化道具生成(procedural_props.py):生成树、岩石、箱子/木箱、建筑外观等。示例:

blender -b --python scripts/procedural_props.py -- --type tree --style low-poly --seed 42 --output props/tree.glb

  1. 简单绑定(simple_rig.py):支持用 Rigify 元绑定自动绑定,以及面向 2D 游戏的简单骨骼绑定。示例:

blender -b character.blend --python scripts/simple_rig.py -- --target CharacterMesh --type rigify --output rigged_character.blend

  1. Mixamo 导入(mixamo_import.py):支持单个 Mixamo FBX 导入并转 glTF、合并多个 Mixamo 动画、整理为 NLA 轨道。示例:

blender -b --python scripts/mixamo_import.py -- --input mixamo_character.fbx --output character.glb --fix-scale --fix-rotation

适用场景与工作流

工作流 1:Mixamo → Blender → 游戏引擎。步骤为:从 Mixamo 下载绑定与动画(FBX);用 mixamo_import.py 导入并做缩放/旋转校正;必要时整理动画 NLA 轨道;用 convert_format.py 转为 glTF/GLB;在游戏引擎(Godot/Unity)中导入。

工作流 2:程序化资产 → 精灵图集。步骤为:用 procedural_props.py 生成 3D 资产,或使用现有 .blend 中的模型;用 render_sprite_sheet.py 生成多方向精灵图集;在 2D 游戏中使用该图集。

工作流 3:资产批量流水线,提供 batch_pipeline.sh 示例,先批量将 FBX 转为 glTF,再对每个模型生成精灵图集。

在 MiniPC 上执行(nodes.run)的示例:

nodes.run(node="MiniPC", command=[ "blender", "-b", "--factory-startup", "--python", "/path/to/script.py", "--", "--arg1", "value1" ])

MiniPC 安装 Blender 及文件传输(MiniPC→Mac Studio 的 HTTP 服务器方式)也有示例说明。

限制与注意事项

渲染引擎方面:Cycles 完全支持无头模式,GPU 可选,CPU/GPU 均可,为默认选择;EEVEE 仅 Linux 支持无头,需要 GPU,Linux 3.4+ 且必须有 GPU,macOS/Windows 无头不可用;Workbench 同样仅 Linux 支持无头,需要 GPU,与 EEVEE 限制相同。

已知限制包括:EEVEE 无头需要 Linux + GPU + display 环境,可用 Xvfb 创建虚拟显示;无头模式下 GPU 不会自动检测,需手动启用;bpy 在 Python 中每个进程只能导入一次,多个任务需拆分为子进程;复杂场景需要大量 RAM,MiniPC(8GB)上建议以低模为主;Grease Pencil 在无 GPU 的无头环境中无法渲染;Snap 安装时 pip install 路径受限,需额外包时建议用 tarball 安装;bpy API 在不同 Blender 版本间可能变化,脚本以 Blender 4.x 为准。

性能提示:使用 --factory-startup 避免加载不必要的用户设置;--threads N 指定 CPU 线程数(0 为全部);低模资产用 Workbench 比 Cycles 更快;批量任务可用 xargs/parallel 并行化。

参考文档包括 references/bpy-api.md、references/rigging.md、references/procedural.md、references/rendering.md。