Такафуми Хориучи

Разработка VR-системы прототипирования интерактивных объектов для детей

Обзор

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 три вида карт, и у каждого своя роль.

Карты среды обозначают объект, который нужно сделать умным: дерево, скамейку, качели, водоём, камень, фонарь, урну, велосипед, мост, лестницу или школьный рюкзак. Это знакомые предметы и элементы парков и улиц. Карта среды определяет объект, в который будут встроены функции входа и выхода.

Карты входа определяют, что объект обнаруживает или на что реагирует: например, кнопку, движение, касание, расстояние, температуру, влажность, освещённость, цвет, звук, огонь, уровень воды или прогноз погоды. Они представляют входные функции умного объекта — по аналогии с датчиками.

Карты выхода задают реакцию объекта: светиться, издавать звук, вибрировать, двигаться, отображать, записывать или отправлять информацию. Они представляют выходные функции — по аналогии с исполнительными механизмами.

Карта среды придаёт паре «вход — выход» контекст. При входе «движение» и выходе «звук» урна могла бы звучать, когда кто-то промахивается мимо неё, а фонарь — сообщать о приближении человека. Вход и выход определяют поведение устройства; среда связывает это поведение с повседневной ситуацией.

Карты «Trash can» — урна (среда), «Motion» — движение (вход) и «Make sound» — издать звук (выход) соединены знаками &; стрелка ведёт к фразе «Missing the trash bin creates a sound» — «При промахе мимо урны раздаётся звук».
Сочетание трёх карт становится описанием одного умного объекта. Цвет рамки задаёт вид: зелёный — среда, голубой — вход, жёлтый — выход.
Все 49 карт SNaP: 20 карт среды с зелёными рамками в двух верхних рядах, 21 голубая карта входа в средних рядах и слева внизу, 8 жёлтых карт выхода в оставшейся части нижнего ряда.
Полный набор из 49 карт SNaP: 20 карт среды, 21 карта входа и 8 карт выхода. Возможные сочетания образуют пространство проектных решений игры. Исходные карты показаны на английском языке.

От письменных идей к интерактивным виртуальным объектам

На момент проекта занятие SNaP заканчивалось письменным описанием умного объекта, придуманного детьми. Параллельно i3Lab разрабатывала «физическую доску», объединявшую планшет с Arduino, чтобы превращать эти описания в физические прототипы. Smart Codesign VR исследовал другой подход — виртуальную реальность, которую исследовательская команда ещё не изучала для этой цели.

VR открывала две возможности. Во-первых, дети могли создавать прототипы движениями всего тела: хватание, перенос, освещение и рисование кистью становились способами задавать условия и поведение. Во-вторых, идеи могли приобретать видимую форму виртуальных объектов, с которыми можно сразу взаимодействовать. Письменное описание превращалось бы в объект с размером и формой прямо перед ребёнком.

Для кого это спроектировано

Предполагаемые пользователи — дети 11–13 лет, с особым вниманием к детям с нарушениями нейроразвития. Проектирование умного объекта требует определённых навыков логического мышления, поэтому и SNaP, и VR-версия были рассчитаны на этот возрастной диапазон.

Проект был направлен на то, чтобы помочь детям выражать идеи через практическое прототипирование и взаимодействие. Это были цели проектирования, а не доказанные терапевтические или образовательные результаты: прототип не оценивался с участием детей.

Проектирование комфортного пространства

Опираясь на материалы, изученные для проекта, мы выделили четыре направления пространственного дизайна: звук, свет и цвет, организация пространства и материалы. Для учёта слуховой чувствительности рассматривались шумоизоляция, регулируемая громкость и тихий равномерный звук. Для света и цвета — спокойный малонасыщенный фон с яркими насыщенными цветами лишь на небольших участках. Учитывались также ясные границы пространства, упорядоченная планировка, простые читаемые формы и свободное перемещение. В виртуальной среде дизайнеры могут управлять этими параметрами. Их влияние на комфорт пользователей в данном проекте не оценивалось.

Ограничения и риски VR

В проекте также учитывались ограничения и риски VR: стоимость оборудования, укачивание, нагрузка на голову и шею из-за веса гарнитуры, происшествия при закрытом обзоре физического окружения, утомление глаз при длительном использовании и опасения по поводу зависимости, связанной с чрезмерным погружением.

Эти соображения определили три проектных решения: сохранять простоту взаимодействия, оставляя достаточно сложности для обучения; делать изображение и звук понятными без чрезмерной стимуляции; задавать чёткий момент завершения. После прототипирования и проверки объекта в парке занятие заканчивается, а не побуждает оставаться в VR неопределённо долго.


