Альтернатива Tilesetter · в браузере, бесплатно

Альтернатива Tilesetter — бесплатный онлайн-генератор тайлсетов и редактор карт

Создайте свою альтернативу Tilesetter

Tilesetter генерирует тайлсеты и экспортирует уровни в Unity и Godot — но это настольное приложение, за которое нужно платить. Вот бесплатная альтернатива в браузере, которая вдобавок позволяет играть в то, что вы создали.

✦Игра
Сгенерируйте тайлсет из базовое изображение лугов

Tilesetter собирает тайлсет из одного базового изображения и экспортирует уровень, который вы собираете, в Unity, Godot и GameMaker Studio 2. Такова его суть, и она хороша. Останавливает людей именно настольная поставка: приложение, которое вы устанавливаете, лицензируете на каждую машину и которое нельзя запустить во вкладке браузера. Если вы ищете альтернативу Tilesetter, важны два вопроса: работает ли по-прежнему генерация тайлсетов и можно ли увидеть, как результат движется, не открывая движок.

Neta Studio — это альтернатива в браузере. Та же отправная точка — одно базовое изображение становится выровненным по сетке тайлсетом, которым вы сразу же рисуете, — но уровень запускается как играбельная сцена на Three.js, когда вы нажимаете «Играть». Никакого установщика, никакого кругового рейса с файлами проекта, никакого ожидания сборки движка, чтобы узнать, перепрыгивает ли персонаж платформера трёхтайловый разрыв.

Что Tilesetter делает хорошо

Основная функция Tilesetter — генерация рельефа из небольшого базового изображения. Вы рисуете от трёх до пяти характерных тайлов — обычно центральное заполнение, прямой край и внешний угол, — а генератор выводит остальную часть набора: внутренние углы, варианты краёв и элементы заполнения. Создавать вручную полный набор рельефа из 47 элементов утомительно и непоследовательно; вывод из базового изображения сохраняет углы выровненными. Именно ради этой возможности люди и меняют инструменты, и она работает.

Вторая половина — построение уровней. Сгенерированный набор питает редактор сетки с поведением автотайлинга, поэтому протягивание линии рельефа даёт соединённые края, а не ряд одинаковых квадратов. Это автотайлинг на уровне инструмента, а не в коде движка.

Третья часть — экспорт. Tilesetter пишет напрямую в форматы проектов Unity, Godot и GameMaker Studio 2, поэтому данные уровня приходят как родные для движка тайлмапы, а не как PNG, который приходится заново нарезать вручную. В рабочем процессе с Tilesetter это действительно самый короткий путь от изображения до играбельной сцены в движке.

Где Tilesetter не дотягивает для большинства людей

Это настольное приложение, которое вы устанавливаете и за которое платите. Условия лицензии и цены устанавливает его поставщик, и они со временем меняются, поэтому проверяйте их у первоисточника, а не доверяйте странице сравнения. Практическое ограничение уже, чем цена: если вы работаете на Chromebook, на корпоративном ноутбуке или на любой машине, где нельзя устанавливать программы, вы не сможете его запустить. Поставщик не описывает браузерной версии.

Играбельного результата нет. Tilesetter даёт вам уровень, но не даёт работающий. Чтобы узнать, перепрыгивает ли дуга прыжка разрыв или читается ли край тайла на том расстоянии камеры, на котором вы планируете выпускать игру, вы экспортируете, открываете движок, подключаете тайлмап к сцене, нажимаете «Играть» и смотрите. Каждый вопрос дизайна стоит одного кругового рейса.

Экспорт — это ещё и конец пути. Измените дизайн тайла, и размеры листа изменятся вместе с ним; движок переимпортирует, атлас перелинковывается, а все ссылки на тайлы, привязанные к пиксельным смещениям, нужно проверять. Цикл такой: перегенерировать, переэкспортировать, переимпортировать, перепроверить. Это работоспособно, но цикл обратной связи измеряется минутами, а не секундами.

