Closed djbailey closed 4 years ago
Same problem here! The workaround does indeed work but may not be ideal. Any ideas what might be causing this? I understand the system uses an mathematical model to simulate the elbow rotation, how could that be implemented in this case?
I don't have an Oculus GO to test; Does someone know if the VrAPI actually provides position information for the controller?
the check in the plugin is performed here: https://github.com/GodotVR/godot_oculus_mobile/blob/c4ce228f675d8f53b8e9c850b3e7e66e8573de5d/src/ovr_mobile_controller.cpp#L197
Not sure if ovrControllerCaps_HasPositionTracking returns false for the GO controller and what Godot does with this information. Maybe it is up to the application to set the controller position relative to the head?
I think first would be to check if for the GO controller the returned value from vrapi_GetInputTrackingState(...
actually provides a position.
[Edited after I realized that Oculus Go is not 6DOF...] Just to be certain on this - In the original reports above - In your Export settings what did you set for "Xr Feature" and Degrees of Freedom? I ask because the behavior you cite above sounds similar to the results I got (on Oculus Quest - slightly different animal) when I mistakenly omitted these settings in a new project.
Hi @electronjoe, I did set up the project but with 3DOF and 6DOF, I can try and test 6DOF this evening
I'll see if I can find some time this weekend to hook up my Go. I'm guessing the Oculus SDK expects us to position the Go's controller and only gives us orientation data. If thats the case I'll probably add some fixed positions in if we detects its a Go controller.
Fixed by #114
I configured my Go to right handed and set the ARVRController to id 2. In this configuration the orientation of the controller is working perfectly but the position is at the origin. No matter where I position the transform of the controller when running on device the controller reverts back to the origin.
My current work-around to to set the position of the ARVRController every frame. It's not pretty but it's will work for the time being:
func _process(delta): translation = Vector3(0.25,1.25,-0.25)