Разработка VR-системы прототипирования интерактивных объектов для детей
Февраль 2021
Обзор
Smart Codesign VR — прототип платформы для создания и проверки интерактивных «умных объектов» в виртуальной реальности. Игроки выбирают три карты — по одной для среды, входа и выхода — и с помощью движений задают условия срабатывания объекта и его действия. Готовый виртуальный объект можно разместить в парке и проверить его поведение.
Проект основан на SNaP (The Smart Nature Protagonists), настольной игре, разработанной i3Lab Миланского политехнического университета. В SNaP дети комбинируют карты, придумывают умные объекты и описывают их одной фразой на бумаге. Цель проекта — превратить эти описания в виртуальные объекты, которые дети могут собирать и с которыми могут взаимодействовать с помощью собственных движений.
Наша команда из четырёх человек спроектировала и реализовала систему как итоговый проект курса Advanced User Interfaces в Миланском политехническом университете в 2020–21 учебном году. Мы разрабатывали её для детей 11–13 лет, уделяя особое внимание детям с нарушениями нейроразвития (NDD). Прототип, созданный на Unity и C# для Oculus Quest 2, поддерживает полный процесс от выбора карт до взаимодействия в виртуальном парке.
Настольная игра SNaP и предпосылки проектирования
Игра, где главные проектировщики — дети
В SNaP от двух до четырёх детей выступают «дизайнерами», а взрослый ведущий играет «мэра». Мэр ставит задачу, а дети обсуждают идеи и комбинируют карты, чтобы придумать умный объект для её решения. Игра направлена на развитие творческого мышления, сотрудничества и способности выражать идеи. Рассматривалось также её использование детьми с нарушениями нейроразвития, но терапевтические или образовательные эффекты в этом проекте не оценивались.
Среда, вход, выход — три вида карт
В SNaP три вида карт, и у каждого своя роль.
Карты среды обозначают объект, который нужно сделать умным: дерево, скамейку, качели, водоём, камень, фонарь, урну, велосипед, мост, лестницу или школьный рюкзак. Это знакомые предметы и элементы парков и улиц. Карта среды определяет объект, в который будут встроены функции входа и выхода.
Карты входа определяют, что объект обнаруживает или на что реагирует: например, кнопку, движение, касание, расстояние, температуру, влажность, освещённость, цвет, звук, огонь, уровень воды или прогноз погоды. Они представляют входные функции умного объекта — по аналогии с датчиками.
Карты выхода задают реакцию объекта: светиться, издавать звук, вибрировать, двигаться, отображать, записывать или отправлять информацию. Они представляют выходные функции — по аналогии с исполнительными механизмами.
Карта среды придаёт паре «вход — выход» контекст. При входе «движение» и выходе «звук» урна могла бы звучать, когда кто-то промахивается мимо неё, а фонарь — сообщать о приближении человека. Вход и выход определяют поведение устройства; среда связывает это поведение с повседневной ситуацией.
От письменных идей к интерактивным виртуальным объектам
На момент проекта занятие SNaP заканчивалось письменным описанием умного объекта, придуманного детьми. Параллельно i3Lab разрабатывала «физическую доску», объединявшую планшет с Arduino, чтобы превращать эти описания в физические прототипы. Smart Codesign VR исследовал другой подход — виртуальную реальность, которую исследовательская команда ещё не изучала для этой цели.
VR открывала две возможности. Во-первых, дети могли создавать прототипы движениями всего тела: хватание, перенос, освещение и рисование кистью становились способами задавать условия и поведение. Во-вторых, идеи могли приобретать видимую форму виртуальных объектов, с которыми можно сразу взаимодействовать. Письменное описание превращалось бы в объект с размером и формой прямо перед ребёнком.
Для кого это спроектировано
Предполагаемые пользователи — дети 11–13 лет, с особым вниманием к детям с нарушениями нейроразвития. Проектирование умного объекта требует определённых навыков логического мышления, поэтому и SNaP, и VR-версия были рассчитаны на этот возрастной диапазон.
Проект был направлен на то, чтобы помочь детям выражать идеи через практическое прототипирование и взаимодействие. Это были цели проектирования, а не доказанные терапевтические или образовательные результаты: прототип не оценивался с участием детей.
Проектирование комфортного пространства
Опираясь на материалы, изученные для проекта, мы выделили четыре направления пространственного дизайна: звук, свет и цвет, организация пространства и материалы. Для учёта слуховой чувствительности рассматривались шумоизоляция, регулируемая громкость и тихий равномерный звук. Для света и цвета — спокойный малонасыщенный фон с яркими насыщенными цветами лишь на небольших участках. Учитывались также ясные границы пространства, упорядоченная планировка, простые читаемые формы и свободное перемещение. В виртуальной среде дизайнеры могут управлять этими параметрами. Их влияние на комфорт пользователей в данном проекте не оценивалось.
Ограничения и риски VR
В проекте также учитывались ограничения и риски VR: стоимость оборудования, укачивание, нагрузка на голову и шею из-за веса гарнитуры, происшествия при закрытом обзоре физического окружения, утомление глаз при длительном использовании и опасения по поводу зависимости, связанной с чрезмерным погружением.
Эти соображения определили три проектных решения: сохранять простоту взаимодействия, оставляя достаточно сложности для обучения; делать изображение и звук понятными без чрезмерной стимуляции; задавать чёткий момент завершения. После прототипирования и проверки объекта в парке занятие заканчивается, а не побуждает оставаться в VR неопределённо долго.
Прототип: сценарий использования и реализация
Четыре этапа взаимодействия
Приложение включает четыре этапа: экран ожидания, выбор карт, прототипирование и взаимодействие в виртуальном парке.
1. Экран ожидания
Приложение открывает титульный экран и ждёт нажатия кнопки контроллера. Эта намеренная пауза даёт игроку время надеть гарнитуру и занять удобное положение до начала основной части.
2. Выбор карт — схватить и положить в коробку
Игрок выбирает по одной карте среды, входа и выхода: берёт объект, соответствующий карте, и кладёт его в нужную коробку. Такое взаимодействие использует трёхмерное пространство VR. Когда все три коробки заполнены, звуковая подсказка направляет игрока к прототипированию. Карты можно выбирать в любом порядке, но для продолжения нужны все три.
3. Прототипирование: задавать условия и поведение движениями
Прототипирование — основа системы. Игроки задают условие срабатывания выбранной карты входа и реакцию выбранной карты выхода. У каждой карты свой способ взаимодействия с движениями, требующими отслеживания шести степеней свободы.
Например, при выборе входа «прогноз погоды» в пределах досягаемости появляются объекты, обозначающие солнце, облака, дождь, грозу и снег. Игрок берёт один из них и направляет исходящий от него луч на целевой объект, задавая условие. Если выходом выбрано «светиться», игрок берёт кисть, окунает её в банку с краской и проводит по объекту, выбирая цвет свечения. Чтобы удалить нанесённый цвет, он окунает кисть в банку с «водой» и снова проводит по объекту.
Важным решением при реализации стала поддержка нескольких пар «вход — выход» для одного объекта. Первоначально предусматривалось одно правило, например «светиться красным в солнечную погоду». Несколько пар позволяют объекту по-разному реагировать на разные условия: красным на солнце, синим в дождь и белым в снег. Игроки могут проверить каждую пару перед подтверждением и при необходимости вернуться к редактированию.
4. Парк: проверка объекта
После подтверждения объекта игрок попадает в виртуальный парк, размещает объект, вызывает заданное входное условие и наблюдает реакцию. Поздравление отмечает успешное срабатывание и завершает процесс.
Ход в целом
Диаграммы деятельности UML ниже обобщают сценарий. Верхняя показывает весь процесс, две нижние — взаимодействие с картами «прогноз погоды» и «светиться». Ветвления показывают, как вернуться к выбору карт после получения инструкций и к редактированию после подтверждения и проверки объекта.
Оборудование и инструменты
Прототип создан для Oculus Quest 2. Отслеживание с шестью степенями свободы поддерживает повороты, перемещение и манипуляции с виртуальными объектами. Поскольку многократное взаимодействие руками было основой сценария, команда исключила гарнитуры на базе смартфона, ограниченные отслеживанием трёх степеней свободы.
Приложение разработано на Unity и C#. Пакет Oculus Integration обеспечивал подключение к Quest 2 и API для поведения VR-камеры, отрисовки и ввода с контроллеров.
Четыре сцены и тринадцать классов
Система использует четыре сцены Unity — по одной на этап взаимодействия. Она содержит 13 классов, включая три абстрактных.
Титульная сцена содержит только TitleSceneCore, который по нажатию кнопки переводит к следующей сцене.
Сцена выбора карт использует CardSelectionSceneCore и CardSelectionDetector. CardSelectionSceneCore создаёт три экземпляра детектора: для коробок среды, входа и выхода. Каждая коробка втягивает ближайший объект карты и помечает свою категорию как выбранную. После завершения всех трёх выборов сцена записывает их в статический класс SmartObject и переходит дальше. SmartObject сохраняет данные при смене сцен, связывая четыре сцены в непрерывный процесс.
В сцене прототипирования PrototypingSceneCore координирует процесс. Поведение карт представлено иерархией наследования: Card — базовый класс, от него наследуются InputCard и OutputCard, а конкретные классы, например Weather, Fire, MakeSound и LightUp, реализуют отдельные взаимодействия. Card, InputCard и OutputCard абстрактны, поскольку операции прототипирования выполняют только конкретные подклассы.
PrototypingSceneCore держит список экземпляров условий на входе и список экземпляров поведений на выходе. Если выбраны карты «прогноз погоды» и «светиться», первый заполняется только экземплярами Weather, а второй — только экземплярами LightUp. На старте автоматически создаётся по одному, дальше их число растёт с каждым нажатием кнопки добавления в интерфейсе. Каждый кадр вычисляются все условия на входе из списка и вызываются соответствующие поведения на выходе. Когда пользователь подтверждает, isConfirmed становится истинным, и данные собранного поведения записываются в статические свойства SmartObject.
Сцена взаимодействия содержит только InteractionSceneCore, который отвечает за размещение объекта в парке, выполнение условий на входе и наблюдение за выходами, а также за завершающее поздравление.
Smart Object» внизу по центру сохраняет данные между сценами. Атрибуты и методы упрощены для читаемости; названия кода сохранены на английском.Исходный код доступен по ссылке:
github.com/takafumihoriuchi/SmartCodesignVR — Assets/myScripts
Что удалось и что осталось
До реализации дошли 9 карт из 49
В прототипе реализовано девять карт. Основные функции работают: выбор карт, задание условий и поведения, управление несколькими экземплярами и передача данных между сценами. Это создаёт основу для добавления карт, однако работа по их реализации ещё предстоит. Ещё шесть карт спроектированы, но не реализованы; для остальных 34 необходимы и проектирование взаимодействия, и реализация.
| Состояние | Карты |
|---|---|
| Реализованы (9) | Среда: дерево, фонарь, дорожный знак, урна, мост Вход: огонь, прогноз погоды Выход: издавать звук, светиться |
| Только спроектированы (6) | Вход: кнопка, скорость, звук Выход: двигаться, вибрировать, отправлять |
| Не начаты (34) | 15 карт среды, 16 карт входа, 3 карты выхода (отображать, запускать, записывать) |
Оценка не проводилась
Прототип не оценивался с участием пользователей. Разработка совпала с дистанционным участием во время пандемии COVID-19. Не удалось организовать ни очную мастерскую с VR-гарнитурами, ни дистанционную альтернативу. Проект показывает, что спроектированный сценарий можно реализовать как работающий прототип. Удобство для детей и ценность в терапевтическом контексте остаются непроверенными.
Будущая оценка должна выяснить, насколько интуитивен интерфейс для прототипирования. Возможные показатели — время выполнения, соответствие итогового умного объекта первоначальной идее участника и число непреднамеренных нажатий кнопок. Анкета на основе System Usability Scale (SUS) после занятия дала бы дополнительные количественные данные. Можно также рассмотреть запись занятий для наблюдения за движениями участников, с их согласия и при соблюдении надлежащих процедур. В проекте 2021 года предложенный возраст участников оценки составлял 13 лет: его выбрали на пересечении целевого возраста SNaP и рекомендаций Oculus, на которые ссылались тогда. Для любого будущего исследования критерии участия необходимо пересмотреть с учётом применимых рекомендаций и исследовательского протокола.
Работа, которая лежит впереди
Первый приоритет дальнейшей разработки — доработка UI и UX. Из-за ограниченного времени и опыта основная работа ушла на функционирование сочетаний карт, а визуальная, звуковая и тактильная стороны остались менее проработанными. Требует пересмотра и роль текста в VR: информацию для плоской поверхности, возможно, лучше представить через пространственный пользовательский интерфейс (SUI). Голосовое взаимодействие — ещё одно направление для изучения с учётом предполагаемых пользователей.
Проект выделил три исследовательских направления. Первое — сравнение с физической доской, разрабатывавшейся i3Lab. В более раннем исследовании участники больше разговаривали, играя в одну и ту же совместную игру в виртуальной среде, чем в физической; это подсказывает полезное направление сравнения двух платформ. Второе — одновременное участие нескольких пользователей: в соответствии с названием «Codesign» дети могли бы вместе собирать объекты в VR. Третье — стандартный формат описания умных объектов для переноса разработок между платформами.
Итог
В проекте создана среда для прототипирования умных объектов. Три типа карт SNaP превращены в строительные элементы: объект, условия срабатывания и поведение. Игроки связывают их, беря предметы, указывая и рисуя. Работающий прототип превращает письменную идею в интерактивный виртуальный объект, поведение которого представлено данными, передаваемыми между сценами.
Takafumi Horiuchi, Paul Cozma-Ivan, Elmira Katsajeva, and Olivia Ludkiewicz, «Design and Implementation of a Smart Object Prototyping Platform in Virtual Reality for Children with NDD», Advanced User Interfaces (2020–21 уч. г.) Final Exam Project, Миланский политехнический университет, февраль 2021.

