API

Изменения в регистрации аддонов через API в Blender 2.8

В Blender 2.7 регистрация и разрегистрация аддонов через Python API производилась через Window manager – wm:

В Blender 2.8 API операторы работы с аддонами перенесены в preferences:

 

Положение 3D курсора в Blender 2.8 Python API

Свойство, указывающее на местоположение 3D-курсора

в Blender 2.8 перенесено в объект курсора

При попытке обращения к позиции курсора через “context.scene.cursor_location” Blender выдаст ошибку:

‘Scene’ object has no attribute ‘cursor_location’

Создание свойств для аддона

При разработке аддонов часто бывает необходимо предоставить пользователю возможность задавать ряд параметров, влияющих на общую работу аддона. Например, пользователь может указать постоянную директорию для загрузки/сохранения файлов или задать тот или иной режим работы аддона. Конечно, интерфейс для задания подобных параметров можно разместить и в рабочей панели аддона, но гораздо удобнее поместить его в отдельную панель свойств аддона, которая размещается под панелью инсталляции аддона в окне Preferences.

Основное преимущество определения таких глобальных свойств аддона в том, что они не сбрасываются при перезапуске Blender. Пользователю не нужно каждый раз производить настройку аддона, достаточно один раз установить нужные параметры, персонализировав аддон для удобной работы.

Создадим простейший аддон и добавим ему глобальный параметр, поместив его в панель свойств аддона:

Умножение матриц, векторов, кватернионов в Blender 2.8 Python API

В Blender 2.7 для умножения матриц, кватернионов и векторов использовался оператор “*” (звездочка). В Blender 2.8 API он заменен на оператор “@” (ат).

При попытке использования оператора “*” для умножения матриц, векторов или кватернионов, Blender 2.8 сигнализирует ошибкой:

Element-wise multiplication: not supported between ‘Matrix’ and ‘Matrix’ types

Пример использования оператора “@”:

 

Указание центральной точки в Blender 2.8 Python API

Указание опорной точки в Blender 2.7

в Blender 2.8 API перемещено в:

 

Переключение системы координат в Blender 2.8 Python API

Обращение к текущей используемой системе координат, которое в Blender 2.7 осуществлялось через

в Blender 2.8 перенесено в коллекцию объектов TransformOrientatiosSlots. Для получения и изменения текущей системы координат нужно обращаться к объектам коллекции сцены transform_orientation_slots.

 

Как сделать объект (меш) активным в Blender 2.8 Python API

Для того, чтобы сделать меш (объект) активным в Blender 2.8 Python API вместо своства context.scene используется context.view_layer.

При попытке сделать меш активным через “bpy.context.scene.objects.active” Blender сигнализирует ошибкой:

AttributeError: bpy_prop_collection: attribute “active” not found

Чтобы сделать объект активным, нужно использовать следующую команду:

 

Выбор объекта (меша) в Blender 2.8 Python API

В связи с изменениями Blender API в версии 2.8 выбор меша (объекта) теперь осуществляется с помощью геттера/сеттера.

При попытке проверить выбран ли объект через “bpy.context.active_object.select” Blender сигнализирует ошибкой:

AttributeError: ‘Object’ object has no attribute ‘select’

Для проверки, является ли объект выбранным в Blender 2.8 нужно использовать геттер:

Для того, чтобы выделить объект в Blender 2.8 нужно использовать сеттер:

Для снятия выбора нужно использовать тот же сеттер: