Немного подправил UI Plasticity 25.2.5

Более крупный и контрастный шрифт + подсветка категорий/заголовков, полноэкранный режим без Titlebar, cтатистика в верхнем правом углу, добавлены хоткеи для переключения matcap'ов и HDRI +. хоткей для скрытия/показа референсных изображений.

Последние несколько дней я убил на ковыряние во внутренностях Plasticity, с целью оценить возможность кастомизации. В целом, всё довольно грустно. Из-за отсутствия доступа к API про какие-то кастомные инструменты или макросы можно сразу забыть. Интерфейс модифицировать можно (стили, кастомные панели и т.д.), но в целом не особо и нужно, так как тут всё довольно удобно и аккуратно. По крайней мере, большинство пользователей спокойно работают на дефолте и всех всё устраивает. Но, поскольку мои вкусы весьма специфичны, я всё же внёс несколько изменений.

Стандартная тема
Стандартная тема

В первую очередь я увеличил размер шрифта. Ничто так не утомляет, как необходимость вглядываться в мелкий шрифт. Для меня вообще остаётся загадкой, почему подавляющее большинство разработчиков не добавляют в свои программы нормальные настройки для шрифтов, перекладывая всё на плечи системы масштабирования ОС. Тем более сейчас, когда практически все программы используют сторонние UI-фреймворки с кучей параметров и возможностью самой тонкой настройки в реальном времени. Т.е. с одной стороны у нас куча людей кричит об опциях «доступности», а с другой стороны разработчикам лениво добавить простую опцию, чтобы пользователи не портили своё зрение (видимо, религия не позволяет).

Поскольку стандартная тема Plasticity «50 оттенков серого» выглядит слишком уж монотонно, я сделал основной шрифт более контрастным и добавил немного цветных акцентов. Тут основной целью было повысить читаемость содержимого панели Outliner.

Как стало
Как стало

По умолчанию полноэкранный режим (F11) скрывает нижнюю панель задач. Я сделал его ещё более полноэкранным и убрал Titlebar, так как во время работы этот элемент UI бесполезен.

Далее я перенёс панель со статистикой в верхний правый угол. По умолчанию статистика болтается в самом низу правой панели и практически всегда оказывается вне зоны видимости. Не сказать, что эта модификация жизненно необходима. Просто мне было интересно, получится отвязать панель или нет.

В старой версии UI Plasticity панель с Matcap'ами открывалась с помощью соответствующей иконки. Теперь этот элемент находится в верхней части и занимает довольно много места. Обычно при работе вам не нужны все matcap'ы сразу. Поэтому я добавил хоткей для скрытия области маткапов, а потом вообще сделал верхнюю панель закрытой по умолчанию. Чтобы не терять функциональность, я добавил хоткеи для matcap'ов в режиме Shader Mode и HDRI в режиме Render Mode.

Хоткеи могут быть индивидуальными для конкретного маткапа, либо работать в режиме переключателя между парой маткапов (например, обычный и zebra analysis). Также добавил цикличное переключение «туда-сюда», которое работает в контексте текущего режима Shader Mode | Render Mode. Это решение оказалось довольно удачным и позволило сделать правую панель более компактной, плюс в нижней части теперь больше свободного места для кастомных workplane'ов.

После настройки правой панели я стал думать, что же можно улучшить в левой. В первую очередь добавил хоткей для быстрого поиска выбранного объекта в Outliner. По умолчанию, вы должны выбрать объект, затем навести мышку на область Outliner'а и нажать /. Отдельная команда позволяет находить объект, находясь в фокусе вьюпорта. Это полезно, если нужно быстро переименовать множество объектов (более того, можно легко объединить команды фокуса и переименования).

Ещё в Plasticity отсутствует функция быстрого скрытия/показа референсных изображений, а бывают случаи, когда хочется быстро посмотреть на модель без лишнего «шума» на фоне. И вот, по умолчанию, надо скролить содержимое Outliner (либо жать End) в самый низ (именно туда засунута категория Images для референсных изображений) и переключать видимость.

Из-за ограничений Plasticity, данный хоткей у меня реализован слегка костыльно, но работает как часы. Основная проблема — это невозможность исключить данную команду из стека истории (как это работает в случае с командами типа Show edges/curves/faces).

Одним из главных разочарований стала система горячих клавиш Plasticity, а точнее то, как они (эти самые клавиши) настраиваются. Суть в том, что клавиши работают в зависимости от контекста (вьюпорт/панель/команда и т.д.), и описание всех этих контекстов в документации отсутствует ВООБЩЕ! (как и куча внутренних команд — которые надо искать где-то в дебрях github'а и исходников). Все хоткеи программа подгружает из своих внутренностей, и это не создаёт никаких проблем, до тех пор пока вы меняете хоткеи для активации инструментов через GUI — все кастомные хоткеи добавляются в keymap.json. Но как только вы захотите поменять, к примеру, контекстные хоткеи, которые работают в пределах текущего инструмента (например, поменять клавишу B для New Body в инструменте Boolean), то сразу столкнётесь с проблемами. Во-первых, актуального списка команд нет, во-вторых, инструмент использует и новый хоткей (прописанный вами в конфиге), и старый хоткей, подгруженный из самой программы. Более того, «справка по хоткеям», появляющаяся в правом нижнем углу, является статичным элементом и на ваши изменения никак не реагирует. Вот чего-чего, а подобного колхозинга совсем не ожидаешь от программы за $300 с кучей восторженных отзывов. Будем надеяться, в будущем это как-то поправят, ну или хотя бы задокументируют как следует. Ещё есть вариант сделать свою собственную «динамичную справку» которая будет парсить конфиг с хоткеями и выводить актуальные подсказки. Но для этого надо разобраться со всеми возможными контекстами и вариантами работы, чтобы не сломать то что уже работает.

4
3 комментария