15 изменений, с которыми вы наверняка столкнетесь при переходе с Blender 2.79 на Blender 2.80

  1. Выбор объектов

2.79: выбор производится правой кнопкой мышки
2.80: выбор производится левой кнопкой мышки

  1. T-панель

2.79: вызывалась нажатием клавиши t
2.80: теперь ее нет, функции переместились в основное меню или в контекстное меню по нажатию на правую кнопку мышки

  1. Снятие выделения

2.79: a — выделить всё и снять всё выделение
2.80: a — выделить всё, a — a или alt+a — снять всё выделение

Читать далее «15 изменений, с которыми вы наверняка столкнетесь при переходе с Blender 2.79 на Blender 2.80»

Правила наименования классов в Blender 2.8 API

В API Blender 2.8 ужесточаются требования к наименованию классов и их идентификаторов. Имя класса должно соответствовать следующему шаблону:

Где {SEPARATOR} — две буквы, обозначающие принадлежность класса к определенному типу (от какого типа наследуется класс):

  • HT — Заголовок
  • MT — Меню
  • OT — Оператор
  • PT — Панель
  • UL — Список UI

Идентификатор класса «bl_idname» должен соответствовать имени класса.

Читать далее «Правила наименования классов в Blender 2.8 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’

Умножение матриц, векторов, кватернионов в 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 изменилось на

 

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

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

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

 

Свойство use_drag_immediately в Blender 2.8 Python API

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

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

 

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

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

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

Читать далее «Портирование аддона для Blender 2.7 в Blender 2.8»