Создание пользовательских панелей UI в Blender

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

  1. Боковая панель «Sidebar» в левой части любой рабочей области Blender. Часто ее называют «N-панелью» так как чаще всего она открывается по нажатию на клавишу «n» на клавиатуре.
  2. Панели в рабочей области Properties.

Для того чтобы создать панель с UI для аддона, нужно определить класс панели, наследуя его от системного класса bpy.types.Panel и зарегистрировать его в Blender API.

Простейший класс панели имеет следующую структуру:

Местоположение панели определяется значениями параметров, которые указываются в самом начале определения класса:

bl_space_type — указывает на общее месторасположение панели — ту рабочую область в которой ее необходимо разместить. Например:

VIEW_3D — окно 3D Viewport
IMAGE_EDITOR — окно UV/Image Editor
NODE_EDITOR — окно Node Editor
SEQUENCE_EDITOR — окно Video Sequencer
CLIP_EDITOR — окно Movie Clip Editor
DOPESHEET_EDITOR — окно Dope Sheet
GRAPH_EDITOR — окно Graph Editor
NLA_EDITOR — окно Nonlinear Animation
TEXT_EDITOR — окно Text Editor
PROPERTIES — окно Properties
FILE_BROWSER — окно File Browser
SPREADSHEET — окно Spreadsheet
bl_region_type — уточняет регион, где именно в пределах рабочей области будет размещена панель.
Для того чтобы разместить создаваемую панель на боковой Sidebar-панели, нужно указывать значение «UI».
Другие возможные значения: WINDOW, HEADER, CHANNELS, TEMPORARY,  TOOLS, TOOL_PROPS, PREVIEW, HUD, NAVIGATION_BAR, EXECUTE, FOOTER, TOOL_HEADER, XR.
bl_category — определяет группу, в которой будет располагаться панель с UI. Если указывается уже существующая группа — панель будет включена в нее. Если указывается любое новое называние группы — такая группа будет создана и панель помещена в нее.

bl_label — последний параметр просто уточняет заголовок создаваемой панели UI.

Например, для того чтобы разместить панель в рабочей области 3D вьюпорта, в его боковой Sidebar-панели, в группе Tools, нам нужно указать:

Если вместо «Tool» указать какое-нибудь уникальное значение — в Sidebar-панели будет создана вкладка с таким названием и наша панель UI будет размещена на ней.

Пример класса для размещения панели UI в Sidebar рабочей области 3D вьюпорта:

Для того чтобы разместить нашу панель на одной из вкладок рабочей области Properties, вместо параметра bl_category указывается параметр bl_context.

bl_context — возможные значения, соответсвующее вкладкам: render, output, view_layer, scene, world, collection, object, modifier, physics, constraint, data, material, texture.

Например, для того чтобы разместить нашу панель в рабочей области Properties во вкладке Render нужно указать:

Пример класса для размещения панели UI в рабочей области Properties во вкладке Render:

Руководство для Blender 2.79 и старших версий

5 1 голос
Article Rating
Подписаться
Уведомить о
guest

2 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Дмитрий Исмаилов
Дмитрий Исмаилов
3 лет назад

А можно удалить ненужные панели? Большое количество аддонов создаёт кнопки, которые мне например не нужны и я хочу из как нибудь скрыть из вьюпорта

Nikita
Редактор
3 лет назад
Ответить на  Дмитрий Исмаилов

Кнопки — вряд ли, для этого нужно перерегистрировать класс или функцию формирования UI. Можно убрать сами панели, разрегистрировав их классы. Можно переместить все панели в одну, изменив параметр bl_category.