Skip to content

Создание карт для Kino (WIP)

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

Содержание:

Требования

  • Редактор Unity 2020.3.25f1
  • Софт для 3D моделиорвания

Подготовка

Установка Unity

В первую очередь необходимо установить Unity Hub, скачать его можно по ссылке:
https://unity3d.com/get-unity/download Далее нажмите на кнопку Download Unity Hub, скачайте и установите его. unity_hub

Теперь приступим к установке Unity. В данный момент используется версия 2020.3.25f1. Скачать редактор можно по ссылке:
https://unity3d.com/get-unity/download/archive

Тут нужно выбрать нужную нам версию в данный момент это 2020.x unity_header
После найди в списке Unity 2020.3.25f1 и нажми на кнопку Unity Hub

unity_download

После загрузки и установки в списке появится нужный редактор

unity_hub_installs

Далее необходимо установить дополнительные пакеты для сборки карт как для Windows так и для OSX
Для этого выбери нужный редактор, нажми на шестеренку затем на Add modules

unity_hub_add

В окне сними флажок с Visual Studio, если она тебе не нужна.

unity_hub_vs

Далее добавь компоненты Mac Build Support и Windows Build Support, после чего нажми Install

unity_hub_modules

Установка Unity завершена!

Установка KinoMap SDK

В данный момент инструмент для создания карт Kino представлен в виде Unity проекта.
Скачать инструменты можно по ссылке:
https://github.com/trbflxr/kino_map_sdk

Скачать проект можно с помошью Git или в виде .zip архива. * Установака с помошью git: git clone https://github.com/trbflxr/kino_map_sdk * Установка посредством .zip архива: Нажми на кнопку Code, затем Download ZIP sdk_zip

Проект скачан, можно приступать к настройке Unity.

Настройка проекта KinoMap SDK

Первым делом нужно добавить проект в Unity Hub. Для этого открой Unity Hub и нажми на кнопку Open.
В окне проводника укажи путь до папки kino_map_sdk.
После чего проект появится в списке. Дабл-кликни по нему что бы запустить редактор. sdk_hub

Подготовка к созданию карты

Освещение в редакторе

В проекте есть сцена Lighting в папке Assets/Scenes. Перетащи её во вкладку Hierarchy, для того что бы работало освещение в редакторе.
Это опциональный шаг, который нужен для примерного понимания как будет освещена карта в игре.
Ты можешь менять и настраивать эту сцену как тебе угодно, она нужна только для редактора и в игре использоваться не будет. sdk_lighting

Создание сцены карты

Для создания новой сцены нажми на File затем New Scene
Или используй сочетание клавиш Ctrl + N для Windows и Command + N для OSX.
sdk_new_scene

Далее нужно выбрать пустую сцену Empty (Built-in) и нажать Create
sdk_new_scene

Пустая сцена создана, теперь сохрани её через File затем Save
Или сочетанием клавиш Ctrl + S для Windows и Command + S для OSX.
Я сохранил сцену в папку Assets/Scenes, это не принципиально, сцену можно сохранить в любую удобную папку в проекте. sdk_new_scene

Добавление контента карты

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

Теперь приступим к наполнению её контентом.
С этого момента ты можешь добавлять в проект любые модели и шарить их между разными картами.

Рассмотрим пример с добавлением .fbx модели и текстур для неё. Перетащи нужные тебе файлы в папку с картой. sdk_fbx_drag

Теперь перетащи модель на сцену.
sdk_map_hierarchy_drag
В данный момент у тебя скорее всего вся модель розовая и на ней нет материалов.

Создай папку для материаллов. Я создал её в папке NewTestMap и назвал materials
sdk_create_mat_folder

Следующим шагом будет извлечение материалов. Для этого выбери модель во вкладке Project, затем во вкладке Inspector выбери Materials и нажми Extract Materials.... После чего распакуй материалы в папку, которую создал ранее.
sdk_materials_extract
Теперь модель должна выглядеть нормально, можно приступать к настройке материалов, если это необходимо. sdk_mat_config

Важные замечания по структуре карты

