Jump to content

Замена моделей контроллеров на модели рук.


photo

Recommended Posts

Добрый день использую VR-шаблон с C# API. 
Очки Oculus Quest 2 подключенные через Oculus Link.
Приложение запускается, в качестве рук отображаются модели контроллеров. Однако я нигде не могу найти хотя бы одну ссылку на модельки контроллеров, чтобы заменить их на модели рук. Подскажите пожалуйста как это сделать?

Снимок экрана 2024-02-06 231520.png

Link to comment

Модели рук из коробки отсутствуют. Нужно сделать свои, плюс дописать логику, которая будет управлять сгибанием пальцев (если нужно).

Планируем переход на OpenXR в этом году. Скорее всего, после этого будет время заняться улучшением VR Template / VR Sample, посмотрим как добавить туда базовые модельки кистей рук.

Спасибо.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Проблема не в отсутствии/наличии молей рук (они-то как раз есть)
А в том что после запуска отображаются модели контроллеров, причем (вероятно) не те, что включены в темплейт (см. рис. с черным контроллером), а дефолтные окулусовские (из Rift окружения - белые).

Резюмируя. Вопрос, где именно происходит инициализация моделей контроллеров

Снимок экрана 2024-02-07 105808.png

Снимок экрана 2024-02-07 110020.png

Edited by XRLabs
Link to comment

Здравствуйте. В компоненте VRHandController.cs есть метод Render(по сути является обычным апдейтом компоненты, просто назван так для ясности), в нем происходит инициализация мешей контроллеров, для этого в VR API есть методы для получения мешей и текстур контроллеров, которые грузятся асинхронно, поэтому мы пытаемся их проинициализировать в апдейте, если же они уже проинициализировали, то метод Render просто выставляет нужные трансформации.

 

Эти компоненты добавлены на соотвествующие объекты

image.png

Которые по сути являются корневыми для моделей, так что если хотите добавить модели рук, то можете добавить модельки в чилды к этим нодам, и перепесать код компоненты VRHandController.cs для правильного анимирования этих рук.

Ну либо просто удалить метод Render, для того чтобы модельки контроллеров просто не грузились

Link to comment

Спасибо за ответ, но у нас, пока недопонимание:)
Контроллеры, которые должны быть загружены асинхронно, в итоге НЕ отображаются. Я так понимаю что должны как раз отображаться черные модельки контроллеров. Вместо этого вылезают модельки контроллеров, которые вылезли из самого окулуса, точнее среды выполнения OpenXR  (это либо SteamVR, либо Oculus - как в моем случае)

Link to comment

Я не совсем понимаю что Вы делаете и чего хотите добиться.

Как я понимаю вы подключаете свой VR шлем используя запущенное приложение Oculus и SteamVR и с аргументом запуска движка -vr_app openvr. Модельки которые используются в темплейте как раз тоже нигде не хранятся в темплейте а загружаются из SteamVR, те модельки что Вы нашли в проекте возможно остались от старых версий темплейта, когда в движке еще не было поддержки загрузки контроллеров в рантайме из OpenVR.

Контроллеры из оверлея SteamVR не могут быть отображены в приложении если вы не включии собственно сам оверлей, в таком случае и приложение будет тоже остановлено.

Можете предоставить больше информации, что Вы делаете и как, и какого именно результата хотите добиться.

Link to comment

Понял свою ошибку! Если запускать без аргумента, то будет подгружаться моделька из SteamVR. 
image.png.b6297c36943ee9f297a92d9ad1601a52.png

Если в эти ноды добавить модельку рук, то они будут отображаться одновременно с контроллерами.

Добавил аргумент -vr_app openvr все стало как нужно (модель контроллера исчезла, модель руки осталась). 

Правда если аргумент удалить и снова запустить, все продолжает работать:)

image.png

Снимок экрана 2024-02-07 142829.png

  • Thanks 1
Link to comment
×
×
  • Create New...