Лунный модульLunar Module

Примечание

В этой статье рассматривается исследовательская выборка, созданная в лабораторных занятиях по смешанной реальности, где мы предоставляем наши знания и предложения по разработке приложений для смешанной реальности.This article discusses an exploratory sample we’ve created in the Mixed Reality Design Labs, a place where we share our learnings about and suggestions for mixed reality app development. Наши статьи и код, относящиеся к проектированию, будут развиваться по мере внесения новых обнаружений.Our design-related articles and code will evolve as we make new discoveries.

Лунный модуль — это пример приложения с открытым исходным кодом от лабораторных занятий корпорации Майкрософт по проектированию смешанной реальности.Lunar Module is an open-source sample app from Microsoft's Mixed Reality Design Labs. Узнайте, как расширять базовые жесты HoloLens с помощью двунаправленного отслеживания и ввода контроллера Xbox, создавать объекты, которые реактивны для сопоставления поверхности и поиска плоскости, и реализовывать простые системы меню.Learn how to extend HoloLens' base gestures with two-handed tracking and Xbox controller input, create objects that are reactive to surface mapping and plane finding, and implement simple menu systems. Все компоненты проекта доступны для использования в собственных приложениях смешанной реальности.All of the project's components are available for use in your own mixed reality app experiences.

Демонстрационное видеоDemo video

Записано с помощью HoloLens 2 с записью смешанной реальностиRecorded with HoloLens 2 using Mixed Reality Capture

Пересмотр классических возможностей для Windows Mixed RealityRethinking classic experiences for Windows Mixed Reality

Большая часть в атмосфера, небольшая напоминаетная доставка модуля Apollo методичное опросов зубчатых ландшафта ниже.High up in the atmosphere, a small ship reminiscent of the Apollo module methodically surveys jagged terrain below. Наша Пилотная программа феарлесс полагается на подходящую целевую область.Our fearless pilot spots a suitable landing area. Спуск трудным, но, к счастью, это путешествие было сделано много раз раньше...The descent is arduous but thankfully, this journey has been made many times before...

Исходный интерфейс от Atari 1979 лунныйOriginal interface from Atari’s 1979 Lunar Lander
Исходный интерфейс от Atari 1979 лунныйOriginal interface from Atari’s 1979 Lunar Lander

Лунный Land — это аркадные классическое приложение, где игроки пытаются пилотировать Динамо в плоском месте лунного ландшафта.Lunar Lander is an arcade classic where players attempt to pilot a moon lander onto a flat spot of lunar terrain. Все, кто родился в 1970-х, скорее всего затратили часы в аркадные со своими глазами, связанными с этим вектором, поставляющими плумметинг из перевозки.Anyone born in the 1970s has most likely spent hours in an arcade with their eyes glued to this vector ship plummeting from the sky. По мере того, как игрок переходит к поставке в целевую область, ландшафта масштабируется для более подробного отображения.As a player navigates their ship toward a landing area, the terrain scales to reveal progressively more detail. Успешное выполнение означает, что целевой объект находится в пределах безопасного порогового значения по горизонтали и вертикали.Success means landing within the safe threshold of horizontal and vertical speed. Баллы начисляются за время, потраченное на начальное и оставшееся топливо, с множителем в зависимости от размера целевой области.Points are awarded for time spent landing and remaining fuel, with a multiplier based on the size of the landing area.

Помимо игрового процессаа, аркадныеная эпоха игр поменяла инновации в схемах управления.Aside from the gameplay, the arcade era of games brought constant innovation of control schemes. С помощью простейших двусторонних конфигураций и кнопок (которые отображаются на значке Pac-Man) с очень специфичными и сложными схемами, видимыми в 90 s и 00 с (как в имитаторах гольфа и в симуляторах салазок).From the simplest four-way joystick and button configurations (seen in the iconic Pac-Man) to the highly specific and complicated schemes seen in the late 90 s and 00s (like those in golf simulators and rail shooters). Входная схема, используемая в лунном станке, является интригующийой по двум причинам: бордюрам и впечатлениям.The input scheme used in the Lunar Lander machine is intriguing for two reasons: curb appeal and immersion.

Аркадные консоль Atari ЛунныйAtari’s Lunar Lander’s arcade console
Atari Лунный аркадныеAtari's Lunar Lander arcade console

Почему Atari и многие другие игровые компании решили пересчитать входные данные?Why did Atari and so many other game companies decide to rethink input?

Ребенок, прохождение по Аркадные, будет естественным заинтриговало на новейшей флашиест машине.A kid walking through an arcade will naturally be intrigued by the newest, flashiest machine. Но в лунном контакте в качестве входного механику, стояли из публика.But Lunar Lander features a novel input mechanic that stood out from the crowd.

