UE4.21 Daydream Controller is not tracking

In 4.21, Daydream VR controller no longer moves.

Sample project contains no gameplay - it is a bare player standing on a platform, looking around.

Also, here is a link to builds produced on my machine:
Dropbox - Daydream_Builds.zip - Simplify your life

Steps to reproduce wtih sample project:

  1. Open sample project in UE4.20: Dropbox - testVR2_Daydream.zip - Simplify your life

  2. Publish using File > Package Project > Android > Android (ETC2).

  3. Install resulting build on Android phone with Cardboard only mode supported (in my case, Xiaomi Redmi Note 5
    running Android 9).

  4. IMPORTANT: After game launches, wait 20 seconds. It should not crash.

  5. Install the same build on Android phone with Daydream support (Moto Z running Android 8 for me).

  6. IMPORTANT: After game launches, wait 20 seconds. Head tracking and controller movement should work correctly.

  1. Unpack project from ZIP file again for clean test. This ensures that you will not have Intermediate, Build, Saved and Binaries folders left from UE4.20.

  2. Open project in UE4.21 (it will ask for conversion)

  3. Publish using File > Package Project > Android > Android (ETC2).

  4. Install resulting build on Android phone with Cardboard only mode supported (in my case, Xiaomi Redmi Note 5 running Android 9).

  5. IMPORTANT: After game launches, wait 20 seconds. It should not crash.

  6. Install the same build on Android phone with Daydream support (Moto Z running Android 8 for me).

  7. IMPORTANT: After game launches, wait 20 seconds. Head tracking and controller movement should work correctly.

Actual results:

  • On step 13, headtracking works, but Daydream controller is not moving.

I can confirm this bug, have tried it with Instant preview on few projects made from scratch and it doesn’t track the controller. The issue still persists in 4.21.1

I noticed something similar when trying out new projects. Strangely my older projects still work however I had the controller setup differently for those.

You should really report this to Epic via the bug reporting form:

https://epicsupport.force.com/unrealengine/s/

Once they create an issue ticket for it post it back here so we can vote on it :wink:

I’ve reported the bug: Unreal Engine Issues and Bug Tracker (UE-66417)

Target Fix is 4.22 now.

Feel free to upvote this bug.

Hi diamond3.

When it’s fixed in 4.22, will the bugfix also be backported to 4.21?

Usually, no. This can mean that 4.21 will remain with broken functionality.

By the way, do you know other active mobile VR developers on the forums?
I wonder if I am the only one who is getting these bugs.

No the latest is 4.20 still: https://github.com/googlevr-unreal/UnrealEngine

FYI: the default google daydream controller is only 3dof :wink:

Same here.
If I use GoogleVR Controller component, game does not respond to my daydream comtroller in “Instant Preview”. But if I use default motion controller component with right hand source, it works but it does only 3DoF positional movements. Can not rotates. For example you can not choice a widget which does not placed exact front of you (90 degree). I tried Google VR modes in project settings like Daydream DoF 3 / 6.3/ 6.6 and Arm system.

I have not tried Google VR branch yet.

Good investigation, sir!
I believe that Google VR branch is based on quite old engine version. Is there a Google VR branch based on 4.21?

Default controller is only 3 Dof but there is a “Arm model” support and it supposed to work like 6.3 Dof not real 6 DoF. it is some kind of virtual support. But if we want real 6 DoF we need nolo vr like hardware or Lenovo Mirage solo. (and if we use that hardware we can also use seurat).

Updates:
1- issue says controller “does not appear” but actually it “does appear”. we can not see it because camera and controller spawn at 0,0,0. (I assume you attach a static mesh to controller or choose display mesh option) So we simply look inside of controller mesh and it does not move. For this reason we can not see it.

2- if you attached “GoogleVRMotionController” component to VRCamera (Not VRScene Component) and move controller component a little bit forward (for example 0,20,0) you can see component actually does exist. It does not get only IMU sensor knowledge (imu sensor used for get realtime movements.) in tick.

3- Also buttons of Google Motion controller does not work with both of “Motion Controller Component” and “GoogleVRMotionController Component”

4- Display mesh material should attached with Idle material instance. Not master / parent material. If you want to solve this you should open engine and plugin contents and find GoogleVRMotionController Contents folder. After this you can simply attach idle material instance to controller static mesh.

I think it’s about android api and google vr definations. because there are lots of changes for mobile section in this update.

I think google is aware that peoblem so they did not update 4.21.

Also my words “it does only 3DoF movement” is this.
We know that GearVR and Daydream motion controller components work like a powerpoint slide pointer, right ?

In real world (even in Daydream demos) if there are 3 piece of buttom in front of you, you simply rotate your wrist. Not move your entire arm like a “camera rail”. The issue is if you use “Motion Controller Component” rather than GoogleVRMotionController component, when you rotate you wrist, motion controller does not rotate it draw a circle in air.

But in demos or even pause screen (daydream home button) it works perfect.

Yeah right the arm model is probably not working correctly if only using the default motion controller but it’s still a 3dof controller just with a software side mathematically calculated ‘arm model’. But technically it’s still 3dof since you cannot extend your arm in front of you while keeping the controller forward.

Either way I’ve not tried the default motion controller workaround yet and probably won’t as my project is running fine on 4.18 still. I’m waiting for 4.22 to hopefully have the controller and the new mobile improvements together.

FYI: there is a more critical issue btw rendering all 4.20+ branches useless for Daydream where you cannot submit an app to the Daydream store due to this bug:

details:
https://github.com/googlevr-unreal/UnrealEngine/issues/38

when using Target SDK 26

Just tried UE 4.20 (Default binary / launcher version) everything works fine. Also they did not enable arm model to do wrist rotation.

Right now I am downloading GoogleVR branch 4.20 version. GoogleVR Quick Start in Google developer page says they integrated latest GoogleVR SDK.

Also,
I voted that both daydream controller and daydream black screen issue (UE-46640) but controller one says it is non-issue. Is that mean they will not fix this ? By the way I report this controller issue to “https://epicsupport.force.com

Make sure to set “Motion Source” to “Any Hand” in order to enable Daydream motion controller.

https://docs.unrealengine.com/en-us/Platforms/GoogleVR/HowTo/MotionController

Does not work. It’s not about enabling. It can be enable but does not move right. UE4.19 and 4.20 works good. I havent tried in 4.22