Написание скриптов для 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.