Скрипты в Blender. Модуль Blender

В прошлом сообщении мы научились открывать интерактивное окно Python в Blender.
Как было упомянуто в конце, были импортированы два модуля bpy и Blender.
Модуль bpy упоминается в API как эксперементальный, поэтому начнем изучение с модуля Blender.
Как написано в справке - Blender - основной модуль.
Этот модуль содержит определенные функции и переменные. Давайте познакомимся с ними и попробуем некоторые из них прямо в консоли.
Функции модуля Blender:
Set(request, data)
с ее помощью можно установить опции и настройки в Blender.
request - строковый параметр - название опции. Посмотрим какие у него могут быть значения.
'curframe': текущий фрейм анимации. Давайте попробуем изменить текущий фрейм(кадр) на второй (обычно по-умолчанию установлен фрейм 1). Введем в консоли следующую команду:
Blender.Set('curframe',2)
Посмотрите на индикатор текущего фрейма - он должен измениться на 2.
'compressfile' : сжимать файл при записи (используйте логические значение True/False). То есть, если мы хотим указать, чтобы при сохранении файл компрессировался, надо дать команду
Blender.Set('compressfile',True)
Дальнейшие параметры мы пока не будем устанавливать через консоль, просто опишу их.
Откройте меню File и вы увидите что галочка опции Compress File теперь установлена.
'yfexportdir': директория для размещения временного xml файла рендер-модуля yafray
'fontsdir': директория шрифтов
'texturesdir': директория текстур
'seqpluginsdir': директория плагина сиквенсера (генератора последовательности)
'renderdir': дирекория по-умолчанию для вывода рендеринга
'soundsdir': директория звуков
'tempdir': директория для хранения временного файла
'mipmap' : использовать мипмэппинг (ускорение отображения текстуры) в 3D виде (логические значения True/False).

Следующая функция модуля Blender - это Get.
Get(request)
с ее помощью можно получить текущие параметры и настройки Blender. Она возвращает или значение параметра или None, если такой не найден.
request - как и в функции Set это строковый параметр. Посмотрим на его возможные значения.
'curframe': текущий кадр анимации. Введите в консоли:
Blender.Get('curframe')
и нажмите Ввод. Будет выведен номер текущего кадра. В нашем случае это будет 2, так как мы его устанавливали в это значение функцией Set.
'curtime' : текущее время анимации.
'compressfile' : значение опции сжатия файла при сохранении, возвращает 0 если не установлена или 1 если опция установлена.
'staframe': выводит номер стартового кадра анимации.
'endframe': выводит номер последнего кадра анимации.
'rt': значение опции кнопки 'rt' для отладки
'filename': имя последнего прочитанного или записанного файла.
'homedir': домашнаяя директория Blender.
'datadir' : путь к директории где скрипты должны сохранять или получать свои файлы данных, включая сохраненные конфигурации (может быть None, если не найдена)
'udatadir': путь к определенной пользователем директории данных. Значение может быть недоступно (None если не найдена), но пользователи, которые определяют параметр uscriptsdir могут размещать там свои собственные скрипты и данные скриптов, которые не будут удалены, если вы уставите новую версию Blender. Поэтому рекомендуется сначала проверять - существует ли эта директория и использовать ее, если это возможно.
'scriptsdir': путь к главной директории, где храняться все скрипты.
'uscriptsdir': путь к определяемой пользователем директории с его скриптами. (*)
'icondir': путь к файлам иконок для визуального оформления (темы) Blender.
'yfexportdir': путь к определяемой пользователем директории для экспорта yafray. (*)
'fontsdir': путь к определенной польователем директории шрифтов. (*)
'texturesdir': путь к определенной пользователем директории для текстур. (*)
'texpluginsdir': путь к определяемой пользователем директории с текстурными плагинами. (*)
'seqpluginsdir': путь к определяемой пользователем директории плагинов секвенсера. (*)
'renderdir': путь к директории вывода рендеринга. (*)
'soundsdir': путь к звуковым файлам. (*)
'tempdir': путь для хранения временных файлов Blender. (*)
'mipmap' : Используется ли мипмэппинг в 3D виде. (*)
'version' : номер версии Blender.
Закончим изучение этой функции, введя в консоли Python команду:
Blender.Get('version')
и нажмем ввод. У меня вывелось значение 248. А у вас?
Примечание: параметры, помеченные звездочкой (*) можно установить вручную через окно настроек пользователя User Preferences и закладку File Paths .

Следующая функция GetPaths.
GetPaths(absolute=0)
Возвращает список файлов (путей к файлам), который использует текущий blend файл: (библиотеки, изображения, звуки, шрифты и т.д.)
Параметр у функции один:
absolute (булево значение) - если указать true, то пути будут указаны абсолютные. По-умолчанию - пути относительные.

