Создание пользовательских локаций

Материал из War Thunder Wiki
Перейти к: навигация, поиск

Создание и проверка локаций

Локации создаются с помощью редактора daeditor. Чтобы создать новую локацию, необходимо скопировать имеющийся пример (location_sample) с новым названием (например my_location) и переименовать файл locations_sample.level.blk в my_location.level.blk. Описание возможностей по редактированию локаций предмет отдельной статьи. Кратко опишем основные возможности:

  • редактирование карты высот кисточками
  • автоматическое и ручное раскрашивание ландшафта
  • использование сплайновых объектов (дороги, с растущими вокруг деревьями; телеграфные линии; заборы; прибрежные линии и тд и тп), а также различные возможности модифицировать сплайнами ландшафт
  • расстановка объектов вручную (таких как например аэродромы замки, скалы или порты). Объекты расставляемые вручную бывают нескольких типов - эффекты, rendinstances, prefabs, composits.

После того, как вы создали\модифицировали локацию, необходимо отэкспортить её в игру, в папку content/pkg_local/levels/my_location.bin. Если вам необходимо сделать доступной локацию, созданную другим пользователем, необходмо поместить её в папку content/pkg_user/levels/my_location.bin Для того, чтобы локация работала в игре ей необходим также Location configuration file (файл настроек) - my_location.blk, который необходимо разместить рядом с отэкспорченным уровнем. Как правило, для уровня также нужна карта. Настройки вывода карты и её название также лежат в конфигурационном файле уровне.

Для того, чтобы запустить вашу локацию в игре необходима миссия, которая бы работала на вашей локации. Вы можете модифицировать любую миссию в папке UserMissions (например - test_location_sample.mission.blk) вписав в блок mission_settings->mission в поле параметра level имя своей локации, например так level:t="levels\my_location.bin". Теперь достаточно выбрать модифицированную вами миссию в User Missions в игре, и если всё было сделано правильно, то вы окажитесь на своей локации в игре.

Подробнее о функционале редактора локаций читайте в статье.


Логика передвижения танковых ботов

Navigation mesh меню.png

В наземных миссиях необходимо понимать, как ездят танковые боты. Для передвижения по ландшафту специально рассчитывается при экспорте миссии так называемый navigation mesh. Это специальная геометрия, в пределах которой работает навигация у танковых ботов. Если этот меш где-то отсутствует, то бот туда проехать не сможет. В редакторе миссий вы можете посмотреть на него, выбрав кнопку Просмотр navigation mesh.png в плагине Scene view. Он изображается красными треугольниками поверх существующего ландшафта и по умолчанию включен.


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

Важно понимать, что навигационный mesh создаётся только вокруг сплайнов, у которых это указано в свойствах.

Microdetail

Msg-info.png Добавлено с выходом обновления 1.77 “Буря”, Dagor Engine 5.0 и обязательно к использованию.

Текстуры microdetail_* отвечают за микрофактуры на разных типах поверхностей (без них поверхности отображаются некорректно). Их всегда двенадцать на уровень (не больше и не меньше).

Для их работоспособности в файл настроек уровня или пользовательского ангара my_level.blk необходимо вписывать дополнительную информацию об этих текстурах. А в файл лендклассов (файлы с суфиксом *.land.blk) необходимо прописывать tex_r.

Также у текстур детализации (detail_*) добавились новые свойства, которые находятся в дополнительных файлах под названием tex_r (имена полностью совпадают вплоть до суффикса tex_d, см. пример ниже).

Дополнение в level_name.blk / my_sample.blk

Необходимо прописать блок, добавляюший 12 microdetail на уровне (можно взять прямо из примера) в ваш основной файл настроек уровня или пользовательского ангара my_level.blk

В WarThunder\content\pkg_local\levels\location_sample.blk он уже прописан.

Пример:

micro_details{
 micro_detail:t=microdetail_stone_a_tex_n
 micro_detail:t=microdetail_sand_c_tex_n
 micro_detail:t=microdetail_sand_a_tex_n
 micro_detail:t=microdetail_soil_a_tex_n
 micro_detail:t=microdetail_generic_granules_a_tex_n
 micro_detail:t=microdetail_grass_a_tex_n
 micro_detail:t=microdetail_forest_floor_a_tex_n
 micro_detail:t=microdetail_fabric_a_tex_n
 micro_detail:t=microdetail_wood_b_tex_n
 micro_detail:t=microdetail_metal_a_tex_n
 micro_detail:t=microdetail_snow_a_tex_n
 micro_detail:t=microdetail_generic_granules_a_tex_n

land_micro_details_uv_scale:r=0.73
}


Текстур microdetail в списке всегда должно быть 12.

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

Последние четыре (т.е. с 8 по 12) отвечают за фактуры на объектах окружения (метал, дерево, брезент, пластик).

Текстуры слотов с 5 по 8 дают микродетализацию на более уникальные для уровня поверхности (лёд, снег, мох на камнях, опавшие листья под деревьями и т.д).

Посмотреть, какие текстуры вы можете использовать, можно в assetviewer путём набора в Filter: microdetail_



Лендклассы

Для используемых на уровне лендклассов *.land.blk нужно добавить строки с tex_r. В WarThunderCDK\develop\assets\landclasses\test_editable_land.land.blk он уже прописан.

Пример для блока detail:

Был

detail { 
 texture:t="avg_karpaty_pass_detailed_part_tex_d"
 splattingmap:t="avg_karpaty_pass_detailed_part_tex_m"

 detailRed:t="detail_rocks_tex_d"
 detailGreen:t="detail_grass_small_tex_d"
 detailBlue:t="detail_grass_moss_tex_d"
 detailBlack:t="detail_dirt_tex_d"

 detailSizeRed:r=17.71
 detailSizeGreen:r=18.52
 detailSizeBlue:r=11.71
 detailSizeBlack:r=11.11
 detailSize:r=8
 size:p2=2048, 2048
 offset:p2=0, 0
}

Должен стать

detail { 
 texture:t="avg_karpaty_pass_detailed_part_tex_d"
 splattingmap:t="avg_karpaty_pass_detailed_part_tex_m"

 detailRed:t="detail_rocks_tex_d"
 detail2Red:t="detail_rocks_tex_r"
 detailGreen:t="detail_grass_small_tex_d"
 detail2Green:t="detail_grass_small_tex_r"
 detailBlue:t="detail_grass_moss_tex_d"
 detail2Blue:t="detail_grass_moss_tex_r"
 detailBlack:t="detail_dirt_tex_d"
 detail2Black:t="detail_dirt_tex_r"

 detailSizeRed:r=17.71
 detailSizeGreen:r=18.52
 detailSizeBlue:r=11.71
 detailSizeBlack:r=11.11
 detailSize:r=8
 size:p2=2048, 2048
 offset:p2=0, 0
}

Всё прописываем по аналогии: добавляем detail2 и в конце tex_d меняем на tex_r.

Посмотреть, какие текстуры вы можете использовать, можно в assetviewer путём набора внизу слева в Filter: detail_


Видео-инструкции

Смотрите также