Не улучшать AI UI, а пересобрать его от задачи
Пару дней назад я писал про типичный AI UI: агент видит модель приложения и механически превращает её в интерфейс.
Тут случайно получился маленький before/after того, что с таким интерфейсом происходит дальше.
Делаю тулзу для нарезки sprite sheets. Слева — первая версия панели, которую собрал агент. Справа — финальный вариант.


И она не то чтобы прям плохая. Технически, всё работает. Но меня дико триггерит. Просто наружу почти один в один вылезли внутренности движка: Cell width, Cell height, Gap X/Y, Offset X/Y, набор background colours, несколько Skip..., отдельный Preview.
Я начал переделку с классической стороны — с пользовательской задачи :) Вопрос: какие решения пользователь вообще принимает здесь? Зачем ему эта панель?
Он не настраивает gapX и offsetY. Он смотрит на картинку и говорит:
тайлы 24×16, между ними ничего нет, вот это фон, эти пустые клетки мне не нужны.
Отсюда почти весь новый UI получился сам.
Cell width + Cell height → Tile size 24 × 16.
Gap X/Y → Spacing 0 × 0.
Offset нужен не всегда, поэтому два постоянно торчащих нуля превратились в Has offset и появляются только когда действительно нужны.
С фоном было ещё смешнее. Первая версия фактически давала UI для редактирования массива цветов: Transparent, Pick, HEX input, Add.
Но цвет уже находится прямо перед пользователем — на спрайтшите. Поэтому основной сценарий стал Pick from sheet. Ткнул в фон — готово. Ручное добавление осталось запасным вариантом.
То же самое со Skip background-only cells и Skip uniform-color cells. Для алгоритма это две настройки auto-slice. Для человека вопрос проще: что игнорировать? Значит делаем блок Ignore.
А Preview я вообще выкинул. Результат должен быть виден сразу: поменял tile size — сетка перестроилась, включил Ignore — сразу увидел, какие клетки исчезнут. Внизу достаточно 30 sprites и Apply.