【问题标题】:Is it possible to create Blender file (.blend) programmatically with Python?是否可以使用 Python 以编程方式创建 Blender 文件(.blend)?
【发布时间】:2014-06-13 03:03:09
【问题描述】:

我知道 Python 是在 Blender 中使用的标准脚本语言,但我没有找到使用 python 创建 .blend 文件的方法。

我想做的不是在blender中使用python,而是“在python中使用blender(libs?)”。

我计划的工作流程如下:

  1. 为我的模型定义一些参数;
  2. 定义“生成配方”以创建合适的 Blender 对象并将其保存到文件中;
  3. 创建一个 python 脚本来存储参数和过程。脚本运行时,会在同一文件夹中创建一些 .blend 文件;
  4. 使用 Blender 可视化模型。如果需要更改模型,请更改脚本,再次运行,然后再次打开。

【问题讨论】:

  • 是的,这是可能的。混合文件是什么样的?无论是文本还是二进制文件,您都可以使用 Python 创建任何类型的输出文件。问题变成了:他们有合适的库(例如 XML)来帮助你吗?
  • @JonathonReinhart 我应该提到我的“生成配方”涉及高级对象创建搅拌器命令吗?
  • @heltonbiker 这样的事情怎么样:复制一个空的 .blend 文件的(通用)python 脚本,运行 Blender Python 脚本(从命令行打开一个调用 blender 的 python 子进程(无 GUI))使用“基因配方”并保存文件?
  • @heltonbiker 另外,你的主要目标是什么? (例如,如果您只是想生成一些几何图形并很好地渲染它,您可能可以在没有搅拌器的情况下导出网格并使用外部渲染器(如 POVRay、yafaray、mitsuba、luxrender 等))
  • 我的主要目标是以编程/程序/数字/非交互方​​式创建模型,而不是使用鼠标。此外,我的模型需要在尺寸上准确,所以我很可能会使用三角计算来正确定位顶点、边等。

标签: python blender 3d-model


【解决方案1】:

有一个实验选项允许您将自己的 blender 副本构建为 python 模块,以便像标准 python 模块一样使用。 This page 是您将获得的所有帮助。

我建议您将您的 python 脚本编写为一个搅拌器脚本,以便在搅拌器中运行。您可以使用bpy.ops.wm.save_as_mainfile(filepath="path/to/myfilename")自动保存文件

您可以在 blender 中运行一个脚本,该脚本会生成一个 blender 文本块,然后您可以将其作为 python 脚本运行、全选、删除并重新运行。如果您更喜欢外部文本编辑器的功能,您还可以轻松地将外部文件作为文本块重新加载到搅拌机中。

您也可以使用您的计划自己生成脚本,然后您可以使用带有 blender -b -P myscript.py 的搅拌机运行该脚本,-b 选项告诉搅拌机在没有 GUI 的情况下在后台运行。

【讨论】:

    【解决方案2】:

    您可以从任何应用程序(C++、Python 应用程序甚至命令行)启动一个新的 Blender 进程,并告诉新进程运行一个脚本文件(用 Python 编写)。此脚本将生成您的几何图形,然后可以将新场景保存到 blend 文件中。

    要启动新的 Blender 进程并强制它执行脚本,请使用:
    blender.exe --background --python "c:\path to\script.py"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 1970-01-01
      相关资源
      最近更新 更多