Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Unity & UnityEngine.XR/VR

Unity & UnityEngine.XR/VR

Поделиться
DampireПостоялецwww8 ноя. 201715:42#0
Пожалуй начну цензурно.
Юнити автоматом биндит камеру к HMD в локалспейсе (то есть относительно root object камеры).
Есть задача забиндить руки к контроллерам.
Идем по аналогии с UE4, в котором VR прекрасно работал. Кидаем руки в root object камеры.
123 | Unity & UnityEngine.XR/VR
И используем простой скрипт, который делает вот так
transform.localPosition = InputTracking.GetLocalPosition(XRNode.LeftHand);
transform.localRotation = InputTracking.GetLocalRotation(XRNode.LeftHand);
И руки оказываются где-то там внизу. Вращаются, вроде даже двигаются, но совсем не там где положено. Абсолютно аналогичный подход в UE4 работает как часы.
Я уже добавлял и TrackingReference и HardwareTracker и Head к этим данным, но что-то видимо не так.
Замечательная документация юнити вообще не показывает использование этого нативного апи. Все продвигает ассеты то от окулуса, то от вайва.
Может кто знает как решить эту сраную непосильную задачу?
aheptПостоялецwww8 ноя. 201716:42#1
Может быть, не та камера подцепилась? Еще я думал, что LeftHand/RightHand должны быть потомками MainCamera (так в Google VR в роде), либо должна учитываться разница трансформаций с камерой.

Еще можно попробовать эмпирически определить расхождение между получаемой и нужной трансформациями. Может быть, там что-то фиксированное в роде смещения по высоте от пола или масштаба (метры/сантиметры/т.п.). Или какая-то проблема с направлениями осей.

Но конкретно я с HMD не работал, поэтому точно не подскажу.

DampireПостоялецwww8 ноя. 201717:24#2
Камеры насколько я знаю все должны по дефолту цепляться к HMD. Камер всего две, все в одном месте. fov, znear, zfar идентичные. Либо баг, либо я уже хз.

/ Форум / Программирование игр / Общее

2001—2017 © GameDev.ru — Разработка игр