Как стать автором
Обновить

Как создать 3D Tilemap в unity без кода

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров849

В Unity есть отличный функционал по созданию 2D Tilemap, который позволяет реализовать красивые изометрические и 2D миры.

Но, что если нужно создать именно 3d Tilemap?

В этой статье я расскажу как это сделать без единой строчки кода.

Что нам требуется?

  • Blender3d или любой другой софт для создания 3d моделей тайлов

  • Unity + установленные стандартные пакеты для работы с 2D Tilemap

  • Понимание как работать с правилами 2D Tilemap (Rule Tile)

Основной принцип работы

При создании карты с использованием 2d тайлов, можно указывать правила (Rule Tile), по которым будут размещены тайлы в игровом пространстве. Они нужны для того, чтобы делать плавные переходы между разными типами поверхностей, при этом автоматически. Достаточно просто рисовать базовыми цветами настроенными в правилах, а они в свою очередь расставят переходы между тайлами.
Пример:

(палитра 2d тайлов)
(палитра 2d тайлов)
(настройки одного из правил)
(настройки одного из правил)
(расположение тайлов на сцене после применения правил)
(расположение тайлов на сцене после применения правил)

Как видим, на скриншоте с настройкой правила есть поле "GameObject", а это значит, что мы можем поместить в него любой префаб. И он будет размещаться на карте согласно установленным правилам. А это значит, что мы можем применить 2d подход в 3d.
На сцене мы видим множество объектов, при этом в иерархии для каждого тайла он один. Все это будет работать и взаимодействовать с физикой и скриптами.

(Вот что мы имеем в иерархии)
(Вот что мы имеем в иерархии)
(вот что мы видим в сцене)
(вот что мы видим в сцене)


Далее расскажу как это настроить...

Создаем 3d модели

Нам необходимо создать 3d тайлы по тому же принципу, по которому сделана 2d сетка на скриншоте:


Вот что у меня получилось. Я сделал 2 вида поверхностей, с разными размерами

  • Камни - 6 метров кубических

  • Трава - 4 метра кубических

Если сравнить скриншоты, то видно, что в 2d у нас присутствует два вида поверхности на одной сетке. Трава и песок.

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

Самое сложное в построении таких 3d тайлов, это правильно по размерам отрисовать все модели и расставить им точки вращения. Я сначала делал Кубы 6 на 6 метров, ставил их рядом, устанавливал каждому pivot в самом низу куба, по центру, а потом соединял кубы вместе с помощью привязки по сетке в Blender.

Далее каждый куб делил на грани и вручную делал неровности.

Важные моменты

  • pivot всегда должен быть внизу куба и по центру для дальнейшей корректной расстановки данных объектов в untity

  • Точки, которые граничат с точками соседних объектов - не нужно деформировать после разделения кубов на грани. Они все должны находиться на равных высотах. Потому, что каждый тайл может граничить с тайлами двух-трех разновидностей.

Как все настроить в Unity

Первым делом устанавливаем пакеты для работы с 2d

  • 2D Sprite

  • 2D Tilemap Editoir

  • 2D Tilemap Extras

Импортируем наши 3d тайлы и разделяем их на префабы:

Создаем Tile Palette

Открываем окно TilePalette нажимаем "Create New Palette"
Устанавливаем в "Cell Size" все параметры равные 0.16
Нажимаем "Create"

Создаем TileMap
В иерархии сцены кликаем:

Выбираем появившийся объект "Grid" и в инспекторе указываем размеры "Cell Size" - это первоначальные размеры наших кубов из которых мы делали тайлы. В моем случае это были кубы 6 на 6 для камней.

"Cell Swizzle" ставим XZY

Создаем Rule Tile

В окне Project кликаем:

Выбираем появившийся объект и в инспекторе устанавливаем параметры правила:

DefaultSprite — я указал спрайт 16 на 16 пикселей такой же как при создании Tile Palette

Default Game Object — тут установлен префаб, который отоборажён по центру. Именно его вы будете видеть рисуя tilemap с помощью кисти.

Tiling Rueles — это массив префабов, которые будут размещены согласно установленным правилам. Прилагаю скриншот с названиями объектов для того чтобы было понятнее как все настроено:

Финальный этап

Переносим наш созданный Rule Tile в Tile Palette.

У меня два цвета, так как я настроил и камни и траву для своей сцены.
У меня два цвета, так как я настроил и камни и траву для своей сцены.

Выбираем нужный вам тайл, кликаем на кисть, и рисуем прям внутри окна Scene ваши 3D тайлы. Также вам доступны другие все те же инструменты, что и для создания 2d тайлов, только в 3d,

Вы можете создавать множество TileMep Для создания многоуровневых поверхностей. Просто изменяйте расположение TileMap по оси Z.

Плюсы, минусы и выводы!

Плюсы:

+ Вы получает чистую иерархию в сцене.
+ Вы получаете инструментарий для создания 3d TileMap

Минусы:

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

Инструменты для создания 2d Tilemap можно использовать для реализации 3d Tilemap.
Эту тему можно расширять и генерировать 3d тайлы с помощью карт высот или пиксельных изображений, где один пиксель отвечает за один тайл. Изучайте создание 2d Tilemap для применения данных знаний и практик в построении 3d уровней!

Теги:
Хабы:
0
Комментарии2

Публикации

Работа

Ближайшие события