Модульные наборы: строим уровень как из конструктора

2 авг 2026 · 7 мин · 💬 1

Модульный набор — это LEGO для 3D: несколько десятков деталей, из которых собирается целый город. Я потратил два проекта, прежде чем понял, что модульность — это не про полигоны, а про договорённости: сетка, пивоты, швы. Рассказываю, как собрать набор, который не разваливается на стыках.

Шаг нулевой: сетка

Всё начинается с размеров. Выбираем базовую единицу — обычно 1 метр (Blender: 1 юнит = 1 м) — и кратные ей размеры: стены 1×1, 2×1, 4×1, углы 1×1, колонны 0.5×0.5. Никаких «1.37, потому что красиво». Левел-дизайнер строит уровень блоками серого бокса по этой же сетке, и если ваш модуль не влезает в его метры — модуль умрёт в стол.

Пивот: точка, вокруг которой всё

Пивот каждого модуля — в углу, на пересечении стыковочных плоскостей, на уровне пола. Не в центре объекта. Тогда два блока, поставленные «впритык» через snapping, становятся идеально, без ручного сдвига на 0.0003. В Blender: Object → Set Origin → Origin to 3D Cursor, курсор — в нужный угол.

Форма шва

Стык двух стен — самое слабое место набора. Три приёма:

  1. Запил (tongue-and-groove). Одна сторона шва с выступом, другая с пазом. Даже при лёгком неточном стыке щели не видно. Для каменных/кирпичных текстур — обязательно.
  2. Наложка. Стена чуть заходит за соседнюю по оси, которая всё равно закрыта. Проще запила, работает для внутренних швов.
  3. Отдельный стыковочный модуль. Угол, колонна, карниз — «замазка», которая прячет места встреч. Хорошие наборы живут за счёт таких деталей: 70% — плоские панели, 30% — углы, крышки, обрамления.

UV и атлас

Все модули набора пекутся в один UV-атлас и одну текстуру — иначе draw calls съедят производительность. Правила:

  • одинаковый density (пиксели на метр) у всех деталей, иначе кирпич на одной стене крупнее, чем на другой;
  • общие швы модулей выравниваются по пиксельной сетке атласа — тогда на стыке нет «мигающих» пикселей;
  • изнанки (внутренние грани, то, что закрыто соседом) — удаляем или сдвигаем в тёмный угол атласа.

Что входит в минимальный набор «комната»

Стена прямая 1×1, 2×1; внутренний угол; внешний угол; дверной проём; оконный проём; пол; потолок; карниз; плинтус; колонна. Десять предметов — а вариантов планировок десятки. Дальше — масштабирование: тот же принцип на этаж, квартал, крепость.

Грабли, на которые я наступал

  • Разные масштабы модулей. Кто-то экспортировал с масштабом 0.01 — и всё «щелило». Применяйте Ctrl+A → Scale до экспорта, всегда.
  • Модули-исключения. «Эта стена особенная, 1.2 метра». Одна такая деталь убивает переиспользование и бесит левел-дизайнера больше, чем кривые нормали.
  • Забывать про вариации. Три стены из десяти выглядят одинаково — глаз игрока считывает повтор. Лечится не новыми моделями, а вариациями текстур/Material Variation и мелким мусором на стыках.
  • Скругления везде. Bevel на всех рёбрах удваивает полигонаж. Скошенные рёбра нужны только там, где свет ловит блик на силуэте.

Модульный набор — это продукт, а не арт. Его красота меряется не красотой отдельной детали, а количеством уровней, которые из него собираются, и скоростью сборки. Хороший набор левел-дизайнер собирает на глаз за вечер — и никто не замечает, что там всего десять деталей.

Комментарии (1)

Форма для гостей комментариев пока не принимается — писать можно автору (expeot@outlook.com) или через владельца блога. Все записи выше настоящие, никто их не модерирует молча.