Написание скриптов для Blender 2.49
Шрифт:
Что из них предпочитать - дело вкуса. Модуль bpy будет единственным способом доступа к данным в ожидаемом Блендере 2.5, но изменения в Блендере 2.5 проникают глубже, чем просто такой способ доступа к данным, так не обманитесь поверхностным сходством имени модулей!
Доступ к системе окон Блендера предоставлен модулем Blender.Draw. Здесь Вы найдёте классы и функции для определения кнопок и управляющих меню, и пути взаимодействия с пользователем. Типы графических элементов, которые Вы можете отобразить, используя модуль Draw, ограничены обычно используемыми, и модификации невозможны.
Более передовые функции предоставлены в модуле Blender.BGL, который дает Вам доступ фактически ко всем функциям и константам OpenGL, позволяющим Вам рисовать на экране почти всё, что угодно, и позволить взаимодействовать с пользователем множеством различных способов.
Наконец, есть множество модулей, включающих различную функциональность, которые не подходят для любой из предыдущих категорий:
• Blender.Library: Блендер позволяет Вам добавлять (то есть, импортировать) или связывать (link) объекты из другого .blend файла. Можно посмотреть на это по-другому - .blend файл может действовать как библиотека, где Вы можете сохранять ваши активы. И поскольку почти всё является объектом в Блендере, почти любой актив может быть сохранен в такой библиотеке, будь это модели, лампы, текстуры, или даже полные сцены. Модуль Blender.Library предоставляет авторам скриптов средства получить доступ к этим библиотекам.
• Blender.Mathutils и Blender.Geometry: Эти модули содержат, кроме прочего, классы Векторов (Vector) и Матриц (Matrix) со связанными с ними функциями, для применения всех видов векторной алгебры к объектам Блендера. С функциями, приведенными в этих модулях, Вы будете способны вращать или сдвигать координаты ваших объектов или вычислять угол между двумя векторами. Предусмотрено намного больше удобных функций, и они, часто неожиданно, будут появляться в примерах в этой книге. Не беспокойтесь, мы приведём объяснения, где это будет необходимо, для людей, находящихся не в своей тарелке от векторной математики.
• Blender.Noise: Шум (Noise) используется в генерации всех (очевидно) случайных образцах, которые формируют основу многих процедурных текстур в Блендере. Этот модуль дает доступ к тем же программам, которые обеспечивают шум для этих текстур. Это может быть полезным не только в генерации ваших собственных текстур, но можно, например, использовать при произвольном размещении объектов, или осуществлении немного шаткого пути камеры, чтобы добавить реализма к вашей анимации.
• Blender.Registry: данные в скриптах, неважно, локальные или глобальные, не сохраняются при выходе из скрипта. Это может быть очень неудобным, например, если Вы хотите сохранить пользовательские настройки для вашего заказного скрипта. Модуль Blender.Registry обеспечивает способ сохранять и извлекать постоянные данные. Тем не менее, он не обеспечивает никаких средств сохранения этих данных на диске, так что это постоянство действует только в течение сеанса Блендера.
Перевод:
Этот модуль обеспечивает минимальный набор вспомогательных функций и данных. Его цель в том, чтобы избегнуть потребности в стандартном модуле Питона os и его подмодуле os.path, но все же, он предназначен только для самых простых случаев. Как мы аргументировали раньше, обычно рекомендуется устанавливать полный дистрибутив Питона, который, кроме прочего, включает модули os и os.path, они дадут Вам доступ к более широкому диапазону функциональности. Следовательно, мы не используем модуль Blender.sys в этой книге.
• Blender.Types: Этот модуль предоставляет константы, которые могут быть использованы для проверки типа объектов. Встроенная функция Питона type, возвращает тип своего аргумента. Это позволяет очень легко проверить объект данного типа по сравнению с одной из констант в этом модуле. Если мы хотим убедиться что некий объект - это объект Curve , мы можем, например, сделать это так:
Итог
В этой главе, мы увидели как расширять Блендер с помощью полного дистрибутива Питона и познакомились со встроенным редактором. Это позволило нам написать скрипт, хотя и простой, полностью интегрировать его в меню скриптов Блендера и систему помощи. Мы охватили множество моментов, а именно:
• Что возможно и не возможно выполнить с помощью Питона в Блендере
• Как проинсталлировать дистрибутив Питона
• Как использовать встроенный редактор
• Как запускать скрипт на Питоне
• Как изучать встроенные модули
• Как написать простой скрипт, который добавляет объект в сцену
• Как зарегистрировать скрипт в меню скриптов Блендера
• Как документировать ваш скрипт дружественным к пользователю способом
• Как распространять скрипт
В следующей главе мы сделаем шаг в направлении создания и редактирования сложных объектов, а также графического интерфейса пользователя.
2
Создание и редактирование объектов
В некотором смысле, меши - наиболее важный тип объектов в 3D-приложении. Они лежат в основе большинства видимых объектов и являются сырьём, которое может быть оснащено (rigged) и анимировано в дальнейшем. В этой главе речь идет о создании мешей и способах манипулировать меш-объектом, как целиком, так и его индивидуальными сущностями, из которых он состоит - вершинами, рёбрами и гранями.
В этой главе вы изучите:
• Как создавать конфигурируемые меш-объекты
• Как разрабатывать графический интерфейс пользователя
• Как заставить ваш скрипт сохранять выбранные пользователем настройки для последующего многократного использования
• Как выбирать вершины и грани в меше
• Как сделать один объект родителем другого
• Как создавать группы
• Как модифицировать меши