from 2.7 to 2.8

Добавление объекта в сцену в Blender 2.80 Python API

В API Blender 2.79 созданный объект добавляется в сцену через:

Попытка добавить объект в сцену таким образом в Blender 2.80, приводит к ошибке:

‘bpy_prop_collection’ object has no attribute ‘link’

В Blender 2.80 API добавлять объект нужно не в саму сцену, а в ее коллекции.

Добавить объект в активную коллекцию:

Добавить объект в коллекцию по ее имени:

 

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 – снять всё выделение

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

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

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

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

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

Изменения в регистрации аддонов через 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 API перемещено в: