Можно ли программно создать файл Blender (.blend) с помощью Python?

Я знаю, что Python является стандартным языком сценариев для использования в Blender, но я не нашел способа создать файл .blend с помощью Python.

Я хочу не использовать python внутри блендера, а скорее «использовать блендер (libs?) Внутри python».

Мой запланированный рабочий процесс будет следующим:

  1. Определите некоторые параметры для моей модели;
  2. Определите «генеративный рецепт» для создания соответствующих объектов Blender, которые будут сохранены в файл;
  3. Создайте скрипт Python для хранения параметров и процедур. Когда скрипт запускается, в той же папке создается какой-то файл .blend;
  4. Используйте Blender для визуализации модели. Если модель нужно изменить, внесите изменения в скрипт, снова запустите его и снова откройте.

person heltonbiker    schedule 27.04.2014    source источник
comment
Да, это возможно. Как выглядит blend-файл? Независимо от того, текстовый это файл или двоичный, вы можете создать любой выходной файл с помощью Python. Возникает вопрос: могут ли вам помочь какие-либо подходящие библиотеки (например, XML)?   -  person Jonathon Reinhart    schedule 27.04.2014
comment
@JonathonReinhart должен ли я был упомянуть, что мой генеративный рецепт включает высокоуровневые команды блендера для создания объектов?   -  person heltonbiker    schedule 27.04.2014
comment
@heltonbiker как насчет чего-то вроде этого: (общий) скрипт Python, который копирует пустой файл .blend, запускает Python-скрипт Blender (открывает подпроцесс Python, вызывающий blender из командной строки (без графического интерфейса)) для использования генеративного рецепта и сохранения файл ?   -  person George Profenza    schedule 27.04.2014
comment
@heltonbiker Какова твоя главная цель? (Например, если вы просто хотите сгенерировать некоторую геометрию и красиво ее визуализировать, вы, вероятно, можете экспортировать сетку без блендера и использовать внешний рендерер (например, POVRay, yafaray, mitsuba, luxrender и т. д.))   -  person George Profenza    schedule 27.04.2014
comment
Моя главная цель - создать модель программно/процедурно/численно/неинтерактивно, а не с помощью мыши. Кроме того, моя модель должна быть точной по размерам, поэтому я, скорее всего, буду использовать тригонометрические вычисления, чтобы правильно расположить вершины, ребра и тому подобное.   -  person heltonbiker    schedule 28.04.2014


Ответы (2)


Вы можете запустить новый процесс Blender из любого приложения (приложения C++, Python или даже из командной строки) и указать новому процессу запустить файл сценария (написанный на Python). Этот скрипт сгенерирует вашу геометрию, а затем сможет сохранить новую сцену в файл blend.

Чтобы запустить новый процесс Blender и заставить его выполнить сценарий, используйте:
blender.exe --background --python "c:\path to\script.py"

person Val    schedule 23.03.2015

Существует экспериментальный вариант, который позволяет вам создать собственную копию блендера в качестве модуля Python для использования в качестве стандартного модуля Python. Эта страница посвящена всей помощи, которую вы можете получить.

Я бы порекомендовал вам написать свой скрипт на Python как скрипт блендера, который будет запускаться внутри блендера. Вы можете автоматизировать сохранение файла с помощью bpy.ops.wm.save_as_mainfile(filepath="path/to/myfilename")

Вы можете запустить скрипт внутри блендера, который генерирует текстовый блок блендера, который затем можно запустить как скрипт Python, выбрать все, удалить и запустить повторно. Вы также можете легко перезагрузить внешний файл как текстовый блок в блендере, если вы предпочитаете внешний текстовый редактор для его функций.

Вы также можете использовать свой план для самостоятельного создания сценария, который затем можно запустить с помощью блендера с параметром blender -b -P myscript.py -b, который указывает блендеру работать в фоновом режиме без графического интерфейса.

person sambler    schedule 28.04.2014