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

Шрифт
Интервал

стр.



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

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

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

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

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

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

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

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

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

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


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

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

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

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


Создание интерфейса пользователя

Проектирование, строительство, и тестирование графического пользовательского интерфейса могут быть пугающими задачами, но API Блендера предоставляет нам инструменты, позволяющие сделать это намного легче. Модуль Blender.Draw  обеспечивает простые, но часто используемые и легко конфигурируемые компоненты для быстрого определения пользовательского интерфейса. Модуль Blender.BGL дает доступ ко всем гайкам и болтам, чтобы проектировать графический пользовательский интерфейс на пустом месте. Мы будем главным образом использовать первый, потому что в нём есть почти все, в чём мы нуждаемся, но мы также дадим пример последнего, чтобы сформировать простое сообщение об ошибке. Наш главный пользовательский интерфейс будет похож на это:



Когда мы вызываем наш скрипт из Меню Add (обычно доступно на панели меню сверху экрана или по нажатию Пробела в окне 3D-вида), появится меню как на иллюстрации, и пользователь может подбирать параметры по его или её вкусу. По нажатии кнопки OK, скрипт создаст насекомо-подобный меш. Из появившегося меню также можно выйти, нажав Esc, тогда скрипт завершится, не не создавая меш.


Создание жуков — требует некоторой сборки

Наша миссия в том, чтобы строить простые существа из небольших образцов строительных блоков, которые могут сцепляться вместе. Схема нашего скрипта такая:

1. Импортировать строительные блоки для наших существ.

2. Отобразить пользовательский интерфейс

3. Собрать меш существа из строительных блоков так, как определил пользователь.

4. Вставить меш как объект в сцену.

Мы пройдём через скрипт постепенно, показывая важные части в подробностях. (Полный скрипт доступен как creepycrawlies.py.) Первый шаг включает создание частей тела, которые пригодны для сборки вместе. Это означает, что мы должны смоделировать эти части в Блендере, определяя подходящее соединение и отмечая это соединение как группу вершин. Затем мы экспортируем эти меши в виде кода на Питоне, используя скрипт, с которым мы столкнёмся снова в следующей главе, поскольку она имеет дело с группами вершин.

Сейчас мы используем этот сгенерированный код на Питоне просто как модуль, содержащий несколько списков вершин, определяющих каждую часть тела. Мы должны убедиться, что этот модуль находится где-нибудь в пути поиска Питона, например, .blender\scripts\bpymodules будет логичным выбором, или это может быть альтернативный пользовательский каталог скриптов. Файл на Питоне с мешевыми строительными блоками называется mymesh.py, так что первая часть нашего кода содержит следующий оператор


стр.