[4.7.1] UMG Component - Android

I have a fully functional 3D menu system that a player interacts with by looking at the buttons, and the menu is supposed to look like it is a part of the monitor. Everything works as intended on PC and the Oculus Rift DK2.

However, when I launch the game on my Samsung Note 4, the hud is upside down and backwards (but the invisible hit-boxes I manually placed in the same blueprint are not). I found a post about the same problem I had, but the solution was to use Screen space instead of World space setting on the widget component. The only problem with that solution is the UI transforms dynamically based on where the user is looking, and does not look like it is part of the monitor.

Is there a way to either:

A.) Keep the “Screen” space widget component from rotating/scaling/tilting and lock it in place. This is the preferred option due to performance constraints.

B.) Make the “World” space widget component the correct orientation in game on Android.

On a side note, I have all of the UI crammed into one widget bp that hides and reveals different elements(e.g. buttons, etc.) based on which “stage” the menu is set to. So, does this mean I have one render target affecting performance or do I have a render target for each element? If I only have one render target, then I think the performance impact from it isn’t too bad. The note 4 can run the program (non-gear vr) at the max 60 fps 16~ms with and without the widget component. Unfortunately on Gear VR, the game runs at 14 fps 64~ms with and without the widget, and I pretty much have all post-processing options off like anti-aliasing and mobile hdr (but this is for a different topic). So the “World” space option may also be viable I think.

Thanks,

For some reason my last comment disappeared, so I’m reposting it again.

Something else that has broken in my Android launch, but works on the PC is the Up Vector node in one of my actor blueprints. The cube in the picture above takes ray trace impact world 3D coordinates, converts them to local mesh 2D coordinates, and then converts them to UV pixel coordinates to change the dynamic material. A key part to this process is knowing which way the cube is facing so the bp knows to use (x,z) or (y,z) for (u,v). On Android, the cube thinks its facing a different direction than the PC version and uses the wrong coordinates (y,z)=(u,v), so I had to strip out the logic code using the Up Vector to manually set the coordinates to (x,z) = (u,v).

Hi ,

There’s what I suspect is a lot of discrete issues going on with your project, but I can address one problem you’re having. The UMG 3D widget rendering upside down is a known issue; we have a JIRA issue (UE-7575) submitted for it, and it looks it is slated for the 4.8 release fixes.

As to your blueprints issue, we will have to see if someone more knowledgeable than me can chime in. I hope this helps at least a little!

Thanks for the response wittlief, good to know. I’m sure once that’s fixed the blueprint will work as well since it’s only happening on android. If not, then I’ll try something else.