Техартист Раймундо Галлино рассказывает, как пришёл к созданию процедурного генератора мостов (Houdini Digital Asset) для Unreal Engine 5 и почему выбрал кривую как единственный вход.
Контекст и мотивация
Автор начинал как традиционный 3D‑художник, но сместился в техническое искусство: шейдеры, оптимизация, процедурные пайплайны, интеграция с движками. Опыт работы с Unity дал хорошее понимание ограничений движков и требований к оптимизации.
Сейчас он разрабатывает инструменты для собственного нарративного хоррора в Unreal Engine и использует этот проект как полигон для процедурных систем и шейдерных пайплайнов. Переход к Houdini произошёл, когда классический моделинг перестал масштабироваться: требовались адаптивные ассеты, которые можно подстраивать под любую сцену без ручной перестройки.
Ключевые источники: официальная документация SideFX, CGwiki по VEX и курсы Vertex School, которые показывают, как Houdini встраивается в игровой пайплайн. Совет автора: не бояться нодового графа и начинать с простых утилитарных инструментов (процедурные трубы, лестницы, перила), фокусируясь на понимании атрибутов и манипуляции точками и нормалями.
Процедурный генератор мостов
Идея инструмента родилась из продакшн‑кейса: нужно было сделать несколько уровней гольф‑поля с разными планировками и большим количеством рек и озёр. Ландшафт постоянно менялся, и ручное моделирование уникальных мостов для каждой лунки оказалось крайне трудозатратным.
На том этапе автор ещё не владел Houdini и делал всё в Blender с модификаторами. Модели получались неготовыми к движку: любые изменения требовали переэкспорта и перенастройки. После освоения Houdini он вернулся к задаче и спроектировал инструмент с учётом этих «болей».
Главный дизайн‑принцип: «Как художнику будет проще всего поставить мост в уровне?» Ответом стала система, полностью управляемая одной входной кривой. Художник рисует или правит кривую — мост перестраивается автоматически.
После того как процедурная основа заработала, автор сфокусировался на стилизованном визуале, вдохновляясь поздними сезонами Fortnite (королевская битва с ярким, чистым и читаемым стилем). Цель — чистый, яркий, легко читаемый мост.
Логика колонн и реализация в Houdini
Ключевой технический вызов — задать ритм колонн: Большая → Малая → Малая → Большая. Нужно было, чтобы этот паттерн стабильно работал на любой длине моста.
Решение строится вокруг одной кривой:
- Сначала применяется Resample SOP, чтобы дискретизировать кривую на сегменты и гарантировать, что количество точек всегда кратно трём.
- Затем в Attribute Wrangle используется модульная арифметика по индексу точки, чтобы задать циклический паттерн. На основе mod‑логики каждой точке присваивается атрибут name — «Large» или «Small».
- Этот атрибут затем управляет инстансингом конкретных ассетов колонн (больших и малых), формируя предсказуемый повторяющийся ритм, который автоматически подстраивается под длину и форму кривой.
Такой подход делает инструмент масштабируемым: любой изгиб или длина моста обслуживаются одной и той же логикой без ручной правки геометрии.
Выводы
- Проблема постоянно меняющегося уровня (гольф‑поля с реками) стала триггером для создания процедурного инструмента.
- HDA построен вокруг одной входной кривой, что упрощает использование художниками в уровне.
- Ритм колонн реализован через Resample SOP и модульную арифметику в Attribute Wrangle с атрибутом name.
- Инструмент ориентирован на стилизованный, чистый визуальный стиль, вдохновлённый Fortnite.
- Фокус на понимании атрибутов, точек и нормалей в Houdini позволяет решать широкий спектр задач процедурного моделинга.