Python

Указание центральной точки в 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 нужно использовать сеттер:

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

 

Как узнать версию Python, используемую в Blender

Для того, чтобы узнать версию интерпретатора языка Python, которая используется в текущей версии Blender, нужно в окне Python Console выполнить следующую команду:

Это означает, что в текущей версии Blender используется Python 3.7.0.

Чтобы вывести результат в более привычной форме, можно использовать команду:

или в полной форме:

Портирование аддона для Blender 2.7 в Blender 2.8

В API последней версии Blender 2.8 разработчики внесли множество изменений, поэтому практически все скрипты и аддоны, написанные для более ранних версий Blender (2.7 и ниже), перестали работать. Для того, чтобы пользоваться полюбившимися аддонами в новой версии Blender, их нужно портировать – исправить их код для корректной работы с новым API Blender.

Изменения, которые необходимо внести в код аддона, чтобы он заработал в Blender 2.80:

Использование IDE Microsoft Visual Studio Code для написания скриптов/аддонов в Blender

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

Одной из таких сред разработки является Visual Studio Code от компании Microsoft. Это бесплатная универсальная IDE, поддерживающая разработку на различных языках программирования, в том числе и на языке API Blender – Python.

Является ли свойство объекта read-only – только для чтения

Для того, чтобы проверить, является ли какое-либо свойство любого объекта Blender (меша, нода, модификатора и т.д.) read-only – “только для чтения”, нужно выполнить следующие действия:

  1. Для проверки через функцию is_property_readonly нужно выполнить команду вида:

<объект>.is_property_readonly(‘<название свойства>’)

  1. Для проверки через структуру rna нужно выполнить команду вида:

<объект>.bl_rna.properties[‘<название свойства>’].is_readonly

Например свойство меша is_editmode (находится ли меш в режиме редактирования) для активного меша: