Читаем Написание скриптов для Blender 2.49 полностью

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

Это означает, что очень высокоуровневые или сложные задачи, как например, добавление модификатора subsurface на объект Меша или отображение диалога выбора файлов, так же просто, как написание одной строки кода, тогда как важнейшие и, видимо, простые функции, такие как подразбиение (subdividing) ребра или выбор рёберного цикла не доступны. Это не означает, что эти задачи нельзя выполнить, но мы должны программировать их самостоятельно. Так много примеров в этой книге ссылается на модуль, называемый Tools, который мы разработаем в следующих главах, и который будет содержать полезные инструменты от выдавливания граней до замыкания циклов. Где это необходимо и интересно, мы осветим код этого модуля, но, главным образом, он предназначен иметь запас всего того кода, который мог бы увести нас от наших целей.

Следующие разделы дают короткий и очень поверхностный обзор того, что доступно в API Блендера. Множество модулей и утилит будут занимать важное место в следующих главах, когда мы будем разрабатывать практические примеры. Этот обзор предназначен в качестве средства, которое поможет вам начать работу, если вы хотите узнать о некоторых функциональных возможностях и не знаете, где искать в первую очередь. Это далеко не полный список документации по API Блендера. Для этого, проверьте наиболее последнюю версию документации онлайн-API. Вы можете найти ссылку в Приложении A Ссылки и Ресурсы.

Модуль Blender

Модуль Blender служит в качестве контейнера для большинства других модулей и обеспечивает функциональность доступа к системной информации и выполнению общих задач.

Например, такая информация, как версия Блендер, которую вы используете, может быть извлечена с помощью функции Get():

import Blender

version = Blender.Get('version')

Включение всех внешних связанных файлов в .blend файл (в Блендере называемое упаковкой) или сохранение вашего текущего сеанса Блендера в .blend файл - другие примеры функциональности, выполняемой в модуле Блендера верхнего уровня:

import Blender

Blender.PackAll()

Blender.Save('myfile.blend')

Объекты Блендера

Каждый тип объекта Блендера (Object, Mesh, Armature, Lamp, Scene и так далее), имеют связанный с ним модуль, который является подмодулем модуля Blender верхнего уровня. Каждый модуль поставляет функции для создания новых объектов и поиска объектов данного типа по имени. Каждый модуль имеет также определённый класс с тем же именем, который осуществляет функциональность, связанную с объектом Блендера.

Заметьте, что в Блендере есть сущности, не только непосредственно видимые на вашей сцене, как например, меши, лампы, или камеры - объекты, но также материалы, текстуры, системы частиц, и даже IPO, действия (Actions), миры, и сцены.

Множество других видов данных в Блендере - не являются Объектами в понимании Блендера (Вы не можете добавить их из другого .blend файла или перемещать их по вашей сцене), но это объекты в понимании Питона. Например, вершины, рёбра, и грани внутри меша выполнены в виде классов: Blender.Mesh.MVert, Blender.Mesh.MEdge, и Blender.Mesh.MFace соответственно.

Множество модулей также имеют свои собственные подмодули; например Модуль Blender.Scene предоставляет доступ к контексту рендера посредством модуля Blender.Scene.Render. Между прочим, этот модуль определяет класс RenderData, который позволяет Вам рендерить неподвижное изображение или анимацию.

Таким образом, с тем, что мы теперь знаем, можно нарисовать два немного различных родословных дерева объектов Блендера.

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

Конечно, диаграмма выше сильно упрощена, так как мы пропустили некоторые менее важные объекты, и так как она иллюстрирует только единственный тип отношений. Конечно, существует намного больше типов отношений в сцене, такие как, например, отношения родитель-ребенок или ограничения (constraints).

Мы можем сопоставить предшествующую диаграмму со следующей, которая показывает в каком модуле какой тип объекта (класс) определён:

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных