Из чего состоит сцена морского набега
Навигационная сетка (Navigation Mesh)
- Работает аналогично сценам деревень.
- В сценах, созданных с использованием двух отдельных уровней, для уровня (Level)
land_raid(см. документацию “What Makes a Village Scene”) вся NavMesh на суше должна иметь ID 0 на уровне (Level)naval_raid. - Агенты (Agents) могут передвигаться по воде на глубину до 1,40 метра. Поэтому NavMesh с ID 0 должна быть запечена (baked) на глубину до 1,40 м; если вода глубже, Агенты будут плыть.
Точки появления (Spawn Points)
- Все точки появления (Spawn Points) должны располагаться внутри мягких границ (Soft Borders).
- Все точки появления (Spawn Points) должны быть размещены поверх NavMesh.
- Боевые точки появления (Battle Spawn Points):
- Все точки появления защитников должны находиться в пределах границ защитников (Defender Boundaries).
- Префаб (Prefab):
naval_battle_set - Размещайте части набора для защитников на суше, а части для атакующих — в море/реке.
- Точки появления атакующих не должны находиться слишком близко к берегу.
- Убедитесь, что вокруг всех точек появления защитников есть свободное пространство для правильного появления войск.
- Перемещайте точки появления подкрепления защитников как можно дальше от поля зрения, не слишком удаляя их от передовой.
- Поскольку набег может выполняться с использованием 3 кораблей, вы можете расположить точки появления пехоты, лучников и кавалерии атакующих лицом в направлении их движения по воде.
- Расстояние между точками появления атакующих следует регулировать в зависимости от размеров кораблей.
- Если готовится речная сцена, река должна быть достаточно широкой, чтобы большие корабли могли свободно перемещаться.
- Все точки появления защитников должны находиться в пределах границ защитников (Defender Boundaries).
Тактические позиции (Tactical Positions)
- Префаб (Prefab):
tactical_position - Используйте тип тактической позиции (Tactical Position)
chokepointв скрипте (Script), регулируя его размер в соответствии с местом, где вы хотите, чтобы пехота занимала позицию и обороняла её. - Используйте тактическую позицию Tactical Position
cliffдля общего размещения лучников. Эта позиция определяет общее расположение лучников, откуда они распределяются по сущностямstrategic_archer_pointи возвращаются при отступлении. - Префаб (Prefab) тактической позиции
cliffследует использовать как дочерний элемент префаба тактической позицииchokepoint. - ИИ (AI) будет позиционировать себя в соответствии с поворотом префаба (Prefab) и шириной, заданной в скрипте (Script).


Тактические и стратегические позиции лучников
- Префаб (Prefab):
strategic_archer_position - Определяет местоположение, куда отправится один лучник. В сцену можно добавить множество таких позиций; все лучники-защитники в бою будут распределяться по этим позициям.
- Чтобы переместить лучников, расположенных далеко от основного поля боя, которые должны досаждать приближающимся кораблям на раннем этапе, у вас есть два тактических варианта вернуть их в основной бой:
- Вариант A (
unsafe_archer_point): Если вы присвоите этим сущностям тег (Tag)unsafe_archer_point, то после завершения высадки кораблей эти лучники автоматически отступят к основному полю боя (тактическая позиция Tactical Positioncliff), чтобы присоединиться к активной обороне. - Вариант B (
volume_box_archer_point): Если вам нужен более точный контроль, вы можете использовать тег (Tag)volume_box_archer_point(применяемый как к позициям лучников, так и к соответствующемуvolume_box). Это гарантирует, что лучники будут удерживать свои позиции и отступят к тактической позицииcliffтолько тогда, когда враг действительно проникнет в вашу заданную область Volume Box.

Точка триггера Volume Box:
- Префаб (Prefab):
volume_box - Тег (Tag):
volume_box_archer_point - Эта настройка действует как пространственный триггер для манёвров лучников. В отличие от
unsafe_archer_point, который срабатывает при высадке, этот вариант позволяет точно контролировать ситуацию на основе продвижения атакующих. - Правило настройки: Тег
volume_box_archer_pointдолжен быть присвоен как самой сущностиvolume_box, так и всем сущностямstrategic_archer_point, которые должны срабатывать от этого конкретного бокса. - Поведение: Когда любой атакующий входит в помеченный тегом
volume_box, все лучники, размещённые в соответствующих помеченных тегом сущностяхstrategic_archer_point, немедленно начинают отступление к тактической позиции (Tactical Position)cliff.

