Создание воксельных ассетов: Разбор личного кейса

от автора

Скриншот использования ассетов в Unity

Скриншот использования ассетов в Unity

Тип проекта: Asset Pack

Инструменты: MagicaVoxel,Unity, Photoshop

Всего ассетов: ~530 воксельных моделей

Дополнительно: Скайбоксы (Skyboxes), шейдер воды (Water Shader), кастомная система сетки (Custom Grid System), инструмент расстановки объектов (Scatter Tool), инструмент ландшафта (Terrain Tool) и текстуры ландшафта

Создание воксельных ассетов на первый взгляд может показаться тривиальной задачей. Мы все играли в Minecraft и думаем, что это просто расстановка блоков, верно? По сути, обычный 3D пиксель-арт

Визуально воксели работают именно так, как вы от них ожидаете. Это действительно своего рода «3D пиксель-арт». Однако всё становится гораздо сложнее, когда вы начинаете рассматривать эти ассеты в контексте реал-тайм проекта (в реальном времени).

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

Это амбициозная цель, но определенно достижимая. В этой статье я поделюсь своим процессом создания этих ассетов, трудностями, с которыми столкнулся, и уроками, которые извлек по пути.

Для начала я собрал референсы, вдохновение и визуальный материал, после чего создал мудборд (moodboard).

Moodboard

Moodboard
Основные источники вдохновения: Town to City, Teardown и Lay of the Land.

Основные источники вдохновения: Town to City, Teardown и Lay of the Land.
Основные источники вдохновения: Town to City, Teardown и Lay of the Land.

Основные источники вдохновения: Town to City, Teardown и Lay of the Land.
Основные источники вдохновения: Town to City, Teardown и Lay of the Land.

Основные источники вдохновения: Town to City, Teardown и Lay of the Land.
Основные источники вдохновения: Town to City, Teardown и Lay of the Land.

Основные источники вдохновения: Town to City, Teardown и Lay of the Land.

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

На самом деле, главная сложность заключалась не в создании самих моделей. Процесс подчинялся тем же принципам, что и любой творческий проект: экспериментируй, тестируй, собирай фидбек, вноси правки — и так по кругу (итерируй), пока не получишь результат, который тебя устроит.Настоящий вызов крылся в том, как именно движок Unity обрабатывает воксели.

Главная сложность заключалась именно в том, как движок Unity обрабатывает воксели.

  • Проблемы оптимизации

    Unity рендерит каждый треугольник в полигональной сетке (mesh). Чем больше треугольников, тем больше времени требуется на рендеринг и тем хуже производительность. Мне приходилось многократно и сильно снижать детализацию моих ассетов, балансируя между качеством визуала и производительностью.Также я настроил отсечение (culling) всех невидимых полигонов, чтобы рендерить только то, что попадает в поле зрения камеры, и полностью удалил все внутренние грани блоков. Это погрузило меня в глубокое изучение воксельной оптимизации и привело к использованию таких алгоритмов, как Greedy Meshing (алгоритм жадного мешинга).

    Источник: Blackflux.com

    Источник: Blackflux.com
  • Создание инструментов (Building the Tools)

    Большая часть времени ушла на создание инструментов, которые делают разработку воксельного окружения максимально простой и быстрой. Сюда вошли система сетки (Grid System), инструменты ландшафта (Terrain tools) и многое другое.

    Ссылка на демонстрацию работы системы сетки (Grid System) в действии: [LINK]

    Работа системы сетки (Grid System) с воксельными тайлами.

    Работа системы сетки (Grid System) с воксельными тайлами.

    Большое количество времени также ушло на адаптацию ассетов для работы со встроенной системой ландшафта Unity (Unity Terrain), создание кастомного генератора ландшафта, а также на общую оптимизацию ради модульности и удобства использования.Я очень доволен тем, какими получились эти ассеты, а также их гибкостью и функционалом, когда дело доходит до создания великолепных воксельных миров.

    Спасибо за внимание! Надеюсь, этот разбор кейса был полезен для тех, кто работает с Unity и воксельной графикой. Буду рад услышать ваше мнение и вопросы в комментариях

ссылка на оригинал статьи https://habr.com/ru/articles/1046750/