Читать интересную книгу Написание скриптов для Blender 2.49 - Michel Anders

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8 9 10 ... 58

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

Соглашения

В этой книге Вы найдете множество стилей текста, которые определяют различные типы информации. Вот некоторые примеры этих стилей, и объяснения их значений.

Кодовые слова в тексте показаны следующим образом: "файл на Питоне с мешевыми строительными блоками называется mymesh.py, так что первая часть нашего кода содержит следующий оператор import."

Блок кода вставляется следующим образом:

def event(evt, val):

    if evt == Draw.ESCKEY:

       Draw.Exit() # exit when user presses ESC

    return

Когда мы хотим привлечь ваше внимание к конкретной части блока кода, важные строки или пункты показываются жирным шрифтом:

def error(text):

   Draw.Register(lambda:msg(text), event, button_event)

Любая командная строка ввода или вывода пишется следующим образом:

blender -P /full/path/to/barchart.py

Новые условия и важные слова показываются жирным шрифтом. Слова, которые Вы видите на экране в меню или в диалогах, например, появляются в тексте подобно этому: "Затем мы можем применить эту группу вершин к параметру плотности на дополнительной панели контекста частиц, чтобы управлять эмиссией."

Предупреждения или важные примечания появляются в блоке, подобном этому.

Подсказки и хитрости появляются вот так.

Обратная связь с читателем

Обратная связь с нашими читателеми всегда приветствуется. Сообщите то, что Вы думаете об этой книге - что Вам понравилось или может быть не понравилось. Обратная связь с Читателем важна для нас, чтобы разрабатывать издания, от которых Вы действительно получите максимальную отдачу.

Для общей обратной связи, просто пошлите эл.почту на [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.

Другая проблема API Питона 2.49  - то, что многие из действий пользователя, которые можно выбрать для выполнения над объектом, не имеют эквивалента в API. Настройка простых параметров, как например, угла камеры или выполнение вращения любого объекта является легким и даже, например, применение модификатора subsurface к мешу - просто несколько строк кода, но обыкновенные действия, особенно над меш объектами, как например, подразделение выбранных рёбер или выдавливание граней, отсутствуют в API и должны быть осуществлены разработчиком скрипта.

Эти проблемы заставили разработчиков Блендера полностью переработать API Питона Блендера для версии 2.5, уделяя особое внимание паритету (то есть, все возможное в Блендере должно быть возможно, используя API Питона). Это означает, что во многих ситуациях, должно быть значительно легче будет получить те же результаты в Блендере 2.5.

Наконец, Питон используется в большем количестве мест, чем просто в автономных скриптах: PyDrivers и PyConstraints позволяют нам управлять путём, которым ведут себя объекты Блендера, и мы столкнемся с ними в последующих главах. Питон также позволяет нам писать заказные текстуры и шейдеры как часть системы нодов, что мы увидим в Главе 7, Создание заказных шейдеров и текстур.

1 2 3 4 5 6 7 8 9 10 ... 58
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Написание скриптов для Blender 2.49 - Michel Anders.

Оставить комментарий