Aframe: Oculus Go controllers do not work in A-Frame

Created on 17 Feb 2018  Â·  21Comments  Â·  Source: aframevr/aframe

A-Frame controller experiences do not work on Oculus Browser 4.3.0+ on an Oculus Go device.

Previously, the Oculus Go controllers identified themselves as GearVR controllers. However, they are now properly identified as Go controllers, and so now all of the A-Frame controller experiences no longer work; the A-Frame controller code only works on a known set of named controllers.

In Oculus Browser 4.3.0 and newer - on Oculus Go devices only - the Gamepad.id property now returns "Oculus Go Controller".

Before Oculus Browser 4.3.0, GamePad.id always returned "Gear VR Controller" on Oculus Go.

On Gear VR devices, Gamepad.id will still be "Gear VR Controller".

Oculus Go controllers have the same functionality as Gear VR controllers:
https://www.oculus.com/blog/pioneering-the-frontier-of-vr-introducing-oculus-go-plus-santa-cruz-updates/

  • A-Frame Version: 0.7.1
  • Platform / Device: Oculus Browser on Oculus Go
  • Reproducible Code Snippet or URL: See https://aframe.io/examples/showcase/a-blast/ - the various A-Frame 'universal' controls components (such as super-hands: https://github.com/wmurphyrd/aframe-super-hands-component) also do not work.
needs answers / feedback

Most helpful comment

@spleennooname, I created a sample for Oculus Go on Glitch that uses event listeners:
https://glitch.com/edit/#!/amino-go?path=index.html:1:0

All 21 comments

If possible it would be nice to remove looking at these strings. Also in WebXR API they won't be available.

I would counter with: when the strings are available, it is much more intuitive for the user to have a representation that matches what they would see from their system outside Web context (e.g. to avoid "hey why does my browser think my Touch controller looks like that" as well as "which button means what in this Web thing") - perhaps you are arguing for a generic controller representation, but we basically started with that in A-Frame and quickly evolved to understanding specific controllers instead. Still being debated in WebXR API discussions from what I see

I do not have Oculus Go to test. How is the Oculus Go controller. @frankolivier Does it have the same buttons than the regular GearVR remote? @mkeblx What do you propose to use instead of the string to discriminate between controllers and properly map buttons to actions?

Should be same (or else they would not have been able to function properly as Gear VR Controller)

We should probably keep this issue limited to current Gamepad API, and discuss WebXR future in https://github.com/immersive-web/webxr/issues/319

Send me one and I will fix however we decide ;-)

@Marcos, yes, Oculus Go controller has the same buttons as GearVR one.

Can someone either test results of
https://github.com/aframevr/aframe/pull/3423
with Oculus Go,
or send me one so I can do so?

I don't have an Oculus Go to test on. @DigiTec Could you verify if Oculus Go is working now on 0.8.0? Thank you

We will verify. If it still doesn’t work we will follow up with a patch.

On Mar 10, 2018, at 2:13 PM, Diego Marcos notifications@github.com wrote:

I don't have an Oculus Go to test on. @DigiTec Could you verify if Oculus Go is working now on 0.8.0? Thank you

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Any update on this? The A-Blast example doesn't work at all on my Go; it just shows a big white screen. The A-Painter example just shows a big black screen. And the Tracked Controllers example isn't even listed on https://aframe.io/examples/, when viewed on the Oculus Go browser. Is all that expected?

Oculus Go landed on master a couple of weeks ago. It will ship with the next A-Frame version. If you want to play with it now you can use a master build: https://rawgit.com/aframevr/aframe/master/dist/aframe-master.js
An example of responsive controls can be found here: https://rawgit.com/aframevr/aframe/master/examples/test/laser-controls/

I thought there was a way to see the examples using the latest master A-Frame build, maybe via rawgit - but not sure if that is true for A-Painter, A-Blast, etc. ?

Is it intended that mousedown/mouseup are fired not by the trigger, but by the thumb disc on the top of the controller?

That's not what I expected... most native games with any sort of point/click interface (e.g. Pet Lab, Fail Factory, and the Go home UI) all use the trigger as the functional equivalent of clicking a mouse. Pressing the touch disc is rarely used. It seems like A-Frame would be better served by mapping the trigger to mouse down/up.

I made an example that works on the Oculus Go with the controller for easy test

https://lunar-stealer.glitch.me/

@dmarcos The laser controls example was AWESOME!!! Thank you for that. Is there any example of the camera moving back and forth like a WASD controller with the oculus go?

The Oculus Go controller freezes when re-entering VR. If someone can point me in the right direction, I'd be glad to fix it myself and submit a PR.

Steps to reproduce:

  1. Enter VR on the Go in a scene with oculus-go-controls (e.g. https://lunar-stealer.glitch.me/)
  2. Press the back button to exit VR
  3. Enter VR again
  4. The controller appears but is not responsive. Buttons are not highlighted.

This bug also appears (inconsistently) when going through a-link portals.

Forgot to add: Version 0.8.2. Will try with master.

Also happens with master. For now, my workaround will be to refresh the page when exiting VR.

Hi everyone, in my tests the thumb gesture highlight the shape of the trackpad in the 3d model; however, i don't understand how to create addEventListeners with trackpaddown/trackpadup. Any indication is more than welcome.

@spleennooname Hi, it can look something like this:

this.el.addEventListener('trackpaddown', function(event) { /* Your code here */ });

This code would go inside of a custom component which you include in your HTML. this.el refers to the same element that your oculus-go-controls is on:

<a-entity your-controller oculus-go-controls></a-entity>

Hope this helps!

@spleennooname, I created a sample for Oculus Go on Glitch that uses event listeners:
https://glitch.com/edit/#!/amino-go?path=index.html:1:0

Was this page helpful?
0 / 5 - 0 ratings

Related issues

FranciscoPinho picture FranciscoPinho  Â·  3Comments

donmccurdy picture donmccurdy  Â·  5Comments

micahnut picture micahnut  Â·  5Comments

minchnew picture minchnew  Â·  3Comments

huhsame picture huhsame  Â·  3Comments