Точка обзора игрока (для защитника)
- Используйте префаб (Prefab)
arrow_new_iconи присвойте ему тег (Tag)player_spawn_frame. - Игрок появится (Spawn) лицом в направлении стрелки.
- Примечание: Поворот и направление стрелки имеют решающее значение, поскольку они напрямую определяют начальное поле зрения игрока при появлении.
Точки высадки (Landing Points)
- На берегу необходимо разместить 3 пустые сущности с правильными тегами (Tags) для высадки 3 кораблей:
- Тег высадки пехотного корабля атакующих:
landing_001_0 - Тег высадки корабля лучников атакующих:
landing_002_0 - Тег высадки кавалерийского корабля атакующих:
landing_003_0
- Тег высадки пехотного корабля атакующих:
- Убедитесь, что между точками высадки кораблей на берегу достаточно расстояния.
- Для маршрута, по которому должны следовать корабли в воде, вы можете присвоить аналогичные теги (Tags) пустым сущностям, размещённым в воде.
- Пример: Для пехотного корабля, от ближней точки к дальней:
landing_001_1,landing_001_2,landing_001_3. В этом случае точка появления (Spawn Point) пехоты атакующих внутриnaval_battle_setсначала нацелится наlanding_001_3, а затем последовательно на остальные, чтобы достичьlanding_001_0.
- Пример: Для пехотного корабля, от ближней точки к дальней:
- Поворот всех сущностей должен быть направлен на следующую целевую точку высадки.
- Поворот конечной точки назначения
landing_00x_0должен быть выставлен так, чтобы корабль правильно причаливал к берегу.

Точки прыжка (Jumping Points)
- Используются для указания направления, в котором должны двигаться агенты (Agents), прыгающие с корабля на берег.
- Используйте пустые сущности с тегами (Tags)
jumping_001,jumping_002,jumping_003для каждого корабля, и они должны быть дочерними элементами соответствующей конечной точки высадки.
- Пример: Сущность с тегом (Tag)
jumping_001всегда должна быть дочерней для сущностиlanding_001_0.
- Пример: Сущность с тегом (Tag)
- Поворот следует отрегулировать так, чтобы агенты (Agents) использовали наиболее логичную механику (Mechanics) для схода с корабля.
Позиции бегства (Flee Positions)
- Позиции, к которым будут бежать отступающие войска и лошади.
- Убедитесь, что они находятся внутри мягкой границы (Soft Border) и под ними есть NavMesh.
Мягкая граница (Soft Border)
- Префаб (Prefab):
border_soft - Эти сущности определяют красные границы сцены.
- При размещении они образуют многоугольник, соединяя две ближайшие пограничные сущности.
- Чтобы визуализировать текущие границы, перейдите в
Visibility Window->Visibility Masksи включитеBorders. - Замечание по дизайну: Убедитесь, что расположение этих границ не позволяет игрокам злоупотреблять пределами карты или находить непредусмотренные пути отступления.
Звуки и атмосфера
- Работает аналогично сценам деревень.
- Убедитесь, что звуки окружения отражают морской характер набега.
- Атмосфера должна выглядеть согласованно во всех сезонах и в любое время суток.
Рекомендации по игровому дизайну
- Обстрел кораблей до их причаливания усиливает ощущение эпичности боя. Вы можете разместить лучников дальше, чтобы они стреляли по кораблям на раннем этапе. Чтобы эти лучники присоединялись к обороне передовой, а не оставались позади, вы можете использовать тег (Tag)
unsafe_archer_point, чтобы запустить их отступление к тактической позиции (Tactical Position)cliffпосле высадки кораблей, либо использовать настройкуvolume_box_archer_point, чтобы запускать их перемещение именно тогда, когда враг достигает определённой зоны в вашей сцене. - Использование физических узких проходов (Chokepoints) в сцене повысит сложность для атакующего.
- Убедитесь, что сцена хорошо работает ночью.
- Чтобы сохранить атмосферу “набега на деревню”, убедитесь, что бой не начинается и не заканчивается слишком далеко от территории деревни.
Эта страница переведена с помощью ИИ и может содержать неточности. Оригинал на английском языке является основным источником.
