Как отлаживать поведение ИИ в Unreal Engine?
Враг должен преследовать игрока, но стоит на месте. Behavior Tree, Blackboard и perception настроены, в Output Log ошибок нет. Вы открываете Gameplay Debugger в игре и читаете категории оверлея:
[Behavior Tree] активный узел: MoveTo -> статус: In Progress (не меняется)
[Blackboard] TargetActor = BP_Player (Set, указывает на игрока)
[Perception] игрок ощущается (стимул зрения активен)
[Navigation] под зоной спавна бота не отрисован зелёный NavMesh
Определите причину.
Нажмите клавишу апострофа в игре, чтобы открыть AI Debugger (Gameplay Debugger): он накладывает активный путь Behavior Tree, живые значения Blackboard, конусы perception, NavMesh и запрос EQS. Категории переключаются на numpad для изоляции сбойной системы.
- ✗Не знать, что апостроф открывает Gameplay Debugger вживую
- ✗Полагаться только на логи вместо визуального оверлея Behavior Tree
- ✗Забывать проверить NavMesh (клавиша
P), когдаMoveToмолча не работает
- →Как использовать отдельный визуальный отладчик Behavior Tree для воспроизведения сессии?
- →Что даёт Visual Logger сверх живого Gameplay Debugger?
Сценарий
Враг должен преследовать игрока, но просто стоит на месте. Behavior Tree, Blackboard и perception настроены, ошибок в логе нет. Где искать?
Диагностика — AI Debugger
В режиме игры наводимся на бота и жмём ' (апостроф). Открывается оверлей:
[1] Navigation — показывает NavMesh и текущий путь
[2] Behavior Tree — подсвечивает активный узел
[3] Blackboard — живые значения ключей
[4] Perception — конусы зрения/слуха и стимулы
Включаем категорию Behavior Tree: активный узел замер на MoveTo, статус In Progress и не меняется. Переключаемся на Blackboard — ключ TargetActor действительно Set и указывает на игрока. Значит логика верна.
Включаем Navigation: под ботом нет зелёного NavMesh. Путь построить невозможно — MoveTo навсегда висит в In Progress, не давая успеха и не падая.
Причина
NavMeshBoundsVolume не охватывает зону спавна бота. Без NavMesh MoveTo не может проложить путь, а Behavior Tree застревает на этой задаче.
Исправление
Расширяем NavMeshBoundsVolume на всю игровую область и жмём P для проверки — зелёное покрытие должно появиться под ботом. После ребилда навигации погоня работает.
Урок: при «застрявшем» ИИ сначала проверяйте NavMesh, и лишь потом — логику дерева.