☰

Карта мира War Sails

Создание или изменение карты мира War Sails связано с несколькими дополнительными требованиями по сравнению с Bannerlord. Они перечислены ниже.

Навигационная сетка (Navmesh)

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

Соответствующие значения ID навигационной сетки показаны на изображении ниже.

CoastalSea и OpenSea — оба типа судоходной воды, но они служат разным игровым целям. Они используют разные модификаторы скорости движения и по-разному обрабатываются системой морского истощения (sea attrition), поэтому выбирайте подходящий тип в зависимости от предполагаемого геймплея.

Используйте тип навигационной сетки UnderBridge для граней непосредственно под мостами, а также для соседних граней, ведущих к мосту и от него. Этот тип навигационной сетки не влияет на скорость движения или морское истощение. Вместо этого он управляет поведением, специфичным для мостов:

Озёра не судоходны в War Sails. Тип навигационной сетки Lake функционирует как непроходимая местность и не может быть пересечён кораблями.

Карта потоков (Flowmap)

В War Sails ветер и водные течения влияют на движение по судоходной воде. Сила и направление определяются картой потоков (Flowmap), которую можно редактировать прямо в редакторе карты мира (World Map Editor).

Чтобы отредактировать Flowmap:

  1. Нажмите кнопку Paint Flowmap, расположенную между кнопками Paint Flora и Navigation Mesh.
  2. Также откройте Inspector и выберите вкладку Flowmap, чтобы корректно её редактировать.

Flowmap рисуется примерно так же, как текстуры местности или карта высот, но каждый мазок кисти также определяет направление. Редактор отображает цветные стрелки для визуализации Flowmap:

Flowmap напрямую влияет на шейдер воды. Из-за этого окраска соседних областей с резко противоположными направлениями потока может вызвать заметное растяжение или нереалистичную деформацию воды. Если вам нужны соседние области с противоположными направлениями течения, создайте плавный переход между ними вместо того, чтобы рисовать резкое изменение. Это обеспечивает более естественный вид воды, сохраняя при этом возможность задавать отдельные узоры течений.

Настройка поселений

War Sails вводит несколько дополнительных сущностей для прибрежных поселений. Эти сущности обеспечивают такие функции, как посадка и высадка, морские блокады и точки высадки у деревень.

Точки порта

Чтобы разрешить морским партиям садиться на корабли и высаживаться в прибрежном городе, добавьте дочернюю сущность с именем town_port в поселение.

Эта сущность должна:

Настройка XML поселения

После добавления сущности town_port в прибрежный город необходимо также обновить файл settlements.xml.

В разделе зданий (Buildings) поселения добавьте здание верфи (Shipyard):

<Building
    id="building_shipyard"
    level="1" />

А для сцены верфи вам следует добавить локацию верфи в разделе локаций (Locations) поселения следующим образом:

<Location
    id="port"
    scene_name="aserai_shipyard" />

Точки блокады

Когда прибрежный город осаждён, War Sails отображает морскую блокаду вокруг поселения. Чтобы определить область блокады и позиции кораблей, добавьте следующее:

После добавления этого редактор будет отображать:

Перемещение начальной и конечной точек изменяет протяжённость дуги блокады, позволяя регулировать визуальное расположение блокадного флота.

BlockadePositionScript также предоставляет несколько параметров, которые управляют внешним видом блокады, включая:

Настройте эти значения, чтобы добиться желаемого визуального результата.

Точки высадки (Drop Off Points)

Прибрежные деревни используют точки высадки вместо портов для поддержки посадки и высадки.

Чтобы добавить точку высадки, создайте дочернюю сущность с именем drop_point и присвойте ей тег main_map_village_dropoff.

Как и в случае с портами городов, точка высадки должна быть размещена на судоходной морской навигационной сетке (такой как CoastalSea или River), чтобы она функционировала корректно.

Переход

Помимо переходов между морским плаванием и прибрежными поселениями, War Sails также поддерживает прямые переходы между судоходной водой и сушей.

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

Например:

Это позволяет вам определять точки посадки и высадки на любом подходящем судоходном береге, а не только в поселениях.

Скрипты

