Как невидимая сетка превращается в маршрут

Чтобы персонаж мог двигаться по сложной сцене, игре нужна упрощённая карта проходимых мест. Часто её строят из многоугольников — участков, соединённых в навигационную сетку. Алгоритм ищет путь по этим участкам, а не прокладывает дорогу заново по каждой видимой детали мира.

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

Когда карта проходит сквозь стену

Сетку обычно создают автоматически по геометрии сцены, а затем при необходимости поправляют. Если при построении или настройке треугольник захватывает область за стеной, алгоритм может считать её частью проходимого пространства. Для него преграда не существует как навигационное ограничение: на карте путь через неё выглядит допустимым.

Тогда персонаж выбирает маршрут, который разумен для сетки, но невозможен в самой сцене. Он подходит к стене и продолжает двигаться в её сторону, словно упёрся в невидимое препятствие на пути к цели. Видимая коллизия не даёт пройти насквозь, однако сама по себе не обязательно исправляет ошибку в карте маршрутов.

Почему персонаж не просто обходит стену

Навигация и столкновения решают разные задачи. Первая подсказывает, куда идти; вторая не позволяет телу персонажа пересекать твёрдые объекты. Если они расходятся, персонаж может застрять, прижиматься к преграде или искать обход только после того, как движение не удаётся.

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