BPY plus – набор модулей, расширяющий Blender Python API. Это проект с открытым исходным кодом (Open Source), основанный на Blender bpy и расширяющий его несколькими новыми возможностями, а также упрощающий использование некоторых базовых функций.
Лицензия и использование
BPY Plus распространяется под лицензией GNU GPL 3.
BPY plus можно бесплатно использовать в любых проектах.
Поддержка
Проект развивается и дополняется новыми модулями, за счет поддержки на Patreon. Вы можете выбрать любой уровень. Специальный уровень BPY Plus support предоставляет вам специальную роль и цвет в Discord чате B3D Interplanety.
Модули BPY plus
- about – модуль с информацией о самом BPY plus.
- bounding – модуль для работы с ограничивающими формами.
- collections – модуль для упрощения работы с коллекциями
- color – модуль для работы с цветом.
- context – модуль для работы с контекстом
- file_system – модуль для работы с файловой системой.
- props – набор модулей, добавляющих дополнительные Property типы
- math – модуль с математическими функциями
- mesh – модуль для упрощения работы с объектами типа “mesh”
- names – модуль для упрощения работы с именами объектами.
- objects – модуль для упрощения работы с 3D объектами.
- output – модуль для получения выходных данных по рендеру
- render – модуль для работы с рендерингом.
- transform – модуль для работы с трансформациями 3D объектов.
- vse – модуль для упрощения работы с Video Sequence Editor (VSE)
Пример использования
Пакет bpy_plus должен быть размещен в той же директории, что и проект, в котором он будет использоваться. Скопируйте bpy_plus в директорию проекта. Теперь вы можете импортировать модули bpy_plus обычным образом:
1 |
from bpy_plus import * |
и далее вызывать нужный функционал.
Например, для нахождения ограничивающей сферы (bounding sphere) импортируем класс “Bounding” из модуля bpy_plus “bounding”:
1 |
from bpy_plus.bounding import Bounding |
Рассчитаем ограничивающую сферу вокруг выделенных объектов при помощи метода “sphere”:
1 2 3 4 5 6 |
import bpy b_sphere = Bounding.sphere( objects=bpy.context.selected_objects, mode='GEOMETRY' ) |
Метод возвращает центр и радиус сферы. Для наглядности добавим в сцену пустышку в виде сферы и зададим ей полученные положение и радиус, чтобы визуально отобразить найденную ограничивающую сферу:
1 2 3 4 5 |
empty = bpy.data.objects.new(name='empty', object_data=None) empty.empty_display_type = 'SPHERE' empty.location = b_sphere[0] empty.empty_display_size = b_sphere[1] bpy.context.collection.objects.link(object=empty) |
Результат:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import bpy from bpy_plus.bounding import Bounding b_sphere = Bounding.sphere( objects=bpy.context.selected_objects, mode='GEOMETRY' ) empty = bpy.data.objects.new(name='empty', object_data=None) empty.empty_display_type = 'SPHERE' empty.location = b_sphere[0] empty.empty_display_size = b_sphere[1] bpy.context.collection.objects.link(object=empty) |
Текущая версия
1.8.3.
Для Blender версии
2.93, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6