Карта для Kino не должна содержать никаких источников света с типом Directional Light, а также не должна содержать компонентов Volume. А также на ней не должно быть никаких камер.

Настройка структуры карты

Поверхности

В нанный момент Kino поддерживает следующие типы поверхностей: * road * grass * dirt * gravel * sand * ice * snow * kerb

Распаковка префаба

Первым делом нужно распаковать префаб. Для этого нажми правой кнопкой по префабу, затем выбери Prefab -> Unpack. sdk_prefab_unpack

Структура карты

Приступим к настройке структуры карты.
Логика тут очень простая, поверхности с асфальтом необходимо перенести в объект road траву в grass и т.д.
Добавь объект на сцену и назови его по типу поверхности. sdk_new_road

В примере я создал Empty объекты road и grass. И перетащил в них все поверхности, которые должны восприниматся игрой как асфальт и как трава.
sdk_group
По такому же принципу нужно структурировать объекты других типов.

Оптимизация

Дальее нужно выбрать все статические объекты, на пример дороги, столбы, дома и выставить им флаг Static.
sdk_static

Коллайдеры

Для обработки столкновений карте необходимо выставить коллайлеры.
Выбери все объекты, которые должны иметь коллайлер и установи им Mesh Collider. sdk_collider
В примере я установил коллайдеры только для дороги и травы. При создании карты коллайдеры нужно устанавливать всем объектам, с которыми должны происходить столкновения.

Точки спавна

Для добавления точек спавна нужно создать объект Empty с именем waypoints в корне сцены. Затем в него добавить нужные точки спавна. Первая точка в списке будет дефолтной позицией спавна в игре. Все эти точки будут доступны в модуле Waypoints.
sdk_waypoints_root

Rigid bodies

Для добавления динамических объектов RigidBody нужно создать объект Empty с именем rigid_bodies в корне сцены.
В него добавь все динамические объекты со сцены. Также обязательно удостоверься, что у всех объектов в rigid_bodies НЕ установлен флаг static.
Также на все эти объекты нужно добавить компонент RigidBody.
sdk_rigid_bodies

После чего можно приступить к настройке компонента. Тут всё в твоих руках, эксперементируй.
sdk_rigid_body

MapTool и сборка карты

Что бы открыть инструмент для создания карт нажми Kino -> MapTool.
sdk_maptool_open

Открывшееся окно можно переместить в любую группу в редакторе.
sdk_maptool_drag

MapTool

Поле Creator name нужно для имени создателя карты.
Ниже список карт. Флажками отмечены те карты, которые будут собиратся. Отмечай только ту карту, над которой работаешь в данный момент. Таким образом остальные карты не будут пересобиратся, это ускорит процесс.
Ниже есть кнопка Add new map entry, с помошью которой можно добавить новую карту в список. Для удаления карты из списка нужно нажать Remove ''.

Ниже кнопки Reload cache и Wipe cache, которые нужны для перезагрузки или удаления кэша карт. Кэш карт хранится в файле Assets/Build/map_cache.knd и нужен для сохранения состояния этого инструмента.

Кнопки Build for all platforms и Build for '' отвечают за сборку карт для всех платформ или только для текущей платформы. Собирай карты для всех поатформ только для тестов или для финальной публикации карты, это ускорит процесс. sdk_maptool

Сборка карты

Для сборки карты заполни поле Creator name. После добавь новую карту в список, если ты ещё не добавил её.
Отметь карты, которые будешь собирать флажками и заполни их поля.
Укажи имя карты в поле Map name.
В поле Scene нужно перетащить сцену карты, в примере это ранее созданная NewMapTest.
В поле Load screen перетащи картинку в формате .png или .jpg для загрузочного экрана.

И на конец для сборки карты нажми Build for all platforms или Build for ''.
Финальный результат находится в папке Build, быстро открыть которую можно с помощью меню Kino -> Open maps folder. sdk_maps_open

На выходе у тебя получатся карты для выбранных при сборке платформ. Их можно загружать через Kino. sdk_maps_out

Back to top