Выбрать главу

Python module os in special os.path, though it is only

meant for the simplest cases.

Перевод:

Этот модуль обеспечивает минимальный набор вспомогательных функций и данных. Его цель в том, чтобы избегнуть потребности в стандартном модуле Питона os и его подмодуле os.path, но все же, он предназначен только для самых простых случаев. Как мы аргументировали раньше, обычно рекомендуется устанавливать полный дистрибутив Питона, который, кроме прочего, включает модули os и os.path, они дадут Вам доступ к более широкому диапазону функциональности. Следовательно, мы не используем модуль Blender.sys в этой книге.

Blender.Types: Этот модуль предоставляет константы, которые могут быть использованы для проверки типа объектов. Встроенная функция Питона type(), возвращает тип своего аргумента. Это позволяет очень легко проверить объект данного типа по сравнению с одной из констант в этом модуле. Если мы хотим убедиться что некий объект - это объект Curve , мы можем, например, сделать это так:

if type(someobject) == Blender.Types.CurveType :

   … сделать что-то, доступное только для объектов Curve …

 Итог

В этой главе, мы увидели как расширять Блендер с помощью полного дистрибутива Питона и познакомились со встроенным редактором. Это позволило нам написать скрипт, хотя и простой, полностью интегрировать его в меню скриптов Блендера и систему помощи. Мы охватили множество моментов, а именно:

• Что возможно и не возможно выполнить с помощью Питона в Блендере

• Как проинсталлировать дистрибутив Питона

• Как использовать встроенный редактор

• Как запускать скрипт на Питоне

• Как изучать встроенные модули

• Как написать простой скрипт, который добавляет объект в сцену

• Как зарегистрировать скрипт в меню скриптов Блендера

• Как документировать ваш скрипт дружественным к пользователю способом

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

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

2

Создание и редактирование объектов

В некотором смысле, меши - наиболее важный тип объектов в 3D-приложении. Они лежат в основе большинства видимых объектов и являются сырьём, которое может быть оснащено (rigged) и анимировано в дальнейшем. В этой главе речь идет о создании мешей и способах манипулировать меш-объектом, как целиком, так и его индивидуальными сущностями, из которых он состоит - вершинами, рёбрами и гранями.

В этой главе вы изучите:

• Как создавать конфигурируемые меш-объекты

• Как разрабатывать графический интерфейс пользователя

• Как заставить ваш скрипт сохранять выбранные пользователем настройки для последующего многократного использования

• Как выбирать вершины и грани в меше

• Как сделать один объект родителем другого

• Как создавать группы

• Как модифицировать меши

• Как запускать Блендер с командной строки и рендерить в фоновом режиме

• Как обрабатывать параметры командной строки

Creepy crawlies (ползучий ужас) - графический интерфейс пользователя для конфигурирования объектов

Иллюстрирование примером создания единственной копии одноразового объекта Блендера (подобно сделанному нами в примере "hello world" в Главе 1, Расширение Блендера с помощью Питона), может быть хорошим упражнением по программированию, но скрипт создания объекта действительно вступает в свои права, когда встроенных методов, таких, как например, копирование объектов, или модификаторов, как например, модификатор array - не достаточно.

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

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