Мы начинаем с определения списка углов. Каждый из восьми углов представлен кортежем трех чисел - это координаты x, y, и z. Затем мы определяем список кортежей, задающих грани куба. Стороны куба являются квадратами, так что каждый кортеж содержит четыре целых - каждое целое является индексом в списке углов. Важно получить эти индексы в правильном порядке: если мы захотим указать первую сторону как (0,1,3,2), мы получим грань, искривленную, как галстук-бабочка.
Теперь мы можем определить Меш-объект и назвать его Cube (выделенная часть в предыдущем коде). Как отмечено раньше, вершины Меш-объекта доступны как список с именем verts. Он имеет метод extend(), который может взять список кортежей, представляющих позиции вершин, чтобы определить дополнительные объекты MVert в нашем Меше.
Точно так же мы можем добавить дополнительные грани к списку граней faces Меш-объекта, вызывая его метод extend() со списком кортежей. Поскольку все рёбра куба являются рёбрами граней, нет необходимости добавлять какие-либо рёбра отдельно. Это произойдёт автоматически, когда мы применяем extend() к списку граней.
Меш-объект, который мы определили, теперь можно вставить в объект Блендера, который может быть добавлен к активной сцене. Заметьте, что вполне допустимо иметь Меш-объект и Объект Блендера с одинаковым именем (Cube в данном случае), поскольку различные типы объектов в Блендере имеют отдельные пространства имён. В графическом интерфейсе пользователя Блендера имена всегда имеют двухбуквенный префикс, чтобы различать их. (например, LA для лампы, ME для меша, или OB для объекта Блендера)
При создании Меш-объекта много внимания нужно уделять всем добавляемым вершинам, рёбрам и граням, и правильно их нумеровать. Это только вершина айсберга при создании мешей. В Главе 2, Создание и Редактирование Объектов, мы увидим, что прячется под водой.
Распространение скриптовВ предыдущих секциях мы видели, что для того, чтобы внедрить наш скрипт в систему меню и систему помощи Блендера, мы должны расположить скрипт в каталоге .blender\scripts. Полностью интегрированный скрипт может быть большим преимуществом, но этот метод имеет очевидный недостаток: человек, который хочет использовать этот скрипт должен разместить его в правильном каталоге. Это может быть проблемой, если этот человек не знает, где расположен этот каталог или не имеет разрешения устанавливать скрипты в этом каталоге. Эту последнюю проблему можно преодолеть, настроив альтернативный каталог скриптов в Пользовательских Настройках, но не каждый может быть настолько технически подкованным.
Жизнеспособной альтернативой этому может быть распространение скриптов в виде текста внутри .blend файла. .blend файл может быть сохранен со скриптом, ясно видимым в главном окне, и одна из первых строк комментария скрипта, вероятно, может выглядеть так “Press ALT-P to start this script" (нажмите ALT-P для запуска скрипта). Этим способом скрипт сможет использовать любой, кто знает, как открывать .blend файл.
Дополнительным преимуществом является то, что при этом можно легко упаковать дополнительные ресурсы в тот же .blend файл. Например, скрипт может использовать определенные материалы или текстуры, или Вы можете захотеть включить образец результата вашего скрипта. Единственная вещь, которая очень трудна - распространять таким образом модули Питона. Вы можете использовать оператор import, чтобы получить доступ к другим текстовым файлам, но это может вызвать проблемы (смотри Приложение B). Если у вас есть много кода и он организован в модулях, Вам и вашим пользователям, вероятно, будет лучше, если Вы станете распространять всё в виде ZIP-файла с ясными инструкциями, куда нужно распаковывать этот ZIP-файл.
Для Pynodes (или динамических нодов, смотри Главу 7) у вас нет выбора. Pynodes могут ссылаться только на код Питона, содержащийся в текстах внутри .blend файла. На самом деле это не является ограничением, так как эти Pynodes - неотъемлемая часть материала, а материалы Блендера могут распространяться только внутри .blend файла. Когда эти материалы привязаны или добавлены к связанным с ними нодами, то любые тексты, ассоциированные с Pynodes, привязываются или добавляются также, полностью скрываясь от конечного пользователя через материал, который на самом деле создаётся.
API Блендера