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