Системы формаций полезны, когда группе юнитов нужно двигаться организованно, а не как набору независимых объектов. В Unity задача становится интереснее, когда формация должна меняться во время игры, следовать за целью, двигаться по маршруту или плавно переходить между разными построениями.
Что такое система формаций в Unity?
Система формаций связывает группу юнитов с набором позиций и сохраняет смысл этого построения во время движения. Простой вариант может назначать юнитам позиции фиксированной сетки. Более гибкая система генерирует построения процедурно и отдельно применяет правила движения и поведения.
Зачем нужны процедурные формации?
Процедурная генерация избавляет от необходимости вручную создавать каждое возможное построение. Позиции можно вычислять из количества юнитов, расстояния между ними, радиуса, направления или маршрута. Поэтому одна система может работать с отрядами разного размера.
Распространённые типы формаций
Полезны круг, дуга, сетка, шестиугольная сетка, кольцо, спираль, звезда, стена, клин, V-образная форма, маршрут и произвольные позиции. Выбор зависит от игровой ситуации: клин подходит для продвижения, стена — для обороны, кольцо — для окружения цели.
Движение формации
После генерации позиций движение лучше отделить от самой формации. Группа может следовать за лидером или целью, двигаться через waypoint-ы или использовать групповое управление, чтобы юниты реагировали на соседей и при этом сохраняли свои места.
Поведения формации
Отдельные поведения делают систему универсальнее. Вращение, pulse, phase shift, organic noise, flow noise, vortex-движение, разделение кластеров и morphing могут менять вид формации без создания нового генератора.
Плавное изменение формаций
Полезная runtime-возможность — переход из одного построения в другое без мгновенного телепортирования юнитов. Интерполяция соответствующих позиций позволяет превратить сетку в круг, стену в клин или одну тактическую формацию в другую.
Формации в RTS и тактических играх
В RTS формация должна оставаться стабильной, когда игрок меняет направление или цель. В тактических играх важнее могут быть точность и контроль отряда. В обоих случаях система должна давать контроль над расстоянием, ориентацией и движением.
Preview в редакторе и runtime-инструменты
Preview в редакторе позволяет проверить формацию ещё до запуска Play Mode. Runtime-инструменты помогают быстро тестировать количество юнитов, построения и поведения. Вместе они сокращают время итераций.
Dynamic Formation System для Unity
Dynamic Formation System от RomaSoft разделяет эти задачи: процедурная генерация, стек runtime-поведений, morphing формаций, движение по path и waypoint-ам, boids-подобное групповое движение, preview в редакторе и интерактивный demo browser. В пакете есть 17 типов формаций и 15 поведений.
Заключение
Хорошая система формаций в Unity — это не просто список позиций. Разделение генерации, движения и поведений позволяет одной основе работать с разными размерами групп и стилями игры. Начните с нескольких базовых формаций, отделите движение и добавляйте поведения там, где они действительно улучшают результат.