Розробка та реалізація ручного відстеження в PlatoBlockchain Data Intelligence «Myst». Вертикальний пошук. Ai.

Розробка та реалізація ручного відстеження в «Myst»

використання Оновлений API відстеження рук Presence Platform, ми запровадили відстеження рук із нашим останнім оновленням до Мист на платформі Meta Quest під назвою «Hands & More». Ми дуже раді нарешті дозволити людям грати Мист на Quest без фізичних контролерів! У цій публікації ми обговоримо еволюцію та ітерацію впровадження відстеження рук у Мист— і, зокрема, додавання додаткової підтримки для нього в Unreal Engine 4.27.2.

Розробка та реалізація ручного відстеження в PlatoBlockchain Data Intelligence «Myst». Вертикальний пошук. Ai.Гостьова стаття Ханни Гаміель

Ханна Гаміель є директором з розвитку компанії Блакитний— студія, що стоїть за оригіналом 'Myst' ігри—і допоміг розробити нове «Міст» (2020)', який включає підтримку VR. Спочатку вона мала суто технічну освіту, тепер вона допомагає керувати виробництвом усіх видань і керує бізнесом і технічними зусиллями в Cyan. Вона працювала над такими фільмами, як «Myst» (2020), «The Witness», «Braid, Anniversary Edition», «Obduction», «Firmament» (незабаром!) тощо.

Фаза проектування та міркування

Розробка навігації для стеження за руками

Зображення, яке вказує, куди ви хочете піти. Ви, мабуть, думали вказати, так? Ось чому ми вирішили використовувати метод «вказівки» для руху всередину Мист.

Коли ви перебуваєте в режимі телепорту, ви можете вказати, куди ви хотіли б потрапити, і кільце телепорту з’явиться в пункті призначення. Коли ви «скасовуєте» (витягуючи решту пальців або просто втягуючи вказівний палець назад у долоню), виконується телепорт.

Коли ви перебуваєте в режимі плавного руху, вказівка ​​вашою домінуючою рукою з вільним рухом (яку можна налаштувати в наших налаштуваннях керування, але за замовчуванням є лівою рукою) почне плавно рухати вас у напрямку, у який ви вказуєте.

Під час тестування рухів із наведенням ми виявили, що відстеження руки іноді може бути ненадійним за допомогою вказівного та середнього пальців, коли вони закриті рештою вашої руки. Система не впевнена, чи ці пальці спрямовані повністю чи повністю «закриті» у вашій руці. Ми додали до коду певний фактор «вигадки», щоб врахувати більш стабільну ініціацію/виконання рухів на цьому фронті, про що ми поговоримо трохи пізніше, коли обговорюватимемо зміни, внесені до стандартного відстеження руки підтримка в Unreal Engine.

Поворот

Метод точки не працює для всіх видів навігації. Коли справа доходить до повороту, ми спочатку поєднували вказівку з обертанням зап’ястя. Порівняння зап’ястя гравця та переднього вектора камери вкаже напрямок повороту (і наскільки великим має бути поворот). Спочатку ми спробували це, оскільки здавалося інтуїтивно зрозумілим зберегти тему «вказівки» для навігації між усіма режимами.

Однак у тестах на комфорт виникли ускладнення. Під час ігрового тестування більшість гравців вказують вперед, долонею до землі, як, ймовірно, намагаються вказати на щось поза грою. Обертання зап’ястя ліворуч і праворуч (навколо верхньої осі зап’ястя), коли ваша долоня спрямована до землі, є складним завданням і має дуже обмежений діапазон рухів, особливо якщо ви намагаєтеся відвернутися від грудей.

Ця проблема однакова, навіть якщо ви попросили гравця вказати на щось перед собою долонями всередину. Ви можете зігнути зап'ястя до ваше тіло зовсім трохи, але ви не отримаєте той самий діапазон рухів, згинаючи зап’ястя від тіла.

