Написание скриптов для Blender 2.49 - [3]
Для общей обратной связи, просто пошлите эл.почту на [email protected], и упомяните название книги в теме вашего сообщения.
Если есть книга, которая Вам нужна, и Вы хотели бы увидеть, как мы её опубликовали, пожалуйста пошлите нам заметку в SUGGEST A TITLE (Предлагаем издание) в www.packtpub.com или эл.почте [email protected].
Если существует тема, в которой вы являетесь экспертом и Вы заинтересованы в написании или содействии написанию книги об этом, смотрите наше руководство автора по адресу www.packtpub.com/authors.
Теперь, когда Вы - гордый владелец книги Packt, у нас есть множество вещей Вам в помощь, чтобы Вы могли получить максимум от вашего приобретения.
Посетите https://www.packtpub.com//sites/default/files/downloads/0400_Code.zip, чтобы непосредственно загрузить код примера. Загружаемые файлы содержат инструкции о том, как их использовать.
Хотя мы заботились о гарантировании точности нашего содержимого, ошибки случаются. Если Вы найдёте ошибку в одной из наших книг - может быть ошибку в тексте или в коде, мы будем благодарны, если Вы сообщите нам об этом. Сделав так, Вы можете оградить других читателей от расстройства и поможете нам улучшить последующие версии этой книги. Если Вы найдёте любые опечатки, пожалуйста сообщите о них, посетив http://www.packtpub.com/support, выбрав вашу книгу, нажмите на ссылку let us know, и введите детали ваших опечаток. Как только ваши опечатки будут проверены, ваше сообщение будет принято и опечатки будут загружены на наш веб-сайт или добавлены к любому списку существующих опечаток, в секции Errata этого издания. Любые существующие опечатки можно увидеть, выбрав ваше издание в http://www.packtpub.com/support.
1
Расширение Блендера с помощью Питона
Прежде, чем мы начнём разработку скриптов в Блендере, мы во всяком случае, должны удостовериться, что у нас есть все необходимые инструменты. После этого мы должны познакомиться этими инструментами, чтобы мы могли с уверенностью использовать их. В этой главе, мы посмотрим на:
• Что можно и чего нельзя выполнить с помощью Питона в Блендере
• Как установить полный дистрибутив Питона
• Как использовать встроенный редактор
• Как запускать скрипты на Питоне
• Как изучать встроенные модули
• Как писать простой скрипт, который добавляет объект в сцену Блендера
• Как регистрировать скрипт в меню скриптов Блендера
• Как документировать ваш скрипт в дружественном к пользователю виде
• Как распространять скрипт
С таким количеством пунктов кажется нужно очень много изучить, но к счастью, кривая обучения не такая уж крутая, как она могла бы показаться. Давайте просто по-быстрому наберём несколько строк на Питоне, чтобы разместить простой объект в нашей сцене Блендера, просто, чтобы показать что мы можем, перед тем, как мы уйдём с головой в более глубокие воды.
1. Запустите Блендер с пустой сценой
2. Откройте интерактивную консоль Питона (посмотрите на скриншот вверху, чтобы увидеть, где её найти).
3. Наберите следующие строки (заканчивайте каждую с помощью Enter/Return).
>mesh = Mesh.Primitives.Monkey()
>Scene.GetCurrent().objects.new(mesh,'Suzanne')
>Window.RedrawAll()
Вуаля! Это - все, что нужно для добавления в сцену Сюзанны, знаменитого талисмана Блендера.
API Блендера
Почти всё в Блендере доступно из скриптов Питона, но есть некоторые исключения и ограничения. В этом разделе мы проиллюстрируем, что это в точности означает, и какие заметные возможности не доступны через Питон (например, динамика жидкостей).
API Блендера состоит из трех основных областей интереса:
• Доступ к объектам Блендера и их свойствам, например объект Camera (Камера) и его свойство angle (угол) или объект Scene (Сцена) и его свойство objects (объекты)
• Доступ к операциям для выполнения, например добавление новой Камеры или рендеринг изображения
• Доступ к графическому интерфейсу пользователя, используя простое построение из блоков или взаимодействие с системой событий Блендера
Есть также несколько утилит, которые не попали ни в одну из этих категорий, так как они касаются абстракций, не имеющих прямого отношения к объектам Блендера, видимым конечному пользователю, например функции, манипулирующие векторами и матрицами.
В совокупности это означает, что мы можем достичь многого из скриптов на Питоне. Мы можем:
• Создавать новый объект Блендера любого типа, включая камеры, лампы, меши, и даже сцены
• Взаимодействовать с пользователем с помощью графического интерфейса
• Автоматизировать общие задачи в Блендере, такие как, рендеринг
• Автоматизировать задачи поддержки вне Блендера, как, например, очистка каталогов
• Манипулировать любым свойством объекта Блендера, на который можно воздействовать с помощью API
Это последнее утверждение показывает одну из текущих слабостей API Блендера: любое свойство объекта, который разработчики добавляют Блендер в коде на С, должна предусматриваться отдельно в API на Питоне. Нет автоматического преобразования из внутренних структур в доступного на Питоне интерфейса, а это означает, что усилия должны дублироваться и это может привести к пропущенной функциональности. Например, в Блендере 2.49 невозможно задавать моделирование жидкостей из скриптов. Хотя возможно настроить систему частиц, нет возможности установить поведенческие характеристики системы частиц boids.