Кастомные иконки в Blender

Чаще всего разработчики аддонов для придания кнопкам пользовательского UI индивидуальности используют иконки из встроенной в Blender библиотеки. Однако в качестве иконок в UI можно загружать и устанавливать абсолютно любые внешние изображения.

Использовать изображения в качестве иконок в UI мы можем при помощи модуля previews из пакета bpy.utils.

Для того чтобы загрузить изображение, которое в дальнейшем мы установки на кнопку в качестве иконки, для начала нужно создать коллекцию “превью”:

Мы создали коллекцию ImagePreviewCollection в которую теперь можем загружать любые изображения при помощи метода load().

Для того чтобы загрузить картинку в коллекцию превью, в параметрах метода load() нужно задать:

  • name – имя, идентификатор, через который мы будем обращаться к загруженному изображению в коллекции
  • path – полный путь к загружаемому изображению
  • path_type – тип загружаемого контента. Может иметь значения: ‘IMAGE’, ‘MOVIE’, ‘BLEND’, ‘FONT’. Для изображений нужно указывать ‘IMAGE’.

Теперь определим класс для простейшей пользовательской панели в окне 3D вьюпорта с одной кнопкой:

В функции draw() в описании оператора, который будет вызываться по нажатию на кнопку мы использовали параметр icon_value. Значение для этого параметра – идентификатор иконки, мы взяли из созданной ранее коллекции превью, обратившись к нужному элементу по заданному имени icons[‘crown’] и получил из него значение icon_id.

Зарегистрируем класс панели в Blender Python API:

Если теперь мы выполним функцию register(), в пользовательской панели в окне 3D вьюпорта мы увидим кнопку с нашей кастомной иконкой.

Таким образом мы можем использовать в качестве иконок абсолютно любое изображение.

Если нужно загрузить несколько картинок для размещения на разных кнопках, каждое изображение нужно загрузить в коллекцию, вызвав метод load(), и указав путь к нужной картинке.

При разрегистрации аддона, коллекцию превью нужно удалить из API.

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

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии