Кроссплатформенная XR-примерочная одежды (AR/VR): Проект решает реальную проблему e-commerce (высокий процент возвратов одежды из-за непонимания посадки и фасона). Это единое приложение на движке Unity, использующее общую базу высококачественных 3D-моделей одежды (созданных с физической симуляцией ткани в Clo3D). Приложение позволяет пользователям «примерять» цифровую одежду на виртуальный манекен, но делает это двумя разными путями в зависимости от платформы, демонстрируя переиспользование ассетов и кода.

Технический стек:— ПО: Blender v5.0, Clo Standalone v7.0.228.39853
— Движок: Unity 3D 2022.3.62f3
— Пакеты Unity:
• XR Interaction Toolkit: Наш главный инструмент для VR.
• AR Foundation: Наш главный инструмент для AR.
• Google AR Core XR Plugin: Плагин для работы AR на Android.
• OpenXR Plugin: Плагин для работы VR на ПК.

ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ ПРОЕКТА

Для выполнения требований кроссплатформенности и переиспользования ассетов была выбрана модульная архитектура в рамках единого проекта Unity. Проект разделён на три логические части:Общий модуль (Shared Assets): Специальная папка в проекте, содержащая ресурсы, используемые в обеих сценах:
— 3D-модели манекена и одежды.
— Материалы и текстуры.
— Ключевые скрипты, такие как UIManagerVR, отвечающий за логику примерки.Модуль AR (AR Scene): Отдельная сцена, настроенная для работы с дополненной реальностью. Включает в себя объекты и компоненты из фреймворка AR Foundation: AR Session, AR Tracked Image Manager и XR Origin в конфигурации для AR. В AR-сцене манекен будет префабом, ко-торый создаётся на маркере и содержит скрипт ManipulateMannequin для управления жестами.Модуль VR (VR Scene): Отдельная сцена, настроенная для работы с виртуальной реальностью. Включает в себя объекты и компоненты из фреймворка XR Interaction Toolkit: XR Origin (VR), XR Device Simulator, систему телепортации и взаимодействия. В VR-сцене манекен будет статичным объектом сцены, дополненным скриптом MannequinRotator для вращения через UI.Такая архитектура позволяет вести независимую разработку и тестирование AR и VR частей, при этом легко внося изменения в общие ассеты, которые автоматически применятся в обеих сценах.

Основной алгоритм «Примерки» (метод OnItemSelected):

1. Алгоритм «Выбор в UI» (метод OnItemSelected в UIManagerVR):
— Входные данные: Метод получает itemName от кнопки UI.
— Действие в VR: Находит в базе данных соответствующий previewPrefab и создаёт его экземпляр в точке появления в гарде-робе.
— Действие в AR: Напрямую вызывает алгоритм «Надевание» (EquipItem).2. Алгоритм «Надевание» (метод EquipItem в UIManagerVR):
— Входные данные: Метод получает itemName (в VR — от скрипта MannequinDropZone, в AR — от OnItemSelected).
— Поиск: Происходит поиск полного объекта ClothingItem по itemName.
— Логика конфликтов: Выполняется серия проверок и вызовов метода RemoveItem для удаления конфликтующих категорий одежды (например, FullBody удаляет Top и Bottom).
— Замена в категории: Вызывается RemoveItem для категории самого нового предмета, чтобы снять старую вещь.
— Создание и позиционирование: Вызывается метод WearItem, который создаёт экземпляр полноразмерного prefab, позиционирует его согласно offset и делает дочерним объектом манекена.
— Сохранение состояния: Ссылка на новый объект сохраняется в словарь _currentlyWornItems по ключу категории.

ПРОЕКТИРОВАНИЕ UI И UX

UI (Пользовательский интерфейс):

