Blender Python Automation (bpy)
Prerequisites
- - Blender must be installed and accessible from the CLI (
blender --version). - Scripts run via: INLINECODE1
- For interactive use: connect via Blender's built-in Python console or the REST server addon.
Common Snippets
Create an object
CODEBLOCK0
Batch render all frames
CODEBLOCK1
Apply a material by name
CODEBLOCK2
Tips
- - Always use
--background when running headless (no UI). - Use
bpy.data (global access) vs bpy.context (active selection) correctly. - For long renders, consider Cron jobs in OpenClaw so main chat isn't blocked.
Blender Python 自动化 (bpy)
前置条件
- - 必须安装 Blender 并可通过 CLI 访问(blender --version)。
- 脚本运行方式:blender --background --python
- 交互式使用:通过 Blender 内置的 Python 控制台或 REST 服务器插件连接。
常用代码片段
创建对象
python
import bpy
bpy.ops.mesh.primitive
cubeadd(location=(0, 0, 0))
obj = bpy.context.object
obj.name = MyCube
批量渲染所有帧
python
import bpy
scene = bpy.context.scene
scene.render.filepath = //renders/frame_
bpy.ops.render.render(animation=True)
按名称应用材质
python
import bpy
mat = bpy.data.materials.get(MyMaterial)
if mat is None:
mat = bpy.data.materials.new(name=MyMaterial)
obj = bpy.context.object
if obj.data.materials:
obj.data.materials[0] = mat
else:
obj.data.materials.append(mat)
提示
- - 无界面运行时始终使用 --background。
- 正确区分使用 bpy.data(全局访问)和 bpy.context(当前选中项)。
- 对于长时间渲染,考虑在 OpenClaw 中使用 Cron 任务,以免阻塞主聊天。