BlueprintVision — плагин, который даёт ИИ-агенту (Claude Code) читать и править Blueprints [WIP, UE 5.8]

Всем привет!

Я соло-разработчик, делаю на UE 5.8 мультиплеерный шутер. Код пишу вместе с ИИ-агентом Claude Code, и быстро упёрся в проблему: с C++ агент работает хорошо, а Blueprints для него — чёрный ящик. .uasset — это бинарник: агент не видит, что внутри, и не может ничего поправить. Приходилось вручную описывать ему графы и вручную же переносить его советы в редактор.

Поэтому я сделал editor-плагин BlueprintVision. Он даёт агенту «глаза и руки» для Blueprints. Агент работает по циклу: нашёл BP → открыл → прочитал граф → разобрался → внёс правку (включая связи между нодами) → скомпилировал и проверил.

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


Что умеет

Чтение

  • Список ассетов: Blueprint, Widget BP, AnimBP, DataTable, Data Asset, структуры, перечисления.
  • «Карточка» BP: компоненты, переменные (с RepNotify), графы, реализованные события C++, интерфейсы.
  • Граф как псевдокод. Это главная фишка. Вместо JSON с сотней нод агент получает компактный текст со стабильными ID нод:
event BlueprintUpdateAnimation(DeltaTimeX: float):      #nf7ec3f

t_1 = TryGetPawnOwner() #n15f255

if isvalid(t_1): #n224afe

Speed = VSize(t_1.GetVelocity()) #n1ebf2c #n3ab7d8 #nd64389

bIsInAir = t_1.GetMovementComponent().IsFalling() #nf131ae #nc0c9ad #nd622c1

  • Поиск использований переменных, функций и строк DataTable по всему проекту.
  • Widget BP: дерево виджетов, привязки, анимации виджетов, MVVM.
  • AnimBP: Event Graph, Anim Graph деревом от выходной позы, State Machine с условиями переходов:
state Move: BlendSpacePlayer(BS_Move, X ← Speed, Y ← Direction)

Idle -> Move when (Speed > 10) && !bIsInAir blend 0.2 s

Move -> Idle when Speed <= 10 blend 0.25 s

Правка

  • Ноды, связи, значения пинов, переменные, функции, события, компоненты, диспетчеры, интерфейсы.
  • Переименование и удаление с каскадом: плагин сам сообщает, какие зависимые ноды удалены или переподключены.
  • Дерево виджетов, анимации виджетов, MVVM, строки DataTable, свойства Data Asset.
  • AnimBP: ассеты у нод, время смешивания, привязки переменных, настройки переходов. Правка State Machine сейчас в работе.

Цикл C++

  • build сам решает, хватит ли Live Coding или нужна полная пересборка. Ошибки компилятора сжимаются до первопричин (≤ 10 строк вместо простыни лога).
  • Если нужен перезапуск, агент не закрывает редактор сам (если вы не разрешили это сами ибо такая функция тоже есть, если вы паралельно не делаете в редакторе что-то еще вы можете разрешить агенту самому пересобирать проект когда ему это понадобится). Он показывает уведомление и ждёт(вам дается минута, после окончания таймера проект сохраняется принудительно в таком виде какой он есть на момент истечения таймера). Когда вы закрыли редактор, проект пересобирается и открывается снова с тем же уровнем и теми же вкладками.
  • Перед тем как просить закрыть редактор, плагин проверяет компиляцией, что новый код вообще собирается.
  • Откат C++ к последней удачной сборке. Текущие версии файлов при этом сохраняются.

Безопасность (мне это было важнее скорости)

  • Атомарность. Патч сначала применяется к временной копии BP. Если хоть одна операция или компиляция не прошла, оригинал не трогается.
  • Ctrl+Z. Правка в открытом редакторе — обычная транзакция, её можно отменить.
  • Ничего не сохраняется на диск без явного флага. Перед каждым сохранением делается резервная копия, все сохранения пишутся в журнал, и любое можно откатить.
  • Права: запись выключена по умолчанию. Можно разрешить её только для нужных папок, а отдельные BP, графы и свойства — заблокировать.
  • Живой режим. Если в ассете есть ваши несохранённые изменения, агент его не тронет.
  • Вывод не зависит от языка редактора. У меня редактор на русском, это проверяется тестами.

Как это выглядит в работе

Агент запускает команды из терминала, например:

bv.cmd read /Game/Characters/BP_Player EventGraph

bv.cmd edit patch.json

bv.cmd build

Если редактор открыт, команды выполняются прямо в нём, и правки видны сразу. Если закрыт — в фоне, без интерфейса.

[скриншот / GIF: агент читает граф и добавляет ноду]


Честно об ограничениях

  • Только UE 5.8 и Windows. Другие версии пока не поддерживаются.
  • Плагин сделан под Claude Code (агент Anthropic, нужна их подписка). Сами команды можно вызывать и вручную, но смысл — в связке с агентом.
  • Агент не видит картинку. Он читает логику, а не то, как это выглядит в игре. «Анимация дёргается» он сам не заметит.
  • Не поддерживаются: материалы, Niagara, акторы на уровне, Montage и Blend Space как ассеты (последние запланированы).
  • Плагин написан мной вместе с ИИ (Claude), включая большую часть кода и тестов. Набор тестов — около 700 автоматических проверок, плюс ручная приёмка каждой функции.

Планы

  • Доделать AnimBP: правка State Machine, Linked Anim Layers, Montage, Blend Space.
  • «Глаза» для мультиплеера: линтер Blueprints (в том числе правила безопасности — Server RPC без проверок, логика вне HasAuthority), запуск сервера и клиентов с логами, аудит репликации, сравнение версий BP.
  • Независимое ревью кода и первый запуск с выбором правил для агента.
  • Потом — релиз. Скорее всего, будет бесплатная версия «только чтение» и полная.

Что хочу от вас

  • Нужен ли вам такой инструмент? Какие задачи с Blueprints вы бы отдали агенту?
  • Какие типы ассетов важнее всего поддержать дальше?
  • Если хотите попробовать раннюю версию (UE 5.8, Windows), напишите в теме. Тестеров позову когда подготовлю плагин к скачиванию

Спасибо, что дочитали! Отвечу на вопросы в теме.