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 перемещено в: