evgenij.zherenkov Posted January 24, 2020 Posted January 24, 2020 I am using Plugin AppVive for VR. As I understand it, he constantly updates the camera angles to the helmet angles in the VR space. Tell me how (or at what point) to apply the offset (setOffset ()) for the camera to shift the camera angle by a certain value relative to the angle from AppVive. At the same time, ActorPlayer itself and its vector Up do not change their position. For example, in VR space, the helmet angle is Y = 3, and the player’s camera angle will be Y = 48 (3 + 45). Thanks!
silent Posted January 24, 2020 Posted January 24, 2020 Evgenij, Could you please describe the use-case that you are trying to achieve? Do you want to point camera to the specific direction when world is being loaded? Or something else? Thanks! How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
evgenij.zherenkov Posted January 24, 2020 Author Posted January 24, 2020 (edited) Если можно, я по-русски) Суть такова. Персонаж в игровом мире, который видит человек, наклоняется вперед, при этом в реальности вращение шлема происходит назад(запрокидывается) . Вот в этот момент, возникающую разницу в углах, мне нужно скомпенсировать. Моя идея была в том, что бы угол, на который повернули шлем(назад), добавить к углу камеры в игровом пространсте. Иначе углы шлема выбирают угол наклона вперед в игровом мире, и наклона камеры не происходит. Я пытался задать смещение угола через head->setRotation() в VRPlayer и просто player->getCamera()->setOffset() , но он постоянно обновляются на данные углов полученные от шлема через AppVive без моего добавочного угла. Может, быть есть возможность поместить объект камеры(head) в какой-то дополнительный Node, и добавлять угол вращения к ниму. В следствии чего, камера и Node будут вращатся вместе с ActorPlayer. Камера(head) будет вращастся в след за шлемом. А Node "докручивать" камеру на нужный нам угол. Но у меня не выходит. Спасибо! Edited January 24, 2020 by evgenij.zherenkov
silent Posted January 27, 2020 Posted January 27, 2020 Управлять углами в шлеме можно самому, для этого нужно заблокировать автоматическое обновление трансформаций из плагина (setHeadRotationLock(1) и setHeadPositionLock(1)). В аттаче вы можете найти пример реализации своего алгоритма установки трансформаций для шлема. Спасибо! AppWorldLogic.h AppWorldLogic.cpp How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN
evgenij.zherenkov Posted January 28, 2020 Author Posted January 28, 2020 Ваш ответ помог. Единственное, пришлось отказаться от PlayerActor в пользу PlayerDummy, потому что камера PlayerActor из-за вектора Up постоянно пыталась перевернуться головой вверх если я сильно крутил камеру вниз. Спасибо за помощь!
leon.fuchs Posted October 7, 2021 Posted October 7, 2021 Is it also possible to change the offset of the controller? Otherwise I have the problem that the controller is above the VRplayer at this example. Thanks
bmyagkov Posted October 8, 2021 Posted October 8, 2021 Hello! 18 hours ago, leon.fuchs said: Otherwise I have the problem that the controller is above the VRplayer at this example. Could you be a little more specified on this? What kind of VR equipment you use? Does the issue happens out of the box or there is some custom logic implemented? Looking ahead I want to share functions where the position of the controllers changes. We just get the controller's position and then add the player's position to it. For AppVive: Quote mat4 transform = vive.getDevicePose(device_id); controller[num]->setWorldTransform(player_transform * Mat4(transform) * Mat4(rotateX(-90.0f))); For AppOculus: Quote void VRPlayerVive::controller_update(int num, const Mat4 &player_transform, int device_id) void VRPlayerVR::controller_update(int num, const Mat4 &player_transform, int is_device_connected, const mat4 &device_pose) Thanks!
leon.fuchs Posted October 11, 2021 Posted October 11, 2021 thank you very much your answer has already solved my problem 1
Recommended Posts