XRLabs Posted February 6, 2024 Posted February 6, 2024 Добрый день использую VR-шаблон с C# API. Очки Oculus Quest 2 подключенные через Oculus Link. Приложение запускается, в качестве рук отображаются модели контроллеров. Однако я нигде не могу найти хотя бы одну ссылку на модельки контроллеров, чтобы заменить их на модели рук. Подскажите пожалуйста как это сделать?
silent Posted February 7, 2024 Posted February 7, 2024 Модели рук из коробки отсутствуют. Нужно сделать свои, плюс дописать логику, которая будет управлять сгибанием пальцев (если нужно). Планируем переход на OpenXR в этом году. Скорее всего, после этого будет время заняться улучшением VR Template / VR Sample, посмотрим как добавить туда базовые модельки кистей рук. Спасибо. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
XRLabs Posted February 7, 2024 Author Posted February 7, 2024 (edited) Проблема не в отсутствии/наличии молей рук (они-то как раз есть) А в том что после запуска отображаются модели контроллеров, причем (вероятно) не те, что включены в темплейт (см. рис. с черным контроллером), а дефолтные окулусовские (из Rift окружения - белые). Резюмируя. Вопрос, где именно происходит инициализация моделей контроллеров Edited February 7, 2024 by XRLabs
mifril Posted February 7, 2024 Posted February 7, 2024 Здравствуйте. В компоненте VRHandController.cs есть метод Render(по сути является обычным апдейтом компоненты, просто назван так для ясности), в нем происходит инициализация мешей контроллеров, для этого в VR API есть методы для получения мешей и текстур контроллеров, которые грузятся асинхронно, поэтому мы пытаемся их проинициализировать в апдейте, если же они уже проинициализировали, то метод Render просто выставляет нужные трансформации. Эти компоненты добавлены на соотвествующие объекты Которые по сути являются корневыми для моделей, так что если хотите добавить модели рук, то можете добавить модельки в чилды к этим нодам, и перепесать код компоненты VRHandController.cs для правильного анимирования этих рук. Ну либо просто удалить метод Render, для того чтобы модельки контроллеров просто не грузились
XRLabs Posted February 7, 2024 Author Posted February 7, 2024 Спасибо за ответ, но у нас, пока недопонимание:) Контроллеры, которые должны быть загружены асинхронно, в итоге НЕ отображаются. Я так понимаю что должны как раз отображаться черные модельки контроллеров. Вместо этого вылезают модельки контроллеров, которые вылезли из самого окулуса, точнее среды выполнения OpenXR (это либо SteamVR, либо Oculus - как в моем случае)
mifril Posted February 7, 2024 Posted February 7, 2024 Я не совсем понимаю что Вы делаете и чего хотите добиться. Как я понимаю вы подключаете свой VR шлем используя запущенное приложение Oculus и SteamVR и с аргументом запуска движка -vr_app openvr. Модельки которые используются в темплейте как раз тоже нигде не хранятся в темплейте а загружаются из SteamVR, те модельки что Вы нашли в проекте возможно остались от старых версий темплейта, когда в движке еще не было поддержки загрузки контроллеров в рантайме из OpenVR. Контроллеры из оверлея SteamVR не могут быть отображены в приложении если вы не включии собственно сам оверлей, в таком случае и приложение будет тоже остановлено. Можете предоставить больше информации, что Вы делаете и как, и какого именно результата хотите добиться.
XRLabs Posted February 7, 2024 Author Posted February 7, 2024 Понял свою ошибку! Если запускать без аргумента, то будет подгружаться моделька из SteamVR. Если в эти ноды добавить модельку рук, то они будут отображаться одновременно с контроллерами. Добавил аргумент -vr_app openvr все стало как нужно (модель контроллера исчезла, модель руки осталась). Правда если аргумент удалить и снова запустить, все продолжает работать:) 1
Recommended Posts