Tilesetter против Neta Studio — полная таблица сравнения

Каждая строка про Tilesetter ниже написана на основе его собственного публичного описания продукта. Там, где я не знаю конкретного числа — цены, системных требований, — я описываю механизм, а не строю догадки.

ВозможностьTilesetterNeta Studio
ВводБазовое изображение с несколькими характерными тайлами; генератор выводит из него полный набор рельефаБазовое изображение или спрайт-лист, сгенерированный в Agent Sprite Forge; инструмент сетки нарезает его на тайлы
ВыводРесурсы тайлсета плюс данные уровня, записанные в формат проекта движкаУровень в браузере, в который можно играть сразу, плюс скачиваемый PNG тайлсета с манифестом индекса тайлов
Генерация тайлсетаВыводит варианты рельефа — края, углы, заполнения — из небольшого базового изображенияНарезает базовое изображение на выровненный по сетке лист, генерирует варианты рельефа и сообщает об остатке, когда размер ячейки не делит изображение нацело
Построение уровняРисование по сетке с поведением автотайлинга в настольном редактореРисование по сетке в браузере на том же листе, со слоями, флагами коллизий и размещением объектов
ЭкспортВывод проектов Unity, Godot и GameMaker Studio 2Атлас тайлов в PNG плюс JSON-индекс тайлов, импортируемый в Unity, Godot или GameMaker с вашими собственными настройками
Играбельный результатОтсутствует внутри Tilesetter — уровень играет только после того, как вы соберёте его в движкеНажмите «Играть» в браузере; уровень запускается как 3D-сцена в конструкторе 3D-игр
ЦенаПлатная настольная лицензия, устанавливаемая его поставщикомБесплатно создавать и играть в браузере
Agent Sprite Forge — генерируйте полный лист из базового изображения прямо в браузере.

Сгенерируйте полный тайлсет из одного базового изображения (живая демонстрация)

Генератор в этом разделе делает то единственное, чем Tilesetter известен больше всего: берёт базовое изображение и возвращает выровненный по сетке тайлсет, которым можно рисовать сразу. Загрузите PNG, задайте размер ячейки 16, 32 или 48 пикселей, и инструмент нарежет его на лист плюс индекс тайлов. Никакой установки, никакой лицензии, никакого проекта движка, который нужно сначала создать.

Первое, что ломается, — это размер ячейки, который не делит изображение нацело. Лист шириной 1023 пикселя при запросе ячеек по 32 пикселя даёт 31 полный столбец и один столбец шириной 31 пиксель; этот последний столбец отрисовывается со швом, потому что графический процессор сэмплирует соседний тайл. Проверьте, что ширина и высота делятся точно, прежде чем что-либо рисовать. Инструмент сообщает об остатке вместо того, чтобы молча округлять, — в этом весь смысл.

Вторая проблема — фильтрация. Сэмплируйте лист с линейной фильтрацией, и соседние тайлы усредняются друг с другом, оставляя ореол в один пиксель по каждому краю. Два решения: установите фильтр текстуры в режим «ближайший» в движке или выдавите каждый тайл на 2 пикселя при экспорте, чтобы граничные пиксели повторялись наружу. Выдавливание надёжнее, потому что оно выживает в проекте, где кто-то забыл настройку фильтра.

Как только сетка чистая, рисование происходит мгновенно. Слои, флаги коллизий и размещение объектов живут на одной и той же сетке, а режим игры запускает результат как сцену на Three.js. Примеры миров «Остров Циклопа» и Mini World построены именно так, если вы хотите увидеть масштаб уровня, который поддерживает сетка.

  • Точная нарезка по сеткеШирина и высота делятся на размер ячейки. Любой остаток сообщается, а не поглощается сломанным последним столбцом.
  • Выдавливание краёвНеобязательный выпуск на 2 пикселя вокруг каждого тайла, чтобы сэмплирование с ближайшим фильтром никогда не захватывало пиксели соседнего тайла.
  • Манифест индекса тайловJSON-карта от координаты ячейки к числовому идентификатору тайла, чтобы код движка обращался к тайлам по индексу, а не по пиксельному смещению.
  • Генерация вариантов рельефаВарианты краёв, углов и заполнений, выведенные из небольшого набора нарисованных вручную тайлов, с сохранением согласованности внешних углов.
  • Источник спрайтов в той же сеткеAgent Sprite Forge выдаёт спрайты, выровненные по тому же размеру ячейки, поэтому графика персонажей и предметов ложится на сетку без масштабирования.