Отже, як ми це вирішили? Зрештою ми призначили поворот жесту «великий палець вгору» замість жесту вказівного пальця.

Уявіть, що ви піднімаєте великий палець. Тепер поверніть зап'ястя вправо і вліво. Зауважте, що, незважаючи на те, що у вас немає великого діапазону рухів, у цьому жесті ви можете досить постійно вказувати великим пальцем «ліворуч» або «праворуч».

Це те, на чому ми зупинилися для включення режиму стеження за рукою. Хоча вказівка ​​великим пальцем не здається найінтуїтивнішим способом повороту, це зробив в кінцевому підсумку є найбільш зручним і послідовним способом зробити це.

Під час миттєвого повороту обертання зап’ястя ліворуч або праворуч із положення піднятим великим пальцем угору викликає один миттєвий поворот. Потім вам потрібно повернути руку в положення «центр» (прямо вгору), щоб скинути фіксацію, і додатково зачекати дуже короткого часу відновлення, щоб знову розпочати поворот фіксації.

З плавним поворотом, поворот вашого зап’ястя, коли ви перебуваєте в положенні піднятим великим пальцем, почне обертати вас ліворуч або праворуч — коли ви залишите «мертву зону», яка запобігає повороту, доки ви не пройдете поріг.

Усунення конфліктів між рухами та позами взаємодії об’єктів

Звичайно, вказівка ​​пальця є занадто широким жестом, щоб вважати його лише для навігації. Люди будуть робити той самий вказівний жест, щоб натискати кнопки або взаємодіяти з іншими речами у світі просто за звичкою чи власними очікуваннями. До нього було б досить неприємно підійти (але ні право до) кнопки, наведіть палець, щоб натиснути її, а потім раптово (і небажано) підійдіть до неї ближче в грі (або ініціюйте телепортацію ненавмисно)!

Ми запобігаємо руху, коли гравець може з чимось взаємодіяти, запобігаючи спрацьовуванню будь-якого коду руху, коли рука, яка робить жест «рух», знаходиться в межах певного діапазону від об’єкта, з яким можна взаємодіяти. Цей діапазон змінювався кілька разів, щоб отримати хорошу «солодку точку» на основі ігрових тестів.

Ми з'ясували, що ця приємна точка знаходиться приблизно в 25 см від розташування в космосі кістки кінчика вказівного пальця. Мист повно інтерактивних об’єктів різного розміру (від маленьких кнопок до дуже великих важелів), розташованих як у широких відкритих просторах, так і у вузьких коридорах, тому нам знадобилося чимало тестів, щоб зупинитися на цьому значенні. Спочатку ми спробували 60 см (приблизно два фути), але це запобігло руху, коли гравцям все ще потрібно було наблизитися до об’єкта. Подібним чином, будь-що менше 25 см викликало небажаний рух гравця, коли гравці намагалися схопити або торкнутися об’єкта.

Однією з наших найкращих зон для тестування була кімната з генераторами на Міст-Айленді, куди ви пробираєтеся через вузький вхід, а потім вас одразу зустрічає панель, повна кнопок. Коли область тестування взаємодії була надто великою, гравці не могли пройти крізь вхід і до панелі, оскільки вона виявляла кнопки в радіусі вказівного пальця.

Тим не менш, 25 см - це те, що спрацювало саме для Мист. Іншим іграм може знадобитися скоригувати це число, якщо вони хочуть реалізувати щось подібне, враховуючи власні критерії.

Проектування взаємодії об’єктів для відстеження рук

Наразі всі взаємодії, які можна захопити, увійшли Мист створені для роботи з ручним відстеженням — повертаючи клапани, відкриваючи двері, натискаючи кнопки, гортаючи сторінки книги тощо.