Лунное занятие использует две кнопки для поворота левого и правого и креативностьного рычага для управления объемом креативность.Lunar Lander uses two buttons for rotating the ship left and right and a thrust lever to control the amount of thrust the ship produces. Этот рычаг дает пользователям определенный уровень ФИНЕССЕ, который не может быть предоставлен обычным джойстиком.This lever gives users a certain level of finesse a regular joystick can’t provide. Это также является компонентом, общим для современных панелей авиатион.It also happens to be a component common to modern aviation cockpits. Atari желаемый Лунный пользователь в том, что он находился в пилотном модуле.Atari wanted Lunar Lander to immerse the user in the feeling that they were in fact piloting a lunar module. Эта концепция известна как тактилеая.This concept is known as tactile immersion.

Тактиленая работа — это процесс получения отзыва от повторяющихся действий.Tactile immersion is the experience of sensory feedback from doing repetitive actions. В этом случае повторяющееся действие по настройке рычага регулирования и вращения, которое видят наши глаза и наши ушки слышать, помогает подключить игрока к выпуску на поверхности Луны.In this case, the repetitive action of adjusting the throttle lever and rotation, which our eyes see and our ears hear, helps connect the player to the act of landing a ship on the moon’s surface. Эта концепция может быть привязана к психологической концепции "Flow".This concept can be tied to the psychological concept of "flow." Когда пользователь полностью помещается в задаче, которая имеет правильный смесь сложности и вознаграждений, или говоря более просто, это «в зоне».Where a user is fully absorbed in a task that has the right mixture of challenge and reward, or put more simply, they’re “in the zone.”

Вероятно, наиболее заметным типом погружения в смешанной реальности является пространственное поразительность.Arguably, the most prominent type of immersion in mixed reality is spatial immersion. Вся точка смешанной реальности заключается в том, чтобы полагать, что эти цифровые объекты существуют в реальном мире.The whole point of mixed reality is to fool ourselves into believing these digital objects exist in the real world. Мы создаем голограммы в нашей окружающей среде, которые пространственно поувлекательны во всех средах и опыте.We’re synthesizing holograms in our surroundings, spatially immersed in entire environments and experiences. Это не значит, что мы по-прежнему не можем использовать в наших впечатлениях другие виды погружения, так же как Atari с тактилеом в лунном Land.This doesn’t mean we can’t still employ other types of immersion in our experiences just as Atari did with tactile immersion in Lunar Lander.

Разработка с использованием режима погруженияDesigning with immersion

Как мы можем применить иммерсивное тактиле к обновленной, объемные секуел на классический класс Atari?How might we apply tactile immersion to an updated, volumetric sequel to the Atari classic? Прежде чем приступать к схеме входных данных, необходимо решить игру, посвященную созданию трехмерного пространства.Before tackling the input scheme, the game construct for three-dimensional space needs to be addressed.

Визуализация сопоставления поверхности в HoloLensVisualizing surface mapping in HoloLens
Визуализация пространственного сопоставления в HoloLensVisualizing spatial mapping in HoloLens

Используя окружающую застановку пользователя, мы фактически имеющими бесконечные возможности ландшафта для размещения нашего лунного модуля.By leveraging a user’s surroundings, we effectively have infinite terrain options for landing our lunar module. Чтобы сделать игру наиболее похожей на первоначальную должность, пользователь может управлять и размещать в своей среде целевые узлы различных проблем.To make the game most like the original title, a user could potentially manipulate and place landing pads of varying difficulties in their environment.

Полетайте на Лунный модульFlying the Lunar Module
Полетайте на Лунный модульFlying the Lunar Module

Требуется, чтобы пользователь настроил схему ввода, управлять поставке и иметь небольшой целевой объект для земли.Requiring the user to learn the input scheme, control the ship, and have a small target to land on is a lot to ask. Успешная работа игр включает в себя правильный набор проблем и наград.A successful game experience features the right mix of challenge and reward. Пользователь может выбрать уровень сложности, с простейшим режимом — просто потребовать, чтобы пользователь успешно переводился в определенную пользователем область на поверхности, сканируемой HoloLens.The user can choose a level of difficulty, with the easiest mode simply requiring the user to successfully land in a user-defined area on a surface scanned by the HoloLens. После того, как пользователь получит зависание игры, он сможет погромче сложность по мере их появлении.Once a user gets the hang of the game, they can then crank up the difficulty as they see fit.

Добавление входных данных для жестов рукиAdding input for hand gestures