В AR Интерфейс реализован на базе Screen Space — Overlay Canvas, прикрепляясь к экрану смартфона. Контекстная часть UI (выбор одежды) появляется только при обнаружении маркера.
В VR интерфейс реализован на базе World Space Canvas, что делает его полноценным 3D-объектом в сцене, с которым можно взаимодействовать как в AR, так и в VR. Для текста используется технология TextMeshPro для обеспечения чёткости в любом разрешении.Проектируется иерархическая структура меню с использованием нескольких панелей на одном World Space Canvas.
• Главное меню: Содержит кнопки-категории («Верх», «Низ», «Платья»).
• Подменю: Для каждой категории создаётся отдельная панель с кнопками для выбора конкретных моделей и их цветовых вариаций.
• Навигация: Реализуется без кода, через события On Click () кнопок, которые включают (SetActive=true) нужную панель и выключают (SetActive=false) текущую. На каждой панели подменю присутствует кнопка «Назад».

UX (Пользовательский опыт):

Проектирование UX было нацелено на максимальную интуитивность и различие в паттернах взаимодействия для AR и VR.
• В AR: Взаимодействие происходит через сенсорный экран. Выбор одежды осуществляется простым касанием кнопок. Основной фокус — на взаимодействии с самим манекеном (вращение, масштабирование) с помо-щью привычных жестов.
• В VR: Взаимодействие происходит с помощью контроллеров. Пользователь наводит на кнопки лучом (XR Ray Interactor) и совершает «клик». Это создаёт более иммерсивный опыт, так как пользователь физически «целится» в элементы интерфейса. Визуальная обратная связь (подсветка кнопок при наведении) является ключевым элементом для комфорт-ного взаимодействия. Вращение манекена выносится на отдельные кнопки-стрелки в UI, что позволяет пользователю осматривать модель, не меняя своего положения. Это стандартное решение для VR-примерочных.

СЦЕНАРИИ ВЗАИМОДЕЙСТВИЯ

Сценарий 1: Примерка и комбинирование одежды в VR.

1. Начало: Пользователь находится в виртуальной комнате. Перед ним стоит манекен. Сбоку гардероб. В UI отображается Главное Меню.
2. Выбор: Пользователь наводит луч на кнопку «Платье 1» и кликает. В гардеробе на точке появления материализуется уменьшенная, висящая в воздухе копия платья.
3. Взаимодействие: Пользователь подходит к гардеробу, подводит свою виртуальную руку к «превью» платья и нажимает кнопку хвата. «Превью» прилипает к руке.
4. Примерка: Пользователь подносит «превью» в руке к манекену. Как только оно входит в невидимую зону примерки, зона подсвечивается. Пользователь отпускает кнопку хвата. В тот же миг «превью» исчезает, а на манекене появляется полноразмерное платье.
5. Сброс: Пользователь нажимает кнопку «Сброс» в UI. Платье с манекена исчезает.

Сценарий 2: Примерка в AR.

1. Появление: Пользователь наводит камеру смартфона на маркер. На маркере «вырастает» 3D-манекен. Одновременно на экране появляется панель UI для выбора одежды.
2. Навигация и примерка: Пользователь касается пальцем экрана, нажимая на кнопки UI. Он заходит в меню «Верх», выбирает кофту. На манекене мгновенно появляется кофта. Логика замены и комбинирования одежды работает идентично VR-версии.
3. Взаимодействие с манекеном (Жесты): Пользователь ставит один палец на экран и ведёт им влево — манекен вместе с одеждой плавно пово-рачивается. Пользователь ставит два пальца и «раздвигает» их — манекен увеличивается в размере.
4. Исчезновение: Пользователь убирает камеру с маркера. Манекен и панель выбора одежды исчезают.

VR часть

Качество текстур мира понижено по причине запуска в условиях учебного компьютера (в проекте использовалось высокое качество и для презентации на защите курсовой необходимо было понизить для более плавного отображения процесса).

Общий вид на проект

0
0
  1. выбираем одежду
  2. берём элемент с вешалки
  3. подносим к манекену и ждём появления области
  4. как только область появляется — отпускаем объект
  5. одежда надета

AR часть

0
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше