Рецепты сцен

Опишите сцену. Импортируйте карту.

Рецепт — это короткий JSON-файл с операциями высокого уровня. Приложение разворачивает его в геометрию, выровненную по сетке: полы выкладываются тайлами, стены сходятся в углах, проёмы встают на рёбра. Так собраны стартовые сцены, и формат достаточно мал, чтобы ИИ-ассистент написал его по одному предложению.

Castle Gate at Dusk: крепостные стены, надвратная башня и двор
Castle Gate at Dusk — это рецепт.

Как это работает

  1. Попросите«Придорожное святилище в сосновом лесу на закате, у дороги ждёт плут».
  2. Ассистент пишет рецептПо прилагаемым руководствам: схема рецепта, руководство по сборке с чек-листом проверки и каталог ассетов с каждым идентификатором и его габаритами.
  3. ИмпортируйтеФайл ▸ Импорт JSON сцены. Модели скачиваются из библиотеки; сборщик сообщает о любых предупреждениях.
  4. Обставьте и играйтеТеперь это обычная сцена: рисуйте, перетаскивайте, добавляйте свет, нажимайте Play.

Как выглядит рецепт

Девять операций дают играбельную карту. Прямоугольники заданы в клетках сетки, ассеты — идентификаторами из библиотеки, а остальное делает сборщик: стены периметра получают правильные углы, россыпь обходит святилище, факел освещает алтарь.

  • floor заполняет прямоугольники или идёт вдоль пути, смешивая материалы и случайно поворачивая тайлы для естественной земли.
  • walls обводит прямоугольник семейством стен с проёмами под двери или проходит по выбранным сторонам.
  • prop, line, scatter и clutter расставляют объекты по клеткам, вдоль пути или случайно с зонами исключения.
  • light, effect и mini добавляют факелы, огонь и дым, а также токены с ХП и кольцами.

В папке ai/ репозитория лежат схема, руководство по сборке и полный каталог. С Claude Code весь процесс — одна команда: /create-scene.

{
  "format": "vtt-recipe",
  "name": "Roadside shrine",
  "grid": { "size": 1 },
  "environment": { "preset": "dusk" },
  "ops": [
    { "op": "floor", "asset": ["realistic-surfaces/grass_floor", "realistic-surfaces/grass_patchy_floor"],
      "rect": [0, 0, 19, 15], "randomYaw": true, "blend": 4 },
    { "op": "floor", "asset": "realistic-surfaces/dirt_floor", "path": [[0, 8], [19, 8]], "width": 2 },
    { "op": "floor", "asset": "realistic-surfaces/flagstone_floor", "rect": [8, 3, 11, 5] },
    { "op": "walls", "asset": "realistic-surfaces/stone_wall", "rect": [8, 3, 11, 5], "sides": "NEW" },
    { "op": "prop", "asset": "realistic-surfaces/stone_altar", "at": [9.5, 3.5] },
    { "op": "scatter", "asset": ["realistic-surfaces/fir_tree", "realistic-surfaces/pine_tree"],
      "area": [0, 0, 19, 6], "count": 14, "avoid": [[7, 2, 12, 6]] },
    { "op": "light", "type": "torch", "at": [9.5, 1.2, 4.5], "intensity": 5, "distance": 6 },
    { "op": "effect", "type": "fire", "at": [9.5, 0.6, 4.5] },
    { "op": "mini", "asset": "characters/rogue", "at": [3, 9], "label": "Pip", "ring": "ally" }
  ]
}

Вопросы

С каким ИИ это работает?

С любым ассистентом, который может прочитать руководства и написать JSON. Руководства написаны для Claude Code, у которого в репозитории есть команда /create-scene, но формат простой.

Что, если ИИ использует несуществующий ассет?

Сборщик проверяет каждый идентификатор по библиотеке и сообщает, чего не хватает. Стартовые сцены протестированы до нуля предупреждений.

Можно ли писать рецепты вручную?

Да, и это быстрее, чем кажется: святилище выше — девять строк намерения. Тесты в репозитории проверяют любой рецепт, который вы положите в папку примеров.

Импортируйте свой первый рецепт

Зарегистрируйтесь, откройте стол, Файл ▸ Импорт JSON сцены.