Один из важнейших компонентов на сцене карты мира — SettlementPositionScript, расположенный на сущности settlement_scripts.

Всякий раз, когда вы вносите изменения, влияющие на навигацию или расположение поселений, необходимо регенерировать кэш расстояний между поселениями (Settlement Distance Cache). Это включает такие изменения, как редактирование навигационной сетки или перемещение поселения, включая town_gate, town_port или drop_point.

Чтобы безопасно регенерировать кэш, выполните следующие шаги по порядку:

  1. Перед перестроением кэша расстояний между поселениями убедитесь, что выбраны следующие параметры:
    • _partyNavigationModelOverridenClassName → NavalPartyNavigationModel
    • _distanceModelOverridenClassName → NavalDLCMapDistanceModel
  2. Check Positions (Проверить позиции)
    • Проверяет позиции, связанные с поселениями, и перемещает камеру к любым проблемным местам, облегчая их выявление и исправление.
  3. Save Positions (Сохранить позиции)
    • Сохраняет текущие позиции поселений и все связанные с ними данные.
  4. ComputeAndSaveSettlementDistanceCache
    • Перестраивает кэш расстояний между поселениями. Этот заключительный шаг может занять значительное время в зависимости от вашего оборудования. В процессе редактор вычисляет маршруты поиска пути между каждым поселением и всеми остальными поселениями, а затем сохраняет результаты в кэше.

Плоскость воды и материал

War Sails не использует автоматически генерируемую воду сцены движка. Вместо этого используются пользовательские плоские меши с материалами воды.

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

Стандартная плоскость воды War Sails использует следующую конфигурацию:

На изображении ниже показаны необходимые компоненты и параметры для основной плоскости воды карты мира.

Примечание: сцена карты мира также содержит дополнительные сущности water_plane, используемые для озёр. Прежде чем вносить какие-либо изменения, убедитесь, что вы выбрали правильную плоскость воды.

Создание новой плоскости воды

Чтобы создать новую плоскость воды:

  1. Добавьте префаб water_plane на сцену.
  2. Позиционируйте, вращайте и масштабируйте его по мере необходимости.
  3. В Inspector откройте вкладку Materials и назначьте нужный материал воды (обычно naval_worldmap_water).
  4. Убедитесь, что необходимые скрипты и тег присутствуют, если плоскость воды предназначена для функционирования в качестве судоходной воды карты мира.

После настройки плоскость воды будет интегрирована с системами рендеринга воды War Sails и Flowmap.

Система штормов

War Sails включает динамическую систему штормов, которая генерирует штормы над открытой водой.

Карта мира разделена на сетку ячеек размером 32 × 32 единицы. Для каждой ячейки, центр которой лежит на навигационной сетке OpenSea, игра периодически проверяет, должен ли появиться шторм.

Доступны три типа штормов:

Тип генерируемого шторма зависит от данных Flowmap в выбранном месте. Каждый тип шторма имеет свою собственную скорость перемещения, радиус и характеристики урона.

Настройка штормов

Поведение шторма можно настроить, переопределив StormModel (через код, а не в редакторе). Это позволяет настраивать такие параметры, как:

Движение шторма

Штормы не следуют заранее определённым путям. Вместо этого ими управляет Flowmap.

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

Соображения по Flowmap

Штормы постепенно ослабевают и в конечном итоге рассеиваются, если остаются над навигационной сеткой суши.

По этой причине при рисовании Flowmap вблизи береговых линий рекомендуется направлять поток от суши к открытой воде. Это помогает удерживать штормы в море и предотвращает их немедленное рассеивание после появления или дрейфа вблизи побережья.

Точки появления пиратов

War Sails использует выделенные точки появления пиратов для контроля того, где появляются пиратские партии и какие регионы они патрулируют со временем.

К каждой точке появления пиратов должен быть прикреплён скрипт PirateSpawnPoint. В скрипте установите Clan String ID (строковый ID клана) на соответствующий пиратский клан. В War Sails доступны два клана:

Если вы хотите добавить новые кланы, вам следует определить их в clans.xml, а затем добавить их на карту мира.

Эта страница переведена с помощью ИИ и может содержать неточности. Оригинал на английском языке является основным источником.