Прототип: сценарий использования и реализация

Четыре этапа взаимодействия

Приложение включает четыре этапа: экран ожидания, выбор карт, прототипирование и взаимодействие в виртуальном парке.

1. Экран ожидания

Приложение открывает титульный экран и ждёт нажатия кнопки контроллера. Эта намеренная пауза даёт игроку время надеть гарнитуру и занять удобное положение до начала основной части.

2. Выбор карт — схватить и положить в коробку

Игрок выбирает по одной карте среды, входа и выхода: берёт объект, соответствующий карте, и кладёт его в нужную коробку. Такое взаимодействие использует трёхмерное пространство VR. Когда все три коробки заполнены, звуковая подсказка направляет игрока к прототипированию. Карты можно выбирать в любом порядке, но для продолжения нужны все три.

Выбор карт в VR: перед стендом стоят три полупрозрачные коробки с подписями input (вход), environment (среда) и output (выход). Виртуальная рука держит объект-громкоговоритель.
Сцена выбора карт. Три коробки на переднем плане соответствуют среде, входу и выходу; положенный в них схваченный объект подтверждает выбор. Карты, недоступные на этом этапе, показаны приглушённо.

3. Прототипирование: задавать условия и поведение движениями

Прототипирование — основа системы. Игроки задают условие срабатывания выбранной карты входа и реакцию выбранной карты выхода. У каждой карты свой способ взаимодействия с движениями, требующими отслеживания шести степеней свободы.

Например, при выборе входа «прогноз погоды» в пределах досягаемости появляются объекты, обозначающие солнце, облака, дождь, грозу и снег. Игрок берёт один из них и направляет исходящий от него луч на целевой объект, задавая условие. Если выходом выбрано «светиться», игрок берёт кисть, окунает её в банку с краской и проводит по объекту, выбирая цвет свечения. Чтобы удалить нанесённый цвет, он окунает кисть в банку с «водой» и снова проводит по объекту.

Важным решением при реализации стала поддержка нескольких пар «вход — выход» для одного объекта. Первоначально предусматривалось одно правило, например «светиться красным в солнечную погоду». Несколько пар позволяют объекту по-разному реагировать на разные условия: красным на солнце, синим в дождь и белым в снег. Игроки могут проверить каждую пару перед подтверждением и при необходимости вернуться к редактированию.

Экран прототипирования: слева инструкции входа Weather (погода), в центре три выноски условий — когда ожидаются солнце, дождь или снег, справа выноски выхода. На переднем плане дерево и банки с краской. Экран прототипирования справа: парные выноски входа и выхода рядом с жёлтым фонарём, справа инструкции карты выхода Light up (светиться).
Снимки прототипа 2021 года. Выноски с номерами связывают входные условия и выходное поведение. Кнопка «+» добавляет пару, кнопка «−» удаляет её. На панели входа написано «Maximum number of instances: 5» — «Максимальное число экземпляров: 5». Интерфейс исходного прототипа — на английском.

4. Парк: проверка объекта

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

Ход в целом

Диаграммы деятельности UML ниже обобщают сценарий. Верхняя показывает весь процесс, две нижние — взаимодействие с картами «прогноз погоды» и «светиться». Ветвления показывают, как вернуться к выбору карт после получения инструкций и к редактированию после подтверждения и проверки объекта.

Диаграммы деятельности UML. Верхняя Overall Activity показывает ожидание, выбор карт, инструкции, задание условий и поведения, подтверждение, проверку и взаимодействие в парке. Нижняя левая раскрывает взаимодействие с прогнозом погоды, нижняя правая — со свечением.
Диаграммы деятельности 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, который отвечает за размещение объекта в парке, выполнение условий на входе и наблюдение за выходами, а также за завершающее поздравление.

Диаграмма классов UML с четырьмя пакетами сцен: Title Scene, Card Selection Scene, Prototyping Scene и Interaction Scene. Каждый ссылается на статический класс Smart Object. В Prototyping Scene классы Input Card и Output Card наследуются от абстрактного Card; Weather Card, Fire Card, Make Sound Card и Light Up Card — их конкретные подклассы.
Диаграмма классов UML системы. Четыре пакета соответствуют сценам Unity. Статический класс «Smart Object» внизу по центру сохраняет данные между сценами. Атрибуты и методы упрощены для читаемости; названия кода сохранены на английском.

Что удалось и что осталось

До реализации дошли 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.