Взаємодії базуються на тому, що ми вже налаштували Мист з сенсорними контролерами. Там натискання кнопки захоплення автоматично змішує ігрове сітчасте представлення вашої руки в позу «схоплена», стискаючи руку в кулак (якщо порожня) або хапаючи предмет. До відстеження руки ми додали код, який зробить кваліфіковане припущення щодо того, коли ви скручуєте пальці достатньо, щоб «схопити» щось і запустити ту саму логіку, про яку згадувалося раніше.

Наприклад, коли ви користуєтеся відстеженням рук і ваша рука наводить на те, що можна схопити, колір вашої руки стає помаранчевим (саме це відбувається, коли ви не використовуєте відстеження рук у Мист VR також). Коли ви хапаєте взаємодіючий об’єкт, починаючи стискати пальці в кулак, помаранчева сфера замінює сітку вашої руки та відображає місце, де рука прикріплена до об’єкта.

Причина, чому ми використали цей метод замість того, щоб створювати користувальницькі позиційні сітки для ваших рук або дозволяти вашим рукам/пальцям фізично взаємодіяти з частинами цих об’єктів, полягає в тому, що ми хотіли, щоб взаємодії були такими ж, як ми пропонуємо на сторона сенсорного контролера.

Але натискання кнопок працює інакше. Немає потреби в абстракції, оскільки кнопки не є об’єктами, які можна захопити, і натомість ми дозволяємо вам просто натиснути кнопку за допомогою згенерованих капсульних колайдерів між кожним із суглобів пальців на сітці для рук, що можна позувати. Завдяки цьому ви можете робити різноманітні дивні та веселі речі, наприклад, використовувати лише мізинець або кісточку безіменного пальця, щоб взаємодіяти з кожною кнопкою в грі, якщо ви дійсно цього хочете.

Ця реалізація дещо відрізняється від того, як сенсорні контролери взаємодіють із кнопками в грі, оскільки ми зазвичай очікуємо, що гравці використовуватимуть кнопку ручки на контролері, щоб налаштувати руку як сітку, що вказує пальцем, щоб отримати точну кнопку в грі натисніть на їх кінець. З відстеженням рук, очевидно, є значно більше гнучкості в позі, яку ви можете створювати своєю рукою, і, отже, значно більше способів натискати кнопки з однаковим рівнем точності.

Взаємодії меню/інтерфейсу користувача

Для взаємодії з меню ми використали ту саму парадигму взаємодії, яку Meta використовує для Quest Platform: стискання двома пальцями між великим і вказівним пальцями обох рук. Це можна використовувати як для відкриття нашого внутрішньоігрового меню, так і для взаємодії з елементами в меню. Немає сенсу винаходити колесо, оскільки гравці вже навчені робити це в меню на рівні ОС, коли вони вперше вмикають відстеження рук у Quest!

Передача всього цього гравцеві

Оскільки відстеження рук не так часто вводиться в Quest, як сенсорні контролери, і тому, що деякі люди можуть грати Мист вперше (або навіть граючи в їх першу гру VR!), ми намагалися бути уважними до того, як ми повідомляємо всю цю інформацію про відстеження рук гравцеві. Ми обов’язково включили іншу версію нашої «схеми контролера», спеціально розроблену для опису взаємодії відстеження руки (якщо ввімкнено в Мист), і ми показуємо гравцям спеціальні сповіщення, які розповідають їм, як саме рухатися руками.

Крім того, ми подумали, що було б життєво важливо нагадати гравцеві про те, як мати плавне відстеження рук після ввімкнення. Гравець отримує сповіщення в МистМеню користувача, що стабільність відстеження рук набагато краща, якщо вони перебувають у добре освітленій кімнаті та тримають руки в полі зору.

Meta також інформує гравців, що вони є ключовими для добре відстежуваного середовища відстеження рук, але ми усвідомлюємо, що деякі гравці можуть почати гру, не проаналізувавши сповіщення Meta про це спочатку, тому ми вирішили нагадати людям, якщо вони забудуть.

Продовжити на сторінці 2: Модифікації двигуна, зроблені в Unreal »

Часова мітка:

Більше від Дорога до ВР