Использование TileMaps (Тайловых Карт)
См. также
Эта страница предполагает, что вы уже создали или загрузили TileSet. Если нет, сначала прочтите TileSets (Тайловые наборы), так как вам понадобится TileSet для создания TileMap.
Введение
Tilemap - это сетка из тайлов, используемая для создания игрового макета. Использование TileMapLayer для проектирования уровней имеет несколько преимуществ. Во-первых, они позволяют отрисовывать макет, "рисуя" тайлы на сетке, что намного быстрее, чем размещать отдельные Sprite2D один за другим. Во-вторых, они позволяют создавать гораздо более широкие уровни, поскольку оптимизированы для рисования большого количества фрагментов. И, наконец, вы можете добавлять к фрагментам collision (фигуры столкновения), occlusion (окклюзию) и navigation shapes (формы навигации), что расширяет функциональность мозаичной карты.
Настройка TileSet для TileMapLayer
Если вы следовали предыдущей странице TileSets (Тайловые наборы), у вас должен быть ресурс TileSet, встроенный в узел TileMapLayer. Это хорошо для прототипирования, но в реальном проекте у вас, как правило, будет несколько уровней, повторно использующих один и тот же набор тайлов.
Чтобы использовать один и тот же TileSet в нескольких TileMapLayer, рекомендуется сохранить его как внешний ресурс. Для этого, в свойстве TileSet разверните выпадающее меню и выберите Save:
Сохранение встроенных ресурсов TileSet во внешние файлы ресурсов
Несколько TileMapLayer и настройки
При работе с мозаичными картами рекомендуется использовать несколько узлов TileMapLayer, если это уместно. Тайлы, расположенные в одной области, но на разных слоях, будут наслаиваться друг на друга. Это позволит, например, разграничить фон от переднего плана. Использование нескольких слоев может упростить организацию сцены.
У каждого узла TileMapLayer есть несколько свойств, которые вы можете настроить:
Enabled: Значение
trueделает слой видимым в редакторе и при запуске проекта.TileSet tileset, используемый узлом TileMapLayer.
Отрисовка
Y Sort Origin: Вертикальное смещение, используемое для сортировки каждого тайла по оси Y (в пикселях). Используется только, если свойство Y Sort Enabled в разделе CanvasItem установлено в
true.X Draw Order Reversed Меняет порядок отрисовки тайлов по оси X на обратный. Работает только если свойство Y Sort Enabled в разделе CanvasItem установлено в
true.Rendering Quadrant Size Квадрант — это группа тайлов, нарисованных вместе на одном CanvasItem в целях оптимизации. Этот параметр определяет длину стороны квадрата в системе координат карты. Размер квадранта не применяется к отсортированному по Y TileMapLayer, поскольку в этом случае тайлы группируются по Y.
Физика
Collision Enabled Включает или отключает столкновения.
Use Kinematic Bodies При наличии истинных форм столкновений TileMapLayer они будут созданы как кинематические тела.
Collision Visibility Mode (Режим видимости столкновений) Видны ли формы столкновений TileMapLayer. Если установлено значение по умолчанию, то это зависит от настроек отладки столкновений.
Переопределение порядка слоев
Порядок слоёв можно изменить, перетаскивая их мышью во вкладке сцены. Вы также можете переключаться между слоями с помощью кнопок TileMap редактора в верхнем правом углу.
Примечание
Вы можете создавать, переименовывать или менять порядок слоев в будущем, не затрагивая существующие тайлы. Однако будьте осторожны, так как удаление слоя также удалит все тайлы, которые были размещены на слое.
Открытие редактора TileMap
Нажмите на узел TileMapLayer и откройте панель TileMap внизу редактора:
Открытие панели TileMap в нижней части редактора. Сначала необходимо выбрать узел TileMapLayer.
Выбор тайла для покраски
Во-первых, если вы создали дополнительные слои выше, убедитесь, что вы выбрали слой, на котором хотите рисовать:
Выбор слоя для рисования в редакторе TileMap
Совет
В 2D-редакторе слои, которые вы в данный момент не редактируете из того же узла TileMapLayer, будут отображаться серым цветом в редакторе TileMap. Вы можете отключить это поведение, щелкнув значок рядом с меню выбора слоя (подсказка Highlight Selected TileMap Layer).
Вы можете пропустить предыдущий шаг, если вы не создали дополнительные слои, так как первый слой автоматически выбирается при входе в редактор TileMap.
Прежде чем вы сможете разместить тайлы в 2D-редакторе, вы должны выбрать один или несколько тайлов на панели TileMap, расположенной в нижней части редактора. Для этого щелкните тайл на панели TileMap или удерживайте кнопку мыши для выбора нескольких тайлов:
Выбор тайла в редакторе TileMap путем щелчка по нему
Совет
Как и в редакторах 2D и TileSet, вы можете перемещаться по панели TileMap с помощью средней или правой кнопки мыши, а также масштабировать изображение с помощью колесика мыши или кнопок в верхнем левом углу.
Вы также можете удерживать Shift, чтобы добавить к текущему выбору. При выборе более одного тайла, они будут размещаться по несколько штук. Это можно использовать для покраски структур, состоящих из нескольких тайлов одним щелчком (например, больших платформ или деревьев).
Окончательный выбор не обязательно должен быть непрерывным: если между выбранными тайлами есть пустое пространство, оно останется пустым в узоре, который будет нарисован в 2D-редакторе.
Выбор нескольких тайлов в редакторе TileMap путем удержания левой кнопки мыши
Если вы создали альтернативные тайлы в своем TileSet, вы можете выбрать их для рисования справа от базовых тайлов:
Выбор альтернативного тайла в редакторе TileMap
Наконец, если вы создали коллекцию сцен в TileSet, вы можете разместить тайлы сцен в TileMap:
Размещение тайла сцены, содержащей частицы, с помощью редактора TileMap
Режимы рисования и инструменты
Используя панель инструментов в верхней части редактора TileMap, вы можете выбирать между несколькими режимами рисования и инструментами. Эти режимы влияют на работу при щелчке в 2D-редакторе, а не на саму панель TileMap.
Слева направо, доступные для выбора режимы рисования и инструменты:
Выделение
Выберите тайлы, щелкнув по одному, или удерживая левую кнопку мыши, чтобы выбрать несколько с помощью прямоугольника в 2D-редакторе. Обратите внимание, что пустое пространство недопустимо: если вы создадите прямоугольное выделение, будут выбраны только непустые тайлы.
Чтобы добавить, удерживайте Shift, затем выберите тайл. Чтобы удалить, удерживайте Ctrl, и выберите тайл.
Затем выделенный фрагмент можно использовать в любом другом режиме рисования для быстрого создания копий уже размещенного узора.
Вы можете удалить выбранные тайлы из TileMap, нажав Del.
Вы можете зажать этот режим временно, удерживая клавишу Ctrl, и выделив.
Совет
Вы можете копировать и вставлять тайлы, которые уже были размещены, нажав Ctrl + C, Ctrl + V по выбранным тайлам. Оно будет вставлено после щелчка левой кнопкой мыши. Вы можете нажать Ctrl + V еще раз, чтобы создать больше копий. Щелкните правой кнопкой мыши или нажмите Escape, чтобы отменить вставку.
Покрасить
Стандартный режим рисования позволяет размещать тайлы, нажимая или удерживая левую кнопку мыши.
Если щелкнуть правой кнопкой мыши, текущий выбранный тайл будет стерт из tilemap. Будет замещен пустым пространством.
Если вы выбрали несколько тайлов в TileMap или используя «Выделение», они будут размещаться каждый раз, когда вы щелкаете или перетаскиваете мышь, удерживая левую кнопку мыши.
Совет
В режиме Paint вы можете нарисовать линию, удерживая Shift перед нажатием левой кнопки мыши, и перетаскивая мышь к целевой точке линии. Это идентично использованию инструмента Line, описанного ниже.
Вы также можете нарисовать прямоугольник, удерживая Ctrl и Shift перед нажатием левой кнопки мыши, и перетащив мышь к концу прямоугольника. Это аналогично использованию Rectangle, описанного ниже.
Наконец, вы можете выбрать существующие тайлы в 2D-редакторе, удерживая Ctrl, а затем щелкнув по нему (или удерживая и перетаскивая мышь). Это переключит текущий окрашенный тайл на тот, по которому вы только что щелкнули. Это аналогично использованию Picker, описанного ниже.
Строка
Выбрав режим Рисования Линий, вы можете нарисовать линию толщиной в 1 тайл (независимо от его ориентации).
Если щелкнуть правой кнопкой мыши в режиме рисования линий, можно стереть линию.
Если вы выбрали несколько тайлов в TileMap или с помощью инструмента «Выделение», вы можете разместить их в повторяющемся узоре по всей линии.
Вы можете временно переключить этот режим при Рисовании или Удалении, удерживая клавишу Shift и рисуя.
Использование «Линии» после выбора двух тайлов для рисования платформ по диагонали
Прямоугольник
Выбрав режим Рисования Прямоугольника, вы можете рисовать в прямоугольнике, выровненном по осям.
Если щелкнуть правой кнопкой мыши в режиме рисования прямоугольника, вы сотрете прямоугольник, выровненный по осям.
Если вы выбрали несколько тайлов в TileMap или с помощью инструмента «Выделение», вы можете разместить их в повторяющемся узоре внутри прямоугольника.
Вы можете временно переключить этот режим при Рисовании или Удалении, удерживая клавиши Ctrl, Shift и рисуя.
Заливка
После выбора режима Заливки вы можете выбрать, следует ли ограничивать закрашивание только смежными областями, установив флажок Смежные, который отображается справа на панели инструментов.
Если вы включите Contiguous (по умолчанию), будут заменены только соответствующие тайлы, которые касаются текущего выбора. Эта проверка непрерывности выполняется по горизонтали и вертикали, но не по диагонали.
Если вы отключите Contiguous, все тайоы с тем же ID во всем TileMap будут заменены текущим выбранным тайлом. Выбрав пустой тайл с неотмеченным Contiguous, вы замените все тайлы в прямоугольнике, который охватывает эффективную область TileMap.
Если щелкнуть правой кнопкой мыши в режиме Заливки, совпадающие тайлы будут заменены пустыми.
Если вы выбрали несколько тайлов в TileMap или с помощью «Выделения», вы можете разместить их в повторяющемся узоре в заполненной области.
Использование инструмента Bucket Fill (Заливка)
Пипетка
После выбора режима Picker вы можете выбрать существующие тайлы в 2D-редакторе, удерживая Ctrl, а затем нажав на него. Это переключит текущий окрашенный тайл на тот, что вы только что щелкнули. Вы также можете выбрать несколько тайлов одновременно, удерживая левую кнопку мыши и формируя прямоугольное выделение. Можно выбрать только непустые тайлы.
Вы можете временно переключить этот режим в режиме рисования, зажав клавишу Ctrl и щелкая/перетаскивая мышь.
Стиралка
Этот режим сочетается с любым другим режимом рисования (Paint, Line, Rectangle, Bucket Fill). Когда включен режим ластика, тайлы будут заменяться на пустые вместо рисования новых линий при щелчке левой кнопкой мыши.
Вы можете временно переключить этот режим, находясь в любом другом режиме, щелкнув правой кнопкой мыши вместо левой.
Окрашивание со случайным распределением (Scattering)
При рисовании вы можете по желанию включить рандомизацию. При включении будет выбран случайный тайл среди всех выбранных при рисовании. Это поддерживается инструментами Paint, Line, Rectangle и Bucket Fill. Для эффективной рандомизации рисования необходимо выбрать несколько тайлов в редакторе TileMap или использовать рассеивание (оба подхода можно комбинировать).
Если Scattering установлено на значение больше 0, есть вероятность, что при рисовании не будет размещен ни один тайл. Это можно использовать для добавления случайных, неповторяющихся деталей на большие области (например, добавление травы или крошек на большой top-down (вид сверху вниз) TileMap).
Пример использования в режиме Paint (Рисование):
Щелкните несколько раз для случайного выбора, затем рисуйте с зажатой левой кнопкой мыши
Пример использования режима Bucket Fill (заливки):
Использование инструмента «Заливка» с одним тайлом, но с включенными рандомизацией и рассеиванием
Примечание
Режим Ластика не учитывает рандомизацию и рассеивание. Все тайлы в пределах выделения всегда удаляются.
Сохранение и загрузка готовых вариантов размещения тайла с использованием шаблонов
Хотя вы можете копировать и вставлять тайлы в режиме выбора, вы можете сохранить готовые шаблоны тайлов, чтобы разместить их вместе за раз. Это можно сделать для каждого TileMap, выбрав вкладку Patterns в редакторе TileMap.
Чтобы создать новый узор, переключитесь в режим выбора, выполните выбор и нажмите Ctrl + C. Щелкните по пустому месту на вкладке Patterns (вокруг пустого места должен появиться синий прямоугольник фокусировки), затем нажмите Ctrl + V:
Создание нового паттерна из выделенного в редакторе TileMap
Чтобы использовать существующий паттерн, щелкните его изображение на вкладке Узоры, переключитесь в любой режим рисования, затем щелкните левой кнопкой мыши в любом месте 2D-редактора:
Размещение существующего паттерна с помощью редактора TileMap
Как и при выборе нескольких тайлов, паттерны будут повторяться при использовании режимов «Line», «Rectangle » или «Bucket Fill».
Примечание
Несмотря на редактирование в редакторе TileMap, шаблоны сохраняются в ресурсе TileSet. Это позволяет повторно использовать шаблоны в различных узлах TileMapLayer после загрузки ресурса TileSet, сохраненного во внешнем файле.
Автоматическая обработка соединений тайлов с использованием ландшафтов
Для использования ландшафтов (terrains), узел TileMapLayer должен содержать по крайней мере один непустой набор ландшафтов. См. Создание terrain (ландшафтных) наборов (иначе - autotiling), если вы еще не создали набор ландшафтов для TileSet.
Для соединения terrain доступны три режима окрашивания:
Connect, где тайлы соединяются с окружающими тайлами на том же TileMapLayer.
Path, где тайлы соединяются с тайлами, нарисованными одним и тем же штрихом (до тех пор, пока не отпущена кнопка мыши).
Переопределения, специфичные для тайлов, для разрешения конфликтов или обработки ситуаций, не охваченных системой ландшафта.
Режим Connect проще в использовании, но Path более гибок, поскольку он позволяет художнику лучше контролировать процесс рисования. Например, Path может позволить дорогам непосредственно примыкать друг к другу, не соединяясь друг с другом, в то время как Connect заставит обе дороги быть соединенными.
Выбор режима «Connect » на вкладке «Terrains» редактора TileMap
Выбор режима Path на вкладке Terrains редактора TileMap
Наконец, вы можете выбрать определенные тайлы в ландшафте для разрешения конфликтов в определенных ситуациях:
Рисование с использованием определенных тайлов на вкладке Terrains редактора TileMap
Любой тайл, у которого хотя бы один из битов имеет значение, соответствующее идентификатору местности, появится в списке тайлов для выбора.
Работа с отсутствующими тайлами
Если удалить тайлы в TileSet, на которые есть ссылки в TileMap, в TileMap отобразится заполнитель, указывающий на то, что размещен недействительный идентификатор тайла:
Отсутствуют тайлы в редакторе TileMap из-за сломанной ссылки на TileSet
Эти заполнители не видны в запущенном проекте, но данные тайла по-прежнему сохраняются на диске. Это позволяет вам безопасно закрывать и снова открывать такие сцены. После повторного добавления тайла с соответствующим идентификатором появятся с новым внешним видом.
Примечание
Отсутствующие заполнители тайлов могут быть не видны, пока вы не выберете узел TileMapLayer и не откроете редактор TileMap.