Blender Python 与可重复生产
你的编程经验可以直接用于 Blender。内置 Python 的 bpy 模块提供场景数据访问与操作能力;普通系统 Python 通常不能直接 import bpy,应在 Blender 内或通过 Blender 后台模式运行。
数据 API 与操作符
import bpy
# 操作符:模拟制作步骤,常依赖活动区域、模式和选中对象。
bpy.ops.mesh.primitive_cube_add(size=1)
obj = bpy.context.object
obj.name = 'PracticeCube'
# 数据访问:显式引用对象,适合稳定修改和检查。
obj.location = (0, 0, 0.5)
obj['purpose'] = 'learning'
print(obj.name, tuple(obj.dimensions))
bpy.ops 很方便,但需要正确上下文。例如进入编辑模式前必须有合适的活动对象;后台运行时没有所有 UI 区域。能用数据 API 直接修改时,通常更容易定位对象与副作用。
后台运行与参数
"/Applications/Blender.app/Contents/MacOS/Blender" \
-b --python examples/blender/generate_assets.py -- robot
-b 后台运行,--python 指定脚本,-- 后的参数交给脚本。正式制作时先明确脚本是否清空场景、输出到哪里、是否覆盖同名文件。
本站生成脚本是从空场景生产独立教学文件,适合在新的后台进程运行;不要把整段脚本直接执行在唯一未保存的正式项目里。
可重复不等于文件逐字节一致
固定输入参数、命名、随机种子与帧采样,可以让几何和动作结果保持可复现。保存时间、压缩、渲染器和系统差异,仍可能改变文件散列或个别像素。散列适合核对同一交付批次,跨机器复现还要比较结构与视觉。
分离生成、验证与打包
generate_assets.py → 生成源文件与资源
verify_assets.py → 重开、重导入、检查结构与动画
package_assets.py → 清单、散列与下载包
验证不要只检查“文件存在”。应检查模型是否包含网格、机器人是否真的有 skin 与动画通道、透明图是否同时含透明和不透明区域,以及图集坐标是否匹配帧顺序。
环境错误也属于可复现说明
本机内置 NumPy 因系统 Accelerate 符号兼容问题不能加载,而原生 glTF 插件依赖 NumPy。此次使用临时目录中的兼容 wheel 解决,没有修改 Blender.app。具体命令与适用架构写在 examples/blender/README.md;正常环境不应照搬这个修复。
请先报告Blender与Python版本,使用当前版本API。
为脚本提供输入、输出、覆盖范围、运行命令和验证命令。
遇到依赖错误时保留原生导出路线,优先采用项目隔离修复,
记录原因,不要无声修改全局软件环境。