Скалы и булыжники: как не повторить один камень 400 раз

5 окт 2026 · 6 мин · 💬 1

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

Генератор вместо модели

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

  1. Noise-смещение вершин. Крупный шум даёт форму, мелкий — шероховатость. Два октавных слоя, разные масштабы, и каждый камень получает уникальный «отпечаток пальцев».
  2. Сжатие по осям. Скала вытянутая, валун округлый, щебень плоский. Масштаб по X/Y/Z с небольшим разбросом — и из одной заготовки вырастает семейство.
  3. Скол. Режем камень плоскостью, грань скола оставляем плоской и светлой. Настоящий камень ломается по плоскостям, и одна ровная грань продаёт «природность» лучше любого шума.

В Blender это Geometry Nodes: вход — базовая форма, параметры — seed, масштаб, резкость. Один нодовый граф, 400 камней, ни одного повторяющегося силуэта.

Сайдинг: камень должен врастать

Отдельная болезнь — «камень-бублик»: объект лежит на земле, как пончик на тарелке. Лечится сайдингом — юбкой из нескольких колец, растянутых вниз и в стороны по нормали. Юбка уходит под землю, стык замазывается землёй или листвой. Правило простое: чем больше камень, тем длиннее юбка. Валун метровой высоты без юбки выглядит наклеенным; со юбкой — вкопанным природой.

Scatter: расстановка тоже нужна генерировать

Вручную расставить 400 валунов можно, но нужно ли? Шумовая карта плотности решает всё:

  • Где: плотность выше у подножий обрывов (осыпь логична), ниже на тропе (игрок ходит, камни мешают).
  • Как: случайный поворот вокруг Y, наклон в 5–10 градусов, масштаб с разбросом 0.6–1.4. Идеально вертикальный и идеально круглый камень — приметы штамповки.
  • Кластеры: камни падают кучами, а не равномерно. Один крупный «материнский» валун, вокруг — осколки помельче. Это читывается как одно событие разрушения, а не как генератор случайных чисел.

Инструменты: Geometry Nodes distribute points on faces с маской плотности, или нативный scatter движка (PCG в Unreal, Terrain Tools в Unity). Главное — маска, а не количество точек.

Проверка на клона

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

Камень — самый прощающий объект в окружении: его никто не трогает, никто не ждёт от него анимации. Но именно поэтому единственное, что в нём можно испортить, — это повторяемость. Не повторяйте.

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

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