Примеры кода
Введение в написание скриптов на Питоне для Блендера 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 в контексте Ламп покажет следующий текст:
Читать дальше