Найти в Дзене
Snout_News

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

В Unity есть отличный функционал по созданию 2D Tilemap, который позволяет реализовать красивые изометрические и 2D миры. Но, что если нужно создать именно 3d Tilemap?
В этой статье я расскажу как это сделать без единой строчки кода. При создании карты с использованием 2d тайлов, можно указывать правила (Rule Tile), по которым будут размещены тайлы в игровом пространстве. Они нужны для того, чтобы делать плавные переходы между разными типами поверхностей, при этом автоматически. Достаточно просто рисовать базовыми цветами настроенными в правилах, а они в свою очередь расставят переходы между тайлами.
Пример: Как видим, на скриншоте с настройкой правила есть поле "GameObject", а это значит, что мы можем поместить в него любой префаб. И он будет размещаться на карте согласно установленным правилам. А это значит, что мы можем применить 2d подход в 3d.
На сцене мы видим множество объектов, при этом в иерархии для каждого тайла он один. Все это будет работать и взаимодействовать с физикой
Оглавление

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

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

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

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

  • Blender3d или любой другой софт для создания 3d моделей тайлов
  • Unity + установленные стандартные пакеты для работы с 2D Tilemap
  • Понимание как работать с правилами 2D Tilemap (Rule Tile)

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

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

Как видим, на скриншоте с настройкой правила есть поле "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 уровней!

доставка алкоголя

Доставка алкоголя на дом Москва круглосуточно, алкоголь 24 часа, ночью

заказывали в этой компании производство упаковок для бизнеса, объемом 10 000 шт. с нанесением на них красочной картинки товара

https://deltaprintt.ru/konstrukcii/

заказывали в этой компании производство упаковок для бизнеса, объемом 20 000 шт. с нанесением на них красочной картинки товара

https://deltaprintt.ru/konstrukcii/

заказывали в этой компании производство упаковок для бизнеса, объемом 30 000 шт. с нанесением на них красочной картинки товара

https://deltaprintt.ru/konstrukcii/