Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

на главную

Жанры

Поделиться:

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода

Шрифт:

Примеры кода

Введение в написание скриптов на Питоне для Блендера 2.5x.

Третье издание, расширенное и обновлённое для Блендера 2.57

Thomas Larsson

14 Апреля 2011 г.

Перевод: Striver

Введение

С появлением у Блендера версий 2.5x, написание скриптов на Питоне получило новый уровень. Поскольку API Питона вплоть до Блендера 2.49 был не совсем полным и специальным, для API

в Блендере 2.5x обязались предоставить доступ из Питона ко всем возможностям Блендера, полным и систематическим путём.

Тем не менее, кривая изучения этого удивительного инструмента может быть очень крутой. Цель этих заметок в том, чтобы упростить процесс изучения, предоставив скрипты примеров, которые иллюстрируют различные аспекты написания скриптов на Питоне в Блендере.

Блендер все еще находится в стадии переработки, и API Питона еще не совсем стабильно. В течение нескольких месяцев, которые прошли между первыми двумя изданиями этих заметок, API Питона подвергалось капитальным переделкам, ломающим все старые скрипты. Различия между вторым изданием (для 2.54.0) и настоящим третьим изданием (для Блендера 2.57.0) значительно менее драматические. Тем не менее, даже незначительные изменения в API могут остановить работу скриптов. Скрипты в этих заметках протестированы на Блендере 2.57.0 rev 35147 (эта информация доступна на экране заставки).

Поскольку Блендер 2.57 разрекламирован как первый стабильный выпуск, есть некоторая надежда, что API сможет оставаться стабильным в будущем. Следовательно есть приличный шанс, что скрипты в этих заметках останутся рабочими долгое время, но гарантий на это нет.

Охваченные темы входят в следующие категории:

• Создание и манипуляция данными. Большинство программ не слишком полезны, так как созданы только для иллюстрации концепций.

• Свойства, определяемые пользователем.

• Интерфейсы пользователя: панели, кнопки и меню.

• Превращение скриптов в аддоны Блендера, которые могут автоматически загружаться при старте Блендера.

• Скрипты, распространяемые в составе нескольких файлов.

• Симуляции частиц, волос, ткани, мягких тел, дыма, жидкости, и т.п..

• Ноды.

Запуск скриптов

Каждый пример скрипта, за исключением многофайловых пакетов, является законченной программой. Он может быть скопирован и вставлен в Текстовый Редактор в Блендере, который можно найти на экране Scripting. Запуск скрипта осуществляется нажатием кнопки Run Script или нажатием Alt+P на вашей клавиатуре.

Скрипты также доступны как отдельные файлы на Питоне, расположенные в каталоге scripts, который должен был поставляться в комплекте с этим файлом. Просто загрузите файл Питона в Текстовый редактор Alt+O, и запустите его. Есть также пакетный скрипт, который выполняет множество других скриптов сразу. Это описано подробно в последнем разделе.

Предполагается что скрипты расположены в каталоге

~/snippets/scripts
, где ~ это ваш домашний каталог (например,
/home/thomas
в Linux,
C:/Documents and Settings/users/thomas
в Windows XP, или
C:/Users/thomas
в Windows Vista. Скрипты могут устанавливаться где угодно, но имена путей в некоторых файлах на Питоне (
batc.py
,
texture.py
, и
uvs.py
), нужно соответственно исправить. Питон сообщит Вам, если он не найдёт
важных файлов.

Возможно сделать пакетный запуск всех скриптов в каталогах

object
и
simulation
, загрузив и выполнив файл
batch.py
. Мы можем легко убедиться, что все скрипты работают правильно (или по крайней мере, что они не генерируют никаких ошибок), выполнив пакетный скрипт. Если случились проблемы, посмотрите в окно консоли для получения подробной информации.

Получение большего количества информации

Скрипты примеров — это только царапины на поверхности того, что можно сделать со скриптами на Питоне в Блендере 2.5x. Когда Вы начнёте писать ваши собственные скрипты, Вы несомненно захотите получить доступ к операторам и переменным, не упомянутым здесь. Есть несколько способов получить эту информацию.

• Главный источник информации — это Blender Python documentation. Эту страницу удобно открывать из меню Help » Python API Reference.

Есть также официальный урок по написанию скриптов здесь Использование встроенных подсказок (tooltips). Например, удержание курсора мыши над опцией This Layer Only в контексте Ламп покажет следующий текст:

Illuminates objects only on the same layer the lamp is on

Python: PointLamp.use_own_layer

(Освещение объектов только в том же слое, что включен у лампы)

Из этого мы заключаем, что эта опция доступна как

lamp.use_own_layer
, где lamp является данными активного объекта, то есть
lamp = bpy.context.object.data

• Также существуют подсказки при добавлении

Construct an UV sphere mesh

Python: bpy.ops.primitive_uv_sphere_add

(Сконструировать меш UV-сферы)

Это сообщает нам, вызов какого оператора нужен для добавления примитива меша UV-сферы.

• Как только оператор выполнен, он оставляет след в окне сообщений на экране Scripting

bpy.ops.mesh.primitive_uv_sphere_add(segments=32, rings=16,

size=1, view_align=False, enter_editmode=False,

location=(0, 0, 0), rotation=(0, 0, 0), layer=(True, False, False,

False, False, False, False, False, False, False, False, False, False,

False, False, False, False, False, False, False))

Когда мы добавляем UV-сферу из меню, у неё всегда есть 32 сегмента, 16 колец, и т.п.. Но несложно выяснить, как мы должны вызывать функцию, чтобы получить сферу с другими данными, например, 12 сегментов (segments), 6 колец (rings), радиус 3 (radius), и отцентрированную в (1, 1, 1):

bpy.ops.mesh.primitive_uv_sphere_add(

Комментарии:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6