Начнём совсем издалека.
Вся нарисованная графика в играх хранится в так называемых текстурных атласах. Обычно это большое растровое изображение, на котором максимально компактным образом размещена используемая в игре графика.
Правда обычно это не один гигантский атлас, а несколько.
И когда мы запускаем игру, её движок берёт картинки из этих самых атласов и собирает в единое целое. При чём если есть повторяющиеся изображение, например деревья или кусты, то движку не нужно пять одинаковых картинок, он может использовать их сколько угодно, ссылаясь на одно изображение в атласе.
И это очень важно, ведь огромную часть общего размера игры занимает именно графика. Никто не захочет скачивать себе на смартфон игру размером в 10 гигабайт, поэтому разработчики всеми возможными способами стараются сэкономить место в этих самых атласах.
И тут на помощь приходят пресловутые тайлы.
Если в графике есть какой-то повторяющийся паттерн, разработчики всегда стараются сделать из этого подобие конструктора
В принципе это уже можно назвать тайлами, но вообще tile - в переводе с английского означает "плитка". И правильнее было бы называть тайлами плоские детали конструктора поверхностей.
А когда мы говорим про изометрию, то чаще всего речь идёт о конструкторе пола, травы, паркета и тому подобного.
Вместо того чтобы рисовать огромное поле травы, рисуется один маленький кусочек, который затем много раз повторяется, как паттерн.
Возникает вопрос:
какого размера должны быть эти тайлы?
Конкретного ответа нет, так как на каждом проекте размер и форма тайлов может быть индивидуальной и как правило это связано с масштабной сеткой, которая тоже может отличаться от игры к игре. Более того, сетка может отличаться не только размером но и формой.
Но в любом случае эта сетка всегда имеет свой конкретный размер в пикселях. И занимаясь разработкой графики для конкретной игры у вас будет задан этот размер, от которого уже можно отталкиваться.
А если же вы создаёте проект для себя, то и размер тайлов можете так же установить по своему усмотрению.
Давайте попробуем нарисовать наш первый тайл.
Если составлять тайлы "стык в стык" вы наверняка столкнётесь с этим бесячим полупрозрачным швом
который появляется из-за полупрозрачных пикселей на границах диагональных линий.
Но существует способ как с этим справиться.
Нарисованный тайл будет вставляться в игру, условно говоря, в центр каждой ячейки масштабной сетки, независимо от размера самого тайла, будь он меньше или больше размера клетки.
Это даёт нам возможность сделать тайл немного бóльшего размера (на пару пикселей) , чтобы получался "нахлёст" который скроет этот неприятный шов.
При создании тайлов я использую копии смартобъектов (о чём я писал в предыдущих постах), чтобы сразу видеть, на сколько хорошо всё стыкуется. Плюс такой подход помогает избежать слишком заметного паттерна. Для этого текстура должна быть равномерной плотности, без явных заметных элементов.
Но полностью избавиться от паттерности, при этом сохранив разнообразие текстуры бывает сложно, поэтому часто добавляется второй слой с дополнительными текстурами.
Кстати, обратите внимание на примере травы, что тайл совсем не обязательно должен иметь ровный край и быть исключительно в виде квадрата или ромба.
К слову тайлы это не только текстура горизонтальной поверхности. Стены так же обычно делаются тайлами.
По большому счёту тайлами могут называться любые повторяющиеся части арта, из которых как из конструктора можно собрать большую картинку, при этом сэкономив уйму места в атласах.
Надеюсь эта статья помогла разобраться в том, что такое тайлы, для чего они нужны и как работают. Зная основы вы самостоятельно сможете создавать свои тайлы в любых игровых условиях. Спасибо за внимание и до новых встреч!