Создание пользовательских панелей 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 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Дмитрий Исмаилов
Дмитрий Исмаилов
2 лет назад

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

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

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