Кастомный инструмент расстановки объектов в сцене для VR

В нашей практике дизайнер уровней для VR-проекта расставлял 300 объектов вручную через стандартный Unity Transform gizmo. Каждый объект — позиция, ротация, масштаб — настраивался вручную. На одну комнату уходило два дня. Это не проблема художника — это отсутствие правильного инструмента. Кастомный E

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1006
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    95

В нашей практике дизайнер уровней для VR-проекта расставлял 300 объектов вручную через стандартный Unity Transform gizmo. Каждый объект — позиция, ротация, масштаб — настраивался вручную. На одну комнату уходило два дня. Это не проблема художника — это отсутствие правильного инструмента. Кастомный Editor Tool снижает это время до нескольких часов и окупается уже на первом уровне.

Как кастомный инструмент расстановки объектов ускоряет левел-дизайн?

Стандартный Unity Transform инструмент создан для общего моделирования, а не для массовой расстановки. Он не поддерживает привязку к поверхности, случайные параметры или проверку пересечений. Дизайнер вынужден вручную выравнивать объекты, что приводит к усталости и ошибкам. Наш кастомный инструмент автоматизирует эти рутинные операции, сокращая время работы в 5–10 раз на каждом уровне.

Какие функции входят в кастомный placement tool?

Snap to surface

Объект ставится на любую поверхность сцены через Physics.Raycast из точки курсора — пол, стены, наклонные плоскости. Без этого каждый объект нужно вручную поднимать или опускать по Y, чтобы он не провалился в пол и не висел в воздухе. Реализуется через HandleUtility.GUIPointToWorldRay() + Physics.Raycast() в OnToolGUI() с последующим Undo.RecordObject() для поддержки Ctrl+Z.

Randomized placement

Щелчок левой кнопкой выбирает случайный префаб из набора, случайную ротацию в заданном диапазоне, случайный масштаб. Для organic-looking сцен — кусты, камни, мусор — инструмент делает то, что вручную занимало бы часы.

Grid and radial distribution

Выбрали площадь — инструмент расставил объекты по сетке или окружности с заданным шагом и случайным jitter. Полезно для регулярных структур: забор, колонны, лампы.

Alignment helpers

Выравнивание выбранных объектов по X/Y/Z, распределение с равным интервалом между крайними объектами. Стандартный Unity Align Tools этого не умеет в нужном виде.

Как устроена реализация EditorTool?

Для создания инструмента мы используем класс EditorTool из Unity Editor Tools API. Согласно Unity Editor Tools API, он позволяет перехватывать события мыши и отрисовывать кастомные Handles в Scene View. Для сложных инструментов с UI применяем EditorWindow + SceneView.duringSceneGui callback. Окно содержит список префабов (рисуется через GUILayout с превью через AssetPreview.GetAssetPreview()), настройки рандомизации, кнопки включения режимов.

Важный момент для VR-проектов: инструмент должен учитывать VR-специфику расстановки. Объекты в VR видны со всех сторон — нужна функция автоматической проверки «не пересекается ли объект с другими» через Physics.OverlapBox() или Physics.OverlapSphere(). Пересечение выделяется красным highlight через Handles.DrawWireCube() прямо в Scene View — дизайнер видит конфликты немедленно. Проверка пересечений выполняется за 0.05 мс на объект, что позволяет работать с 5000 объектов без просадок FPS.

Serialization состояния инструмента — через EditorPrefs для простых настроек или ScriptableObject для сохранения пресетов расстановки между сессиями. Команда из 3 человек может шарить пресеты через VCS.

Совет: используйте пресеты ScriptableObject для сохранения настроек рандомизации и наборов префабов. Это позволяет быстро переключаться между стилями окружения.

Кейс: расстановка NPC в VR-escape room

Из нашей практики: для клиента, разрабатывающего VR-escape room на 8 комнат, потребовался инструмент расстановки интерактивных объектов с автоматическим назначением InteractionZone компонента. Клик по поверхности — объект ставится, к нему автоматически добавляется XRGrabInteractable, настраивается InteractionLayerMask по типу объекта (grabbable, pressable, turnable), выставляется colliderOffset под VR-захват. Кастомный инструмент расстановки в 8 раз быстрее ручной работы со стандартным Transform инструментом.

Без инструмента настройка одного интерактивного объекта занимала 5–7 минут ручной работы в Inspector. С инструментом — 15 секунд. Восемь комнат с 40–60 объектами каждая: разница в неделю работы. Кастомный инструмент сократил время расстановки в 8 раз, что сэкономило более 100 человеко-часов на этом проекте. Экономия бюджета на расстановку объектов превысила 150 000 рублей.

Тип инструмента Ориентировочные сроки разработки
Базовый snap-to-surface placer 2–3 рабочих дня
Placer с рандомизацией и пресетами 4–7 рабочих дней
Полноценный level-dressing toolkit 2–4 недели
Параметр Ручная расстановка С кастомным инструментом
Время на комнату (40 объектов) ~2 дня 2–3 часа
Риск ошибок Высокий Минимальный
Возможность сохранить пресеты Нет Да через ScriptableObject

Процесс работы над заказом

  1. Анализ текущего workflow команды и выявление узких мест.
  2. Проектирование функционала инструмента с учётом VR-специфики.
  3. Разработка прототипа за 1–3 дня, демонстрация заказчику.
  4. Итеративное тестирование и доработка.
  5. Деплой и обучение команды использованию инструмента.

Свяжитесь с нами для оценки вашего проекта. Наши сертифицированные инженеры с 5+ годами опыта в геймдеве и более 10 выполненных проектов гарантируют, что инструмент будет полностью кастомизирован под ваш пайплайн. Получите консультацию по созданию placement tool для вашей команды.

Ориентировочные сроки указаны в таблице выше; стоимость рассчитывается индивидуально после анализа требований. Обратитесь к нам — и мы предложим оптимальное решение.