Макет уровней и рабочие процессы ландшафта в Survival Kids

Survival Kids является первым проектом полного цикла разработки Unity, созданным в сотрудничестве с KONAMI. Небольшая команда, которая его создала, использовала десятилетия опыта в разработке игр, и эта серия блогов погружается в то, как они подошли к этому амбициозному проекту. Первый выпуск исследовал работу команды по кадрам и рендерингу, в то время как это издание рассматривает дизайн уровней и окружения.
Хотя в основном мы говорили о том, как мы достигли внешнего вида, который вы видите на экране, мы хотели углубиться в то, что мы сделали, чтобы улучшить наши рабочие процессы, сделав их быстрее, чтобы мы могли доставить проект вовремя.
Из-за размера команды и объема проекта мы уделили много внимания планировке уровней и рабочим процессам по созданию местности. Нам нужно было что-то, что было бы легко для дизайнера уровней для итерации идей, но наш подход также должен был требовать минимальной или нулевой переработки после передачи уровней команде художников. Мы выбрали подход, который имеет очень белый ящик, подобный рабочему процессу для дизайнеров уровней, в то время как мы уже работали с финальными игровыми активами.
Survival Kids использует набор многоразовых строительных блоков для создания основного макета уровней. Это набор префабов с обрывистыми скальными сторонами и патчем сетчатой местности сверху, настроенным в разных размерах и формах.

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

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

Мы использовали инструмент Houdini Engine для создания непрерывных террейновых мешей на основе различных секций террейновых модулей.

Модифицированная версия пакета Unity Polybrush использовалась для окраски различных материалов на террейновых мешах. Модификация заключалась в том, что Polybrush будет окрашивать контрольную текстуру, аналогично тому, как это делает система террейнов Unity, вместо того чтобы окрашивать значения на вершинах меша.

Затем Ambient Occlusion запекается в цвет вершин террейновых мешей, чтобы лучше визуально закрепить объекты, размещенные на них.

Затем был использован пользовательский инструмент для распределения мелких объектов, таких как трава, цветы и мелкие камни, по террейновым мешам. Распределение объектов контролируется индивидуально с использованием параметров, таких как плотность, основной материал, кривизна террейна или близость к более крупным объектам. На протяжении всего проекта мы придерживались очень низкой плотности, чтобы минимизировать влияние на производительность от мелкой растительности.

Затем мы использовали другой пользовательский инструмент для разделения меш-коллайдеров различных террейнов. Мы сделали это двумя способами:
- В виде сетки, чтобы уменьшить количество треугольников и объем каждого меш-коллайдера и улучшить физическую производительность игры
- По материалу, чтобы игра могла генерировать различные звуки и визуальные эффекты шагов в зависимости от того, по какому материалу персонажи идут (трава, песок, снег, лед и т.д.)

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