Выровненный по сетке сгенерированный набор — одна ячейка на тайл
Результат: набор, которым можно рисовать сразу

Экспорт в Unity, Godot и GameMaker — бок о бок

Импорт в движок — это место, где работа с тайлсетами обычно теряется. Лист в порядке; настройки неверны. Каждому движку нужен свой набор чисел, и сбои выглядят по-разному в каждом из них.

Unity

Установите Texture Type в Sprite (2D and UI), Sprite Mode в Multiple, Filter Mode в Point и отключите Generate Mip Maps. Для пиксель-арта Compression должен быть None. Затем откройте Sprite Editor и используйте Slice, Grid By Cell Size, с размером ячейки, совпадающим с вашими тайлами, — 16, 32 или 48 пикселей.

Классический сбой — Pixels Per Unit. Оставьте значение по умолчанию 100 при тайлах 32 пикселя, и каждый тайл станет шириной 0,32 мировых единицы; если сетка вашего тайлмапа предполагает 1 единицу на ячейку, вы получите видимый зазор или наложение на каждой границе ряда. Установите Pixels Per Unit равным пиксельному размеру тайла или задайте размер ячейки тайлмапа обратным значением. Другая настройка, которую люди путают, — pivot: Center для карт сверху вниз, Bottom Left для сайд-скроллеров, где тайлы выравниваются по линии земли.

Godot

Создайте ресурс TileSet с Tile Size, совпадающим с вашими ячейками, добавьте TileSetAtlasSource, указывающий на лист, и задайте Margin и Separation явно, если у листа есть отступы, вместо того чтобы полагаться на автоопределение. В Godot 4 возможность заполнять тайлы из нетранспарентной области текстуры экономит медленный ручной проход. Рисование происходит на узле TileMapLayer.

Одно замечание о миграции, которое застаёт людей врасплох: Godot 4 заменил систему битовых масок автотайлов из Godot 3 на наборы рельефа, построенные на peering bits. Лист, сгенерированный для автотайлов Godot 3, импортируется в Godot 4 как обычные тайлы — с пикселями всё в порядке, а с подключением рельефа нет. Вы пересобираете набор рельефа, а не переэкспортируете изображение. Также проверьте Rendering > Textures > Canvas Textures > Default Texture Filter; если там Linear, у вашего пиксель-арта будут ореолы независимо от того, что содержит лист.

GameMaker Studio 2

GameMaker хочет спрайт, размер кадра которого равен размеру вашего тайла, а затем ресурс Tile Set, созданный из этого спрайта. Жёсткое ограничение — делимость: если спрайт шириной 130 пикселей, а размер тайла 32, набор тайлов отклоняется. Обрежьте или выдавите лист, пока размеры не станут точными кратными. Origin для наборов тайлов — верхний левый угол, а рисование происходит на слое тайлов в редакторе комнат, поэтому порядок слоёв здесь важнее, чем в двух других движках.

Если у вашего листа есть отступы между тайлами, GameMaker не выведет их из спрайта. Либо экспортируйте лист без отступов для этой цели, либо разделите лист с отступами на отдельные кадры перед созданием набора тайлов.

А уровень, который вы им рисуете, можно играть, не открывая движок.

Как перейти с Tilesetter за 5 минут