Функция Load
Load(filename=None)
Загружает в Blender .blend файл или любой другой поддерживаемого формата.
Поддерживаемые форматы:
* Blender's .blend;
* DXF;
* Open Inventor 1.0 ASCII;
* Radiogour;
* STL;
* Videoscape;
* VRML 1.0 asc.
Параметры функции:
'filename'(строка) - путь к загружаемому файлу. Если 'filename' не указан или содержит подстроку '.B.blend', то загружается файл по-умолчанию .B.blend.
Предупреждения:
* загрузка нового .blend файла удаляет текущий файл из Blender. Для безопасности, эта функци сохраняет текущие данные как файл автосохранения во временной директории, используемой Blender при загрузке при создании нового файла.
* после вызова Load(blendfile), текущие данные в Blender теряются, включая Python данные. Все данные, определенные до этой функции стираются и при попытке их использовать выдадут NameError. Поэтому функция Blender.Load должна быть последней командой в скрипте, когда она используется для открытия .blend файлов.

Примечание: для всех типов файлов за исключением .blend файлов, эта функция работает только в интерактивном режиме, не в фоновом.

Следующая по логике функция - Save.
Save(filename, overwrite=0)
Сохраняет текущий .blend файл или экспортирует его в один из встроенных форматов.
Поддерживаемые форматы:

* Blender (.blend);
* DXF (.dxf);
* STL (.stl);
* Videoscape (.obj);
* VRML 1.0 (.wrl).

Параметры:
'filename'(строка) - имя сохраняемого файла.Оно должно содержать одно из поддерживаемых расширений иначе будет выведена ошибка.
overwrite (int (bool)) - если не равно 0, то если такой файл уже существует по указанному пути, он будет переписан (существование можно проверить другой функцией Blender.sys.exists). По-умолчанию если такой файл уже есть, то он не будет переписан (будет выдана ошибка).
Примечание:

* недопустима подстрока ".B.blend" в параметре'filename'.
* DXF, STL и Videoscape экспортируют только выбранные mesh-объекты.

Следующая интересная функция - Run
Run(script)
Выполняет указанный скрипт.
Параметры:
'script' (строка) - имя доступного текста Blender Text (используйте Text.Get(), чтобы получить полный список доступных текстов) или полный путь к Python скрипту в файловой системе.

Примечание: вызваный скрипт выполняется в своем собственном контексте (окружении) со своим глобальным словарем - как если бы он запускался из встроенного текстового редактора Blender или из меню скриптов.

Далее - UpdateMenus
UpdateMenus()
Обновить меню, в котором содержится список зарегистрированных скриптов. Эта функция просканирует папка, определенные по-умолчанию и определенные пользователем на наличие скриптов, имеющих специальные данные регистрации и сделает эти скрипты доступными через меню.

Примечание: только скрипты которые сохраняют другие новые скрипты в пользовательских или папках по-умолчанию должны вызывать эту функцию.

Функция UnpackAll
UnpackAll(mode)
Распаковывает все файлы в соответствии с указанным режимом.
Параметры:
* mode (целое число) - Режим Mode для распаковки. Должен быть одним из возможных значений, которые указаны в словаре Blender.UnpackModes.
Давайте посмотрим какие это могут быть режимы.
UnpackModes- это словарь констант с возможными значениями режима распаковки.
- USE_LOCAL - использовать файлы в текущей директории (создавать их если необходимо)
- WRITE_LOCAL - записывать файлы в текущую директорию (переписывать когда надо)
- USE_ORIGINAL - использовать файлы по их оригинальному месторасположению до упаковки (создавать когда необходимо)
- WRITE_ORIGINAL - записать файлы в оригинальное месторасположение до упаковки (переписать если необходимо)

Еще одна интересная функция SaveUndoState
SaveUndoState(message)
Установить undo состояние (предыдущее текущему).
Параметры:
message (строка) - Сообщение которое появится в Undo меню.

Функция Redraw()
Вызов Blender.Redraw() вызывает перерисовку всех 3D окон.

Функция PackAll()
Упаковывает все файлы.

Функция CountPackedFiles()
Возвращает число упакованных файлов.

Последняя полезная функция Quit
Quit()
Немедленно заканчивает работу Blender и закрывает его.
Предупреждение: осторожно используйте эту функцию. Для безопасности, при вызове этой функции текущий файл сохраняется в quit.blend и данные не могут потеряться.

Помимо функций, модуль Blender содержит и другие определения.
SpaceHandlers
Словарь констант типов обработки .
* VIEW3D_EVENT;
* VIEW3D_DRAW.

event,eventValue,link
они нам встретятся позже. Тогда о них и поговорим.

Последнее, о чем пока стоит упомянуть - mode
Введите в консоли Python команду
Blender.mode
и нажмите ввод
вам будет выведено значение текущего режима работы Blender. В моем случае 'interactive'. Возможные значения:
* 'interactive': обычный режим с открытым окном для ответов на запросы пользователя;
* 'background': Blender был или запущен в фоновом режиме 'blender -b файл_блендер' и закроется как только выполнится рендеринг или завершится скрипт если был запущен как 'blender -b файл_блендер -P скрипт'. Введите в командной строке операционной системы 'blender -h' чтобы узнать подробную информацию.
О режимах работы мы также поговорим попозже в других моих сообщениях.
Скрипты в Blender. Модуль Blender Автор: Maks Zinchenko дата: 10:29 Оценка: 5

Комментариев нет:

Все права защищены BlenderTech © 2008 - 2015
Поддержка BloggerSweetheme
Автор изображений для темы: friztin. Технологии Blogger.