Система ИИ разделена две части, высокоуровневая логика принятия решений (навыки aka скиллы) и низкоуровневая логика решений (поведение aka бехейверы). Говоря определениями, система скиллов определяет, что должен делать персонаж, а система поведения продумывает, как и реализует эти решения.
Самый простой пример: для передвижения персонажей используется бехейвер
move-to, который используется в большом количестве разных навыков. Навыки решают, что делать, основываясь на мотивах и возможностях персонажа, а также на его окружении, буквально отвечая на вопросы «Хочу ли я напасть, спрятаться или убежать?» или «В каком месте мне тактически лучше находиться?». Как только решение принято, то вызывается бехейвер который реализовывает это «желание». Например, навык может вызвать бехейвер move-to, а затем ждать завершения его работы.В это время тот самый бехейвер
move-to пытается добраться до места назначения используя любые доступные возможности (напоминает работу баритона в майне :D), решая какой маршрут выбрать и какие анимации проигрывать в этот момент.Интересный момент, что аналогичная система реализована и используется у нас в сторителлинге. К примеру, вспомним Брендона. В определённые моменты дня у него в скрипте (наш аналог системы скиллов) происходит выбор, куда пойти, в этот момент не решается как пойти или на какую точку, нет, он думает пойти качаться или перекусить. Когда на основе его характеристик и мышления выбирается что именно он хочет делать, реализация этой задачи падает на
BehaviorManager, который уже низкоуровнево пристраивает маршрут до выбранного места обходя дырки и открывая двери и контролирует его вплоть до точки назначения.#devblogTLoU #devblogTLoUAI