Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Налаштування OpenXR
OpenXR має власний набір параметрів, які застосовуються під час запуску OpenXR. Хоча розширення OpenXR, реалізовані через плагіни Godot, можуть додавати додаткові параметри, ми обговоримо тут лише налаштування в ядрі Godot.
Загальні налаштування
Увімкнено
Це налаштування вмикає модуль OpenXR під час запуску Godot. Це потрібно, якщо використовується серверна частина Vulkan. Для інших серверних програм ви можете будь-коли ввімкнути OpenXR, викликавши ініціалізацію на OpenXRInterface.
Це також потрібно ввімкнути, щоб отримати доступ до редактора карти дій.
Ви можете використати перемикач командного рядка --xr-mode on, щоб примусово ввімкнути це.
Карта дій за замовчуванням
Це вказує шлях до файлу карти дій, який OpenXR завантажуватиме та передаватиме до XR Runtime.
Форм-фактор
Це визначає, чи призначена ваша гра для:
Head Mountedтакі пристрої, як Meta Quest, Valve Index або Magic Leap,кишеньковіпристрої, такі як телефони.
Якщо пристрій, на якому ви запускаєте гру, не відповідає вибраним тут, OpenXR не вдасться ініціалізувати.
Переглянути конфігурацію
Це визначає конфігурацію перегляду, для якої розроблено вашу гру:
Mono, ваша гра забезпечує виведення одного зображення. наприклад AR на основі телефону;Стерео, ваша гра забезпечує вихід стереозображення. наприклад наголовні пристрої.
Якщо пристрій, на якому ви запускаєте гру, не відповідає вибраним тут, OpenXR не вдасться ініціалізувати.
Примітка
OpenXR має додаткові конфігурації перегляду для дуже специфічних пристроїв, які Godot ще не підтримує. Наприклад, гарнітури Varjo мають конфігурацію квадроперегляду, яка виводить два набори стереозображень. Вони можуть бути підтримані найближчим часом.
Довідковий простір
У XR усі елементи, як-от голова та руки гравця, відстежуються в обсязі відстеження. В основі цього обсягу відстеження знаходиться наша початкова точка, яка відображає наш віртуальний простір у реальний простір. Однак існують різні сценарії, які розміщують цю точку в різних місцях, залежно від використовуваної системи XR. У OpenXR ці сценарії чітко визначені та вибрані шляхом встановлення еталонного простору.
Місцевий
Локальний довідковий простір за замовчуванням розміщує нашу початкову точку в голові гравця. Деякі середовища виконання XR робитимуть це кожного разу, коли починається ваша гра, інші змусять позицію зберігатися протягом сеансів.
Однак цей довідковий простір не заважає користувачеві піти, тому вам потрібно буде виявити, чи робить це користувач, якщо ви хочете завадити користувачеві залишити транспортний засіб, яким він керує, що потенційно може порушити гру.
Цей довідковий простір є найкращим варіантом для таких ігор, як авіасимулятори або симулятори перегонів, де ми хочемо розмістити вузол XROrigin3D там, де має бути голова гравця.
Коли користувач вмикає на своїй гарнітурі параметр повторного центру, метод якого відрізняється для кожного середовища виконання XR, середовище виконання XR перемістить XRCamera3D до вузла XROrigin3D. OpenXRInterface також видаватиме сигнал pose_recentered, щоб ваша гра могла реагувати відповідно.
Примітка
Будь-які інші гусеничні елементи XR, такі як контролери або анкери, також будуть відповідним чином налаштовані.
Попередження
Ви не повинні викликати center_on_hmd під час використання цього довідкового простору.
етап
Еталонний простір сцени є нашим стандартним еталонним простором і розміщує точку початку в центрі нашого ігрового простору. Для середовищ виконання XR, які дозволяють накреслити межу опікуна, це розташування та його орієнтацію часто встановлює користувач. Інші середовища виконання XR можуть прийняти рішення про розміщення цієї точки іншими засобами. Однак це нерухома точка в реальному світі.
Цей еталонний простір є найкращим варіантом для ігор масштабу кімнати, де користувач повинен ходити по більшому простору, або для ігор, де потрібно перемикатися між режимами гри. Дивіться Room Scale для отримання додаткової інформації.
Коли користувач вмикає опцію Recenter на своїй гарнітурі, метод якої відрізняється для кожного середовища виконання XR, середовище виконання XR не змінюватиме вихідну точку. OpenXRInterface видасть сигнал pose_recentered, і від гри залежить належна реакція. Якщо цього не зробити, ваша гра не буде прийнята в різних магазинах.
У Godot ви можете зробити це, викликавши функцію center_on_hmd на XRServer:
Виклик
XRServer.center_on_hmd(XRServer.RESET_BUT_KEEP_TILT, false)перемістить вузол XRCamera3D до вузла XROrigin3D, подібно до простору посиланьLocal.Виклик
XRServer.center_on_hmd(XRServer.RESET_BUT_KEEP_TILT, true)перемістить вузол XRCamera3D вище вузла XROrigin3D, зберігаючи зріст гравця, подібно до простору посиланьLocal Floor.
Примітка
Будь-які інші гусеничні елементи XR, такі як контролери або анкери, також будуть відповідним чином налаштовані.
Місцевий поверх
Локальний опорний простір підлоги подібний до локального опорного простору, оскільки він розташовує початкову точку, де знаходиться гравець. Однак у цьому режимі висота гравця зберігається. Так само, як і з локальним довідковим простором, деякі середовища виконання XR зберігатимуть це розташування протягом сеансів.
Таким чином, немає гарантії, що гравець буде стояти на початковій точці, єдина гарантія полягає в тому, що він стояв там, коли користувач востаннє повторно центрував. Таким чином, гравець також може вільно піти.
Цей еталонний простір є найкращим варіантом для ігор, де користувач повинен стояти в тому самому місці, або для ігор типу AR, де елементи інтерфейсу користувача прив’язані до початкового вузла та швидко розміщуються в місці розташування гравця на останньому центрі.
Коли користувач активує опцію повторного центру на своїй гарнітурі, метод якої відрізняється для середовища виконання XR, середовище виконання XR перемістить XRCamera3D над вузлом XROrigin3D, але збереже зріст гравця. OpenXRInterface також видаватиме сигнал pose_recentered, щоб ваша гра могла реагувати відповідно.
Попередження
Будьте обережні, використовуючи цей режим у поєднанні з віртуальним рухом гравця. Повторне центрування користувача в цьому сценарії може бути непередбачуваним, якщо не протидіяти переміщенню під час обробки сигналу повторного центрування. Це навіть може призвести до порушення гри, оскільки ефектом у цьому сценарії буде телепортація гравця в будь-яке абстрактне місце, де було розміщено початкову точку під час віртуального руху, включаючи можливість телепортації гравців у місця, які повинні бути заборонені. У цьому сценарії краще використовувати режим Stage і обмежити скидання до орієнтації лише тоді, коли отримано сигнал pose_recentered.
Примітка
Будь-які інші гусеничні елементи XR, такі як контролери або анкери, також будуть відповідним чином налаштовані.
Попередження
Ви не повинні викликати center_on_hmd під час використання цього довідкового простору.
Режим змішування середовища
Режим змішування середовища визначає, як наш відтворений результат змішується з «реальним світом», якщо це підтримується гарнітурою.
Непрозорийозначає, що наш вихід закриває реальний світ, ми перебуваємо в режимі VR.Additiveозначає, що наш результат додається до реального світу, це режим AR, де оптика не дозволяє нам повністю затемнювати реальний світ (наприклад, Hololens),Альфаозначає, що наш вихід змішується з реальним світом за допомогою альфа-виводу (вікно перегляду має мати прозорий фон). Це режим AR, де оптика може повністю закривати реальний світ (Magic Leap, усі прохідні пристрої тощо) .).
Якщо вибрано режим, який не підтримується гарнітурою, буде вибрано перший доступний режим.
Примітка
Деякі пристрої OpenXR мають окремі системи для ввімкнення/вимкнення проходу. Починаючи з Godot 4.3 і далі, вибір режиму альфа-змішування також виконуватиме ці додаткові дії. Для цього потрібно встановити найновіший плагін постачальника.
Рівень фовеації
Встановлює рівень фовеації, який використовується під час візуалізації, якщо ця функція підтримується апаратним забезпеченням, що використовується. Foveation — це техніка, при якій чим далі від центру вікна перегляду ми відтворюємо вміст, тим нижча роздільна здатність відтворюється. Більшість середовищ виконання XR підтримують лише фіксовану фовеацію, але деякі враховують відстеження очей і використовують для цього ефекту фокусну точку.
Чим вищий рівень, тим кращий приріст продуктивності, але також тим більше погіршується якість периферійного зору користувача.
Примітка
Лише сумісний рендерер, для Mobile і Forward+ рендерера встановіть для властивості vrs_mode Viewport значення VRS_XR.
Попередження
Ця функція вимкнена, якщо використовуються пост-ефекти, такі як світіння, цвітіння або DOF.
Фовеація динамічна
Якщо ввімкнено, рівень фовеації регулюватиметься автоматично залежно від поточного навантаження графічного процесора. Він буде регулюватися між низьким і вибраним рівнем фовеації в попередньому налаштуванні. Тому найкраще поєднати це налаштування з високим рівнем фовеації.
Примітка
Тільки сумісний рендерер
Надіслати буфер глибини
Якщо ввімкнено, буфер глибини, що надається OpenXR, використовуватиметься під час відтворення, яке надсилається разом із відтвореним зображенням. Середовище виконання XR може використовувати це для покращеного повторного проектування.
Примітка
Увімкнення цієї функції вимкне підтримку трафаретів під час візуалізації. Не багато середовищ виконання XR використовують це, радимо залишити це налаштування вимкнутим, якщо це не дає помітних переваг для вашого випадку використання.
Сповіщення про запуск
Якщо ввімкнено, це призведе до повідомлення про сповіщення, наданого користувачеві, якщо OpenXR не запускається. Ми не завжди отримуємо відгук від системи XR щодо того, чому не вдається запустити. Якщо ми це робимо, ми реєструємо це на консолі. Поширені причини невдач:
На головній системі не встановлено середовище виконання OpenXR.
Середа виконання Microsoft WMR OpenXR наразі активна, вона підтримує лише DirectX і не працюватиме, якщо використовується OpenGL або Vulkan.
SteamVR використовується, але гарнітура не підключена/увімкнена.
Вимкніть це, якщо ви підтримуєте резервний режим у своїй грі, щоб у неї можна було грати в режимі настільного комп’ютера, коли гарнітура VR не під’єднана, або якщо ви самостійно справляєтеся з проблемою, перевіряючи OpenXRInterface.is_initialized().
Розширення
Цей підрозділ дозволяє вам увімкнути різні додаткові розширення OpenXR. Майте на увазі, що розширення працюватимуть лише за умови, що середовище виконання OpenXR (SteamVR, Oculus тощо), з яким запускається проєкт, підтримує їх.
Утиліти налагодження
Увімкнення цієї функції призведе до запису повідомлень налагодження з середовища виконання XR.
Типи повідомлень про налагодження
Це дозволяє вибрати, які повідомлення налагодження записуватимуться в журнал.
Синтез фреймів
Коли цю функцію ввімкнено, за умови підтримки середовища виконання XR, буфери вектора руху та глибини з нижчою роздільною здатністю візуалізуються та надаються середовищу виконання XR. Тепер середовище виконання XR може вставляти кадри повторного проекційування та компенсувати нижчу частоту кадрів.
Наразі він має такі обмеження:
НЕ працює у рендерері Forward+.
Працює лише зі стереорендерингом.
Відстеження рук
Це вмикає розширення відстеження рук, якщо воно підтримується використовуваним пристроєм. Це ввімкнено за замовчуванням через старі причини. Розширення відстеження руки надає доступ до даних, які дозволяють візуалізувати руки користувача з правильним положенням пальців. Залежно від можливостей платформи дані відстеження рук можуть бути отримані з вхідних даних контролера, отримані з даних рукавичок, оптичних датчиків відстеження рук або будь-якого іншого відповідного джерела.
Якщо ваша гра підтримує лише контролери, це слід вимкнути.
Дивіться сторінку про hand tracking для отримання додаткової інформації.
Відстеження рук. Безперешкодне джерело даних
Увімкнення цієї функції означає, що відстеження рук може використовувати точне положення пальців, зазвичай те, що бачить камера гарнітури.
Джерело даних контролера відстеження рук
Увімкнення цієї функції означає, що відстеження рук може використовувати сам контролер і визначати розташування пальців на основі введених даних контролера або датчиків на контролері.
Профіль взаємодії рук
Увімкнення цього розширення дозволяє використовувати дві нові пози для відстеження рук. Позу щипка, яка знаходиться між великим і вказівним пальцями, спрямованими вперед, і позу тикання, яка знаходиться на кінчику вказівного пальця.
Це також дозволяє використовувати ще 3 жести. Щипок, коли користувач стискає великий та вказівний пальці разом. Активація прицілювання, коли вказівний палець повністю витягнутий. І Захоплення, коли користувач стискає руки в кулак.
Коли надається профіль взаємодії з рукою та профіль взаємодії з контролером, середовище виконання перемикатиметься між профілями залежно від того, чи використовується оптичне відстеження, чи користувач тримає контролер.
Якщо надається лише профіль взаємодії з рукою, будь-яке середовище виконання повинно використовувати взаємодію з рукою, навіть якщо контролер тримається в руках.
Просторові сутності
Це розширення та його налаштування використовуються для отримання та взаємодії з інформацією про реальне середовище користувача. Більш детальну інформацію про те, як воно працює, можна знайти на сторінці spatial entities page.
Взаємодія погляду очей
Це дозволяє розширити взаємодію погляду очей, якщо це підтримується використовуваним пристроєм. Якщо ввімкнено, ми отримуватимемо зворотний зв’язок від відстеження очей через позу, розташовану між очима користувача, орієнтованими в напрямку, куди користувач дивиться. Це буде єдина орієнтація.
Щоб скористатися цією функціональністю, вам потрібно відредагувати свою карту дій і додати нову дію пози, скажімо eye_pose. Тепер додайте новий профіль взаємодії для взаємодії погляду очей і зіставте eye_pose:
Не забудьте зберегти!
Далі додайте новий вузол XRController3D до свого початкового вузла та встановіть для його властивості tracker значення /user/eyes_ext, а для властивості pose значення eye_pose.
Тепер ви можете додавати речі до цього вузла контролера, наприклад raycast, і контролювати речі очима.
Рендеринг моделей
Це розширення використовується для запиту середовища виконання XR щодо 3D-ресурсів використовуваного обладнання, зазвичай контролера, а також положення цього обладнання. Ви можете знайти детальний посібник з його використання here.
Модифікатори прив'язки
Вони контролюють, чи можна використовувати модифікатори зв'язування. Модифікатори зв'язування використовуються для застосування порогових значень або значень зміщення. Ви можете знайти інформацію про те, як їх використовувати та налаштовувати, на сторінці карти дій XR here.
Аналоговий поріг
Дозволити модифікатори прив'язки аналогового порогу.
Прив'язка Dpad
Дозволити модифікатори зв'язування D-pad.