Если коротко:

Unity подключает OpenXR как package через XR Plug-in Management и добавляет платформенные возможности отдельными OpenXR Features или provider-пакетами. Unreal Engine содержит собственный OpenXR Plugin и расширяет его другими plugins; Meta XR Plugin может работать поверх Epic Native OpenXR и добавлять функции Quest. Один стандарт не делает проекты взаимозаменяемыми: сцены, input, компоненты, проверка настроек и сборка остаются средствами конкретного engine.

Meta XR Plugin vs OpenXR Unreal обозначает выбор backend и vendor-слоя, а сравнение с Unity показывает другой способ подключить тот же стандарт. Он определяет связь VR app с runtime. Структуру scene, input и build workflow задаёт engine.

Общая основа

Приложение создаёт OpenXR instance, получает список extensions и включает нужные возможности. Runtime обслуживает конкретные devices. Наличие функции в registry ещё не гарантирует её поддержку гарнитурой.

Оба engine закрывают низкоуровневые вызовы своими компонентами. Сцены между редакторами не переносятся.

Реализация в Unity

Базовая интеграция поставляется в package com.unity.xr.openxr. Её включают через Project Settings > XR Plug-in Management для нужного build target. В OpenXR Features выбирают interaction profiles, а Project Validation проверяет settings.

Vendor features подключаются отдельным слоем. Package Unity OpenXR Meta реализует расширения для Quest и связывает часть функций с AR Foundation. Код использует XR Origin, Input System и Feature API.

Hand tracking показывает границу слоёв: конкретный hand feature должен поддерживаться package и runtime. Приложение проверяет extension, а управление связывает с action maps.

Начальная настройка разобрана в гайде по VR-проекту Unity.

Реализация в Unreal Engine

Epic включает OpenXR Plugin в состав движка. Он содержит модули для HMD, input, AR и editor. Дополнения добавляют hand tracking и vendor-функции без замены базового слоя.

Разработчик включает модули, перезапускает editor и задаёт Project Settings. Input, компоненты и Blueprint nodes зависят от выбранного набора. Базовая последовательность описана в руководстве для Unreal Engine.

Платформенный слой Quest

Для Quest доступны встроенная интеграция Epic и расширяющий её Meta XR Plugin. Документация производителя рекомендует для новых projects backend Epic Native OpenXR: vendor-слой работает в extension mode поверх реализации Epic. Так можно использовать другие extensions и исходный код engine.

Backend Meta XR with OVRPlugin оставлен для существующих projects как legacy. Доступность features зависит от версии движка и backend. Часть функций может требовать Oculus-VR fork, поэтому совместимость проверяют до обновления.

Сравнение реализации

Участок Unity Unreal Engine
Базовый слой Package в XR Plug-in Management Встроенный OpenXR Plugin Epic
Расширения Features и provider packages Extension plugins поверх базовой интеграции
Meta Quest Unity OpenXR Meta и связанные AR components Vendor-модуль с Epic Native backend
Input Input System, action maps, interaction profiles Input modules, actions и Blueprint/C++ API plugins
Проверка Project Validation для выбранной платформы Project Settings, dependencies и setup tools
Build Build Profiles и настройки provider по target Packaging settings и platform tools для target device

Таблица описывает интеграцию, а не скорость рендера или удобство editor.

Как выбрать набор plugins

Начните с функций для целевых devices. Для переносимого VR-приложения оставьте базовый OpenXR слой и добавляйте extensions после проверки runtime. Vendor package нужен для passthrough, anchors и других платформенных API.

Фиксируйте версии engine, packages или modules и выбранный backend. После изменения слоя повторите device build: запуск в editor не проверяет Android packaging и extensions гарнитуры.

Механизм расширений описан в статье об extensions и API Layers. Для Quest есть инструкции по сборке Unity-приложения и сборке Unreal Engine.

Итог

OpenXR сохраняет общий контракт с runtime, но каждый engine строит свою систему сборки. Unity использует packages и Features. Unreal опирается на интеграцию Epic, а Meta XR добавляет Quest-specific support поверх native backend.

Поделиться:TelegramВКонтакте

Источники

  1. Khronos: OpenXR Registry and Specification
  2. Unity: OpenXR Plugin
  3. Unity: OpenXR Meta
  4. Epic Games: OpenXR in Unreal Engine
  5. Meta: Choosing an OpenXR Backend