Написание скриптов для Blender 2.49 | страница 6



• Как распространять скрипт

С таким количеством пунктов кажется нужно очень много изучить, но к счастью, кривая обучения не такая уж крутая, как она могла бы показаться. Давайте просто по-быстрому наберём несколько строк на Питоне, чтобы разместить простой объект в нашей сцене Блендера, просто, чтобы показать что мы можем, перед тем, как мы уйдём с головой в более глубокие воды.

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.