У базового входа HoloLens есть только два жеста — Air TAP и раскрытия.HoloLens base input has only two gestures - Air Tap and Bloom. Пользователям не нужно запоминать контекстные особенности или белье список специальных жестов, которые делают интерфейс платформы гибким и простым в изучении.Users don’t need to remember contextual nuances or a laundry list of specific gestures that makes the platform’s interface both versatile and easy to learn. Хотя система может предоставлять только эти два жеста, HoloLens в качестве устройства может отвестися сразу за двумя практическими действиями.While the system may only expose these two gestures, HoloLens as a device is can track two hands at once. Наш Node в лунном отделе — это [иммерсивное приложение. Это означает, что мы можем расширить базовый набор жестов, чтобы использовать две руки и добавить собственный восхитительно тактиле для навигации по лунному модулю.Our ode to Lunar Lander is an [immersive app, which means we can extend the base set of gestures to leverage two hands and add our own delightfully tactile means for lunar module navigation.

Взглянув на исходную схему управления, нам требовалось решить креативность и вращение.Looking back at the original control scheme, we needed to solve for thrust and rotation. При повороте в новом контексте добавляется дополнительная ось (технически две, но ось Y менее важна для размещения).The caveat is rotation in the new context adds an additional axis (technically two, but the Y axis is less important for landing). Два отдельных перемещения поставляются, естественно, для сопоставления с каждой рукой:The two distinct ship movements naturally lend themselves to be mapped to each hand:

Коснитесь и перетащите жест, чтобы поворачивать Land на всех трех осяхTap and drag gesture to rotate lander on all three axes
Коснитесь и перетащите жест, чтобы поворачивать Land на всех трех осяхTap and drag gesture to rotate lander on all three axes

КреативностьThrust

Рычаг на исходном компьютере Аркадные, сопоставленный с масштабом значений, чем выше рычаг, тем больше креативность было применено к поставке.The lever on the original arcade machine mapped to a scale of values, the higher the lever was moved the more thrust was applied to the ship. Важно отметить здесь, как пользователь может взять свою руку из элемента управления и сохранить нужное значение.An important nuance to point out here is how the user can take their hand off of the control and maintain a desired value. Для достижения того же результата можно эффективно использовать поведение касания и перетаскивания.We can effectively use tap-and-drag behavior to achieve the same result. Значение креативность начинается с нуля.The thrust value starts at zero. Пользователь нажмет и перетаскивает, чтобы увеличить значение.The user taps and drags to increase the value. На этом этапе они могут позволить поддерживать его.At that point they could let go to maintain it. Любое изменение значения жеста касания и перетаскивания будет отличаться от исходного значения.Any tap-and-drag gesture value change would be the delta from the original value.

ПоворотRotation

Это немного сложнее.This is a little more tricky. С более holographic нажатиями кнопок "повернуть", чтобы коснуться плохой.Having holographic “rotate” buttons to tap makes for a terrible experience. Не существует физического элемента управления, поэтому поведение должно поступать от объекта, представляющего земля, или самого себя.There isn’t a physical control to leverage, so the behavior must come from manipulation of an object representing the lander, or with the lander itself. Мы приступили к использованию метода, используя касание и перетаскивание, что позволяет пользователю эффективно «отправлять и извлекать» его в том направлении, в котором оно должно быть лицом.We came up with a method using tap-and-drag, which enables a user to effectively “push and pull” it in the direction they want it to face. Когда пользователь отключается и удерживается, точка в пространстве, в которой был инициирован жест, станет источником для вращения.Anytime a user taps and holds, the point in space where the gesture was initiated becomes the origin for rotation. При перетаскивании из источника преобразуется Дельта перевода руки (X, Y, Z) и применяется к Дельта значений поворота земли.Dragging from the origin converts the delta of the hand's translation (X,Y,Z) and applies it to the delta of the lander's rotation values. Или более просто: перетаскивание влево <-> вправо, вверх <-> вниз, вперед <-> в пробелах последовательное поставку соответственно.Or more simply, dragging left <-> right, up <-> down, forward <-> back in spaces rotates the ship accordingly.

Так как HoloLens может относить две руки, поворот может быть назначен правой рукой, а креативность — слева.Since the HoloLens can track two hands, rotation can be assigned to the right hand while thrust is controlled by the left. ФИНЕССЕ является показателем успеха в этой игре.Finesse is the driving factor for success in this game. Поведение этих взаимодействий — абсолютный высший приоритет.The feel of these interactions is the absolute highest priority. Особенно в контексте погружения тактиле.Especially in context of tactile immersion. Доставка, которая работает слишком быстро, будет сложной задачей, в то время как одна из слишком медленно потребовала бы от пользователя «Push and Pull» в поставке на незначительное время.A ship that reacts too quickly would be difficult to steer, while one too slow would require the user to “push and pull” on the ship for an awkwardly long amount of time.

Добавление входных данных для игровых контроллеровAdding input for game controllers

Хотя жесты, выполняемые в HoloLens, предоставляют собственный метод управления тонкой детализацией, по-прежнему существует некоторое отсутствие тактилей обратной связи, полученное от аналоговых элементов управления.While hand gestures on the HoloLens provide a novel method of fine-grain control, There's still a certain lack of 'true' tactile feedback that you get from analog controls. Подключение к игровому контроллеру Xbox позволяет нам вернуть это представление о физических возможностях, используя контрольные устройства для обеспечения точного контроля.Connecting an Xbox game controller allows us to bring back this sense of physicality while leveraging the control sticks to keep fine-grain control.

Существует несколько способов применения относительной схемы управления непосредственно вперед к контроллеру Xbox.There are multiple ways to apply the relatively straight-forward control scheme to the Xbox controller. Так как мы пытаемся не закрывать первоначальную Аркадные, креативностьные карты лучше подходят для кнопки триггера.Since we're trying to stay as close to the original arcade set up as possible, Thrust maps best to the trigger button. Эти кнопки являются аналоговыми элементами управления, что означает, что они имеют более простые состояния, а также имеют реакцию на степень давления.These buttons are analog controls, meaning they have more than simple on and off states, they actually respond to the degree of pressure put on them. Это дает нам похожую конструкцию в качестве креативностьного рычага.This gives us a similar construct as the thrust lever. В отличие от исходной игры и жеста руки, этот элемент управления будет вырезать креативность доставки после того, как пользователь прекратит задавление триггера.Unlike the original game and the hand gesture, this control will cut the ship's thrust once a user stops putting pressure on the trigger. Он по-прежнему предоставляет пользователю ту же степень ФИНЕССЕ, что и исходная игра аркадные.It still gives the user the same degree of finesse as the original arcade game did.

Левый аналоговый стик сопоставляется с значения нутации и рулоном, правый аналоговый стик сопоставляется с шагом и рулоном.Left thumbstick is mapped to Yaw and Roll, Right thumbstick is mapped to Pitch and Roll
Левый аналоговый стик сопоставлен с значения нутации и рулоном; Правый аналоговый стик сопоставлен с шагом и рулономLeft thumbstick is mapped to yaw and roll; right thumbstick is mapped to pitch and roll

Двойной сумбстиккс естественным образом предоставляет возможность управления вращением поставок.The dual thumbsticks naturally lend themselves to controlling ship rotation. К сожалению, существует три оси, на которые может поворачиваться доставка, и две сумбстиккс, обе которых поддерживают две оси.Unfortunately, there are three axes on which the ship can rotate and two thumbsticks which both support two axes. Это несоответствие означает, что один аналоговый стик управляет одной осью; или существует Перекрытие осей для сумбстиккс.This mismatch means either one thumbstick controls one axis; or there's overlap of axes for the thumbsticks. Предыдущее решение завершилось «неработано», так как сумбстиккс изначально смешивает свои локальные значения X и Y.The former solution ended up feeling "broken" since thumbsticks inherently blend their local X and Y values. Последнее решение требовало некоторого тестирования, чтобы определить, какие избыточные оси кажутся наиболее естественными.The latter solution required some testing to find which redundant axes feel the most natural. В последнем примере используются значения нутации и рулон (оси Y и x) для левого аналогового стика, а также Высота и поворот (оси Z и x) для правого стика.The final sample uses yaw and roll (Y and X axes) for the left thumbstick, and pitch and roll (Z and X axes) for the right thumbstick. Это казалось бы , что наиболее естественным, как кажется , независимо друг от друга значения нутации и тон.This felt the most natural as roll seems to independently pair well with yaw and pitch. В качестве побочной заметки использование обоих сумбстиккс для рулона также удваивает значение поворота; очень интересно, чтобы у земли были циклы.As a side note, using both thumbsticks for roll also happens to double the rotation value; it's pretty fun to have the lander do loops.

В этом примере приложения показано, как пространственное распознавание и тактиле может значительно изменить работу благодаря расширенным входным модальностейам Windows Mixed Reality.This sample app demonstrates how spatial recognition and tactile immersion can significantly change an experience thanks to Windows Mixed Reality's extensible input modalities. В то время как лунному контакту может быть почти 40 лет в возрасте, концепции, предоставляемые с небольшим восьмиугольником, будут работать непрерывно.While Lunar Lander may be nearing 40 years in age, the concepts exposed with that little octagon-with-legs will live on forever. Почему бы не взглянуть на будущее?When imagining the future, why not look at the past?

Технические сведенияTechnical details

Вы можете найти скрипты и Prefabs для примера приложения лунного модуля в лаборатории по проектированию смешанной реальности в GitHub.You can find scripts and prefabs for the Lunar Module sample app on the Mixed Reality Design Labs GitHub.

Об автореAbout the author

Picture of Addison Linville Addison ЛинвиллеAddison Linville
Разработчик средств взаимодействия с пользователем @MicrosoftUX Designer @Microsoft

См. также разделSee also