Вам не придётся ничего перерисовывать. Тайлсет — это PNG, а уровень — это сетка индексов в этот PNG. И то и другое переживёт переезд. Единственное, что не переживёт, — это экспорт в формат проекта, потому что в рабочем процессе нет нейтрального формата обмена; рассчитывайте перерисовать уровень, а не конвертировать его.

Для комнаты на один экран это несколько минут перетаскивания. Для большой многослойной карты это послеобеденное время, и всё равно это меньше, чем пересобирать лист с нуля.

1

01

Сохраните все PNG тайлсетов, которые вы уже экспортировали из Tilesetter. Ничего не нужно перегенерировать — само изображение и есть ресурс.

2

02

Измерьте шаг тайла. Разделите ширину листа на количество столбцов, которые вы насчитали; если результат не целое число, у листа есть отступы, и вам нужно ввести margin и separation отдельно, а не единый размер ячейки.

3

03

Загрузите PNG в браузерную сетку и задайте размер ячейки и отступы. Убедитесь, что направляющие нарезки попадают на границы тайлов, прежде чем закрасить хотя бы одну ячейку, — смещение в один пиксель накапливается на широкой карте.

4

04

Пересоберите уровень на браузерной сетке. Перерисуйте слой за слоем, затем задайте флаги коллизий. Если карта большая, сначала наметьте планировку одним заполняющим тайлом, а детализируйте потом.

5

05

Нажмите «Играть» в браузере. Исправляйте проблемы планировки здесь, где цикл занимает секунды, а не после сборки движка.

6

06

Экспортируйте атлас и индекс тайлов, затем используйте уже знакомые вам настройки импорта: Pixels Per Unit и Grid By Cell Size в Unity, Tile Size и источник атласа в Godot, размер кадра спрайта и набор тайлов в GameMaker.

Войдите в мир, которому он принадлежит

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

FAQ

Tilesetter бесплатен? +

Нет. Это платное настольное приложение, и условия его лицензии устанавливает поставщик, поэтому проверяйте актуальные цены у первоисточника, а не на странице сравнения. Браузерные инструменты Neta Studio бесплатны для создания и игры.

Есть ли браузерная версия Tilesetter? +

Поставщик описывает Tilesetter как настольное приложение, которое вы устанавливаете, и браузерной сборки в этом описании нет. Браузерная альтернатива — это генератор тайлсетов и редактор сетки на этой странице, которые работают во вкладке без установки.

Можно ли экспортировать в Unity? +

Вы экспортируете атлас в PNG и JSON-индекс тайлов, затем импортируете в Unity с Texture Type Sprite, Sprite Mode Multiple, Filter Mode Point, Slice By Cell Size и Pixels Per Unit, равным пиксельному размеру вашего тайла. Это тот же путь импорта, который использовал бы лист из Tilesetter, только без шага с форматом проекта.

Нужно ли что-то устанавливать? +

Нет. Нарезка, генерация рельефа и рисование по сетке работают в браузере. Режиму игры нужен браузер с WebGL2; редакторская часть работает и без него.

Можно ли использовать собственное базовое изображение? +

Да. Подойдёт любой PNG, если его ширина и высота делятся нацело на выбранный вами размер ячейки. Если нет, инструмент сообщает об остатке, чтобы вы могли обрезать или добавить отступы до начала рисования, а не обнаружить смещённый столбец позже.

А как же мои существующие уровни? +

Tilesetter записывает данные уровня в форматы проектов движков, поэтому нейтрального файла для конвертации нет. На практике вы сохраняете PNG тайлсета и перерисовываете уровень на браузерной сетке — быстро для одной комнаты, послеобеденное время для большой многослойной карты.

Вернуться в конструктор 3D-игр

Все 31 готовых 3D-мира, игры и сцены собраны на одной странице — и в каждый можно играть.

Платформа: Neta StudioСтраница: Альтернатива TilesetterЧитать далее: /explore/tool/ai-tileset-generator · /explore/tool/tile-map-editor · /app/free-tilesets
×