Сергей Тюльпин
Портфолио Unity Разработчика
Инструмент Декорации Комнат (2026)
Один из недавних проектов, над которым я работал, требовал инструмента для оформления форм помещений в реальном времени. Поскольку мы не смогли найти готовое решение, отвечающее всем требованиям, я решил разработать собственный инструмент. Цель заключалась в том, чтобы удовлетворить специфические потребности проекта, сохранив при этом достаточную гибкость инструмента для повторного использования в различных проектах.
Инструмент использует модульный пайплайн генерации, построенный на основе операций с использованием ScriptableObject. Сначала он создает комнату из выбранной базовой сетки и применяет настраиваемые параметры размера. После этого поверхность комнаты сэмплируется с использованием точек на гранях, ребрах или вершинах. Затем эти сэмплы классифицируются по различным зонам поверхности, фильтруются и используются в качестве возможных точек размещения. Пайплайн может выбирать объекты на основе типа сэмпла, корректировать их положение, вращение и масштаб, а затем проверять результат, проверяя радиус объекта и области выходов из комнаты. В конце сгенерированные объекты могут либо оставаться отдельными префабами, либо объединяться в оптимизированные сетки с опциональными коллайдерами.
В процессе разработки я сосредоточился на создании гибкой системы, а не на жестком кодировании одного конкретного алгоритма генерации. Я разделил инструмент на отдельные операции, такие как сэмплирование, классификация, фильтрация, отбор предметов, размещение и проверка. Это упростило настройку, тестирование и расширение пайплайна. Например, различные методы сэмплирования или правила размещения можно менять, не изменяя основной генератор комнаты.




