VR UMG Compatibility Plugin!

Edit: In talking with Nick Darnell of Epic it turns out we were both working on a similar system at the same time, he’s is a little more integrated into the engine (you can see an example on his twitter here), It should be ready for 4.13 or close to it so if you can wait for that I suggest you should

Yay :slight_smile:
No more messing with crazy work arounds to get UMG to work in VR.

I spent the last couple of days working on a compatibility plugin that allows you to manually trigger UMG events.
This allows us to finally have traces and the like interact natively with UMG :slight_smile:

The Project can be found on my GitHub

Here’s a little example:

I also just did a video showing the included example project if that’s more your thing:

It’s pretty early on so I’m really looking for feedback from the UE community :slight_smile:

Oh and currently I’ve only compiled it for 4.11 but I’ll work on getting a 4.12 version up tomorrow

As always this will remain free so if you feel like supporting me feel free to donate.
-----Donate-----

My god. You are a legend!

This is just perfect timing.

I will do some testing and let you know how i get on! (initial impressions pretty good from the test, but will try it with a project) running 4.12.5 here btw. Compiled fine.

Awesome Mitch ! Perhaps Epic can look at it and decide to add it to ue4 !

Okay some feed back, perhaps quite early, and to be honest a little fanboyish.

Its PERFECT.
Add VR Widget component, had to change some visibility and focus settings on my existing widgets, but that is all working.

You sir. Are a true hero of the people.

Thank you so much, echoing what the others have already said. You’ve taken down one of the very big hurdles for designers with UE. I really do hope you know how much your are appreciated by this community.

Just to follow up after spending the day implementing into an existing project and testing all uses that i can think of, it’s pretty great.
Only catch 22 seems to be the side effect of say, passing a motion controller action event, to something inside a widget (widget inside a widget inside a widget :P), it’s possibly just a focus thing i have to figure out, possibly even something really silly, not a big deal. Passing through keyboard or mouse input works as expected however, even mouse clicks!

In case anyone is curious, here is my usage case:
Have a menu system that works from a Vive motion controller, have the same menu system also fall back to mouse interaction when the controller is off, or if the user is using a headset without motion (eg Rift)

Here are some shots for the curious.

begin:
Spectator-Beginplay.PNG

tick:
Spectator-Tick.PNG

trace from mouse:
Spectator-Beginplay.PNG

trace from controller:
Spectator-Tick.PNG

input event:
Spectator-Inputaction.PNG

Maybe, that will help anyone out there trying to do a similar thing.
YAY. :slight_smile:

Hey everyone just an update, In talking with Nick Darnell of Epic it turns out we were both working on a similar system at the same time, he’s is a little more integrated into the engine (you can see an example on his twitter here), It should be ready for 4.13 or close to it so if you can wait for that I suggest you should if you need it for 4.11 or 4.12 you can still use mine :slight_smile:

Good news!

Hopefully Gear VR developers won’t be forgotten (we don’t have motion controller, but we do use gaze and touchpad / gamepad) with native implementation in 4.13

Astonishing!

Congrats Mitch, this is good stuff :smiley:

Great stuff, much cleaner workaround than custom umg designer components. Looking forward to playing with this :slight_smile:

Excellent! Looking forward to using this. Does this successfully handle hover events as well?

Mitch, you are a wizard. Thanks!

yes it does.

edit

Can’t wait for Nick’s solution, hopefully he can also include his gamepad work. In the meantime, this one is pretty great.

Hey folks, glad to see you’ve got it working, i however am hitting problems when trying to implement the plugin in my own projects, or opening the example project, it appears to be missing two relevant Dlls, and want to recompile them, then fails to do so, suggesting i rebuild from source. Is this only compatible with source builds or the launcher engine as well?

I unzipped example project, placed into my unreal projects directory in win-explo…
opened UE launcher, opened the example project and when asked for that exact same thing, agreed to rebuild, and let it do it’s thing.
I had no failure.
it then opened after build.

if its not building the example project…
it might be a VS2015 issue, they just came out with a update for 4.11 to fix an issue with VS2015… not sure if that could be it…

other than that… you could try…

From CognitionTom, he helped me get a RAMA plugin to work using this method…

Assuming UE4.11, and visual studio 2015 community are installed you can use option a or option b for any step along the way (try both just to learn how it works):

1a: From the unreal project browser, create a new UE4 c++ project (so that it creates a solution file)

1b: From an existing UE4 project ( IE you could use the example project here… ) create a new c++ class (so that it creates a solution file) doesn’t matter what kind.

2: When it opens visual studio you can just close it out if you’re using step 5a.

3a: Navigate to the project directory (Or just right click on content, select show in explorer, then go up a directory), create a new folder “Plugins”. DO NOT create this under the content directory, has to go in the project directory above it.

3b: Open Edit>Plugins from the UE4 editor, then click new plugin at the bottom right pane. This will create the Plugins folder for you.

4: Copy the ‘VRUMGPlugin-master’ folder out of the zip file and into the Plugins directory.

5a: Close the UE4 editor and reopen the project. It will ask you if you would like to rebuild. select yes.

5b: In UE4 editor click File>Refresh Visual Studio Project, then open the solution in visual studio (double clicking the .sln file should do), right click on the project in visual studio, and select build. Restart the UE4 editor.

If you hit a snag, it’s almost definitely a visual studio problem. Make sure the project builds properly if you just ask it to create a new c++ class. if that won’t build, try reinstalling VS2015 (Remember community version is free so long as you login with your microsoft account inside the Visual Studio Application)

hope this help’s ya. if not i am sure others will get ya up and going.

You are awesome man. Great work!! I tired prepare umg for VR … it will be useful

This was indeed my solution, my VS 2015 had not been installed correctly, i modified my install (Control Panel>Uninstall>Modify) to include the components and tools outlined in this Epic Guide, it rebuilt the project and started up fine. It’s all appearing to work now, i’ll see if i can follow the awesome instruction in the video and gozu’s post above. Thanks for taking the time to break that down and explain, WilliamHooper!

Hi, I was wondering if this has been updated for 4.12 yet/ will be in the near future? I’m currently doing all of this menu stuff manually and having this would make my life so much easier.

Hey Rolex, if you update (or install) Vs 2015 community, and follow the instructions from WilliamHooper above, i found dropping the Plugin folder contents into my project and letting VS recompile the plugin is working great in 4.12. I’m sure Mitch will update it when he has time.

BTW got up and running, not really doing anything crazy but here’s where i got to, using the Widget Switcher works nicely, although i am not handling my persistent buttons for each category well in terms of anchoring, need to figure out what i actually need the menus to do before i go too far.

You folks are awesome.

GearVR a NO GO!

First off , LOVE your work Mitch.
Your other VRTemplate with teleport and UMG and web browser once I got it trimmed down and tested worked in GearVR, all but the spline field for teleport, and a weird thing with WebBrowser on focus shifting to a half screen top left eye and taking over controls. It did go to internet and get page… And the UMG linetrace interaction worked great in GearVR…

Now… this new plugin…

For GearVR it’s Not looking to good actually, I can not get the custom VRWidget to show up on GearVR although everything works in PIE.
It shows a blank canvas when built.
Up tonight testing all sorts of variables.
A BP with Widget inside it made from base widget will show up. But not custom VRWidget

Any one else here implement this in GearVR yet or just VIVE / RIFT?

I hope to eat my words by dawn and say I’ve got ti working, and if I do ill post…

Any ideas anyone?