VR Expansion Plugin

Hey !
I’m continually having issue with grippable components that require nested grips. Say for instance i have an object, i use the “grippable static mesh component” and set my channels and all is well. Now i realize that the mesh isn’t large enough so i retrofit a normal child box collider component to extend the mesh and make it easier to grip. works – kind of. The gripping sometimes becomes soft and waves around when gripped with both controllers, so i try to use a grippable box component and attach them together with a physics constraint instead. also almost works, except the parent wiggles all over the place no matter how stiff the constraints are.

The problem is that i would need to rebuild and re-parent a complex blueprint and make the base actor a regular mesh and have a child grippable mesh, which requires updating all other BPs that reference it. Is there a way you recommend to have a nested collider on a BP to extend an existing grippable area? What’s your best practice approach when making complex BPs?

I have been developing for the Oculus Quest and saw that you had a successful build with the VR Expansion Plugin. That is super exciting! I’ve been using the VR Expansion Plugin for Unreal for about 2 years now, IT’S AWESOME!

To do my own Quest build, I combed over the project content and replaced some of the assets to make it mobile friendly. I already have experience building to Quest so had good success building out the MotionControllerMap with the example demo. Only occasional drops below 72fps while teleporting, driving, climbing etc, on par with main stream titles, super exciting!
While doing multiplayer testing though, I noticed that clients crash out during a servertravel.
Players servertravel from a common lobby with a listen server to a start map to begin a match. If I skip the lobby and the servertravel and let players join straight into the start map with a listen server, clients do not crash. It only seems to effect clients during a servertravel command. Anyone else have a working Quest build and uses servertravel?

Ah yeah!
It worked!
and yeah it was easy!
thank you very much for your patience!
you are the man!
please dont stop developing thing as you are moving the whole vr industry further ahead!
have a good day!

You’d want to change the template gripping logic in BP to support that case, IE: don’t use grippable collision boxs and check if the child of that object is a grippable component and grip it instead when checking against the collision volume. Generally you can also adjust the trace distance / overlap radius as well to pick up on objects easier, or even adjust the collision on the component itself (gun bolt ect).

Unless there is a specific reason for gripping components and not actors though you generally should be gripping actors, actors are treated as one body for already. Actors are also the general engine workflow, the component gripping is there for specific use cases and sub actions where actors don’t make much sense.

What version of the engine are you on? They fixed a crash on server travel in 4.23 that was effecting people in 4.22. It was failing to throw away remaining packets on travel and was trying to validate them after the netadapter shut down.

Thanks for the fast response! I’m using 4.22…
The reason I posted here was because before I added the VRE plugin to my Quest project, servertravel was working fine with no apparent issues. It was only after I replaced my character with one that inherited from the plugin.
I will setup a new project today with 4.23 and see if that resolves the server travel issue for me. Thanks!

Hi,

i followed the instructions but can´t see the your stuff in my project after building it in Visual studio 2017. Do you have an idea why?
The other option for me is waiting for the example template repoity for 4.23.

i downloaded
4.23 – Full Binaries and Source Package
and now I have a problem with the installation.

Normally I downloaded the example template reposity but time I wanted to try out the new version.

  1. I downloaded unreal version 4.23
  2. I created a new VR Project
  3. I opened it and added a none c++ class.
  4. I close it and created a plugin folder and unpacked the stuff I downloaded.
  5. I opened Visual studio 2015 and see error:

C:\Users-------\Documents\Unreal Projects\MyProject\Intermediate\ProjectFiles\MyProject.vcxproj : warning : The build tools for v141 cannot be found. Install v141 to build using the v141 build tools.

C:\Users-------\Documents\Unreal Projects\MyProject\Intermediate\ProjectFiles\MyProject.vcxproj : error : Exception from HRESULT: 0x80042003

C:\Users-------\Documents\Unreal Projects\MyProject\Intermediate\ProjectFiles\UE4.vcxproj : warning : The build tools for v141 cannot be found. Install v141 to build using the v141 build tools.

C:\Users-------\Documents\Unreal Projects\MyProject\Intermediate\ProjectFiles\UE4.vcxproj : error : Exception from HRESULT: 0x80042003


  1. then I tried to build in in Visual studio 2017 and there I got :
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

after pressing build - Configuration manager - and making a sign at UE4/Build
and then building it: I got message:

========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

7, Now the thing I don´t understand: I opened the projekt and there I got the message that I got new Plugins.
In the List I could see your Plugin, but if I start the presentation I could only see the normal presentation.

  1. I am sure I made something wrong because its not working: Do you have an Idea what? I don´t know very much about Visual studio^^

Hey .

Is it possible that the vrexppluginexample repo didn’t get fully updated to 4.23? I see that the last “merging 4.23” commit updates VRExpansionPlugin code, but none of the asset changes from the 4.23 Beta branch are in there. And the VRExpPluginExample.uproject is still set to 4.22.

Thanks!

Yeah, actually there appears to be a mixup there, I was half done porting to github and must have missed some things. I’ll sort it tonight.

Edit Fixed

Visual Studio 2015 is deprecated now, visual studio 2017 works as you found out.

As for the “content”, those are all example template blueprints, they don’t come with the source version. You should be able to move the new prepackaged binaries into your current project though without re-downloading everything or making a new project.

I do need to recompile those though tomorrow to ensure they have the changes that were missing as per above.

Yup, that did it. Thanks!

I’m using UE4 4.22.3.
Problems occur when packaging is finished and running as VIVE PRO.
My eyes are on the floor. ​​​​​0 z-axis.
There is no problem in Oculus. be completely normal.
is a problem arising from the rarely modified VR Expansion Plugin.
I’m trying many things, but I can’t guess yet.
I added [Reset Orientation and Position] node. Can cause a problem?
What else should I check?

Yes, ResetOrientationAndPosition will move your view to the floor, that is the point of that node, it sets your current HMD location and rotation to be the zero point. When in roomscale mode that means that you will be “in the floor” after calling it.

Outside of that node, the only reason for it to be in the floor is if you don’t have tracking, other than that the core camera code in engine should be offsetting the camera, I don’t change anything about that.

Unreal engine 4.22

Hi I’m not sure if has been brought up before but I believe that when I ran the test application if you try to move your firing hand off of the two handed gun and continue holding it with the non firing hand that functionality isn’t included. I was just wondering if you plan on implementing or if you have a workaround I could employ. Thanks!

On 4.23, what is the best way about getting basic finger tracking working with the Index/Knuckles controllers?

Regrip with the secondary hand when the primary releases, or run two grips at once and pause the secondary until the primary releases.

For basic finger tracking with no hard replication and no full body? The Valve plugin on the marketplace. I have a module to prop up support for other features for now that works alongside it as well.

Hi
In your demo project what button are you using to map the button that shows the red trace line from the controller, I’m using a windows mixed reality controller with SteamVR but can not find the menu button in between the touch pad and thumb stick, I wanna use that button to access the menu in game but can’t find that button which you using for the red bendy line trace from the controller in your demo.

Please help, THANKS.

edit oops, misread you originally.

My WMR controller profile doesn’t override the laser key for WMR controllers so it would be using the projects defaults, picture below.

https://i.imgur.com/vgN3BfU.png

I think it’s a problem with ResetOrientationAndPosition.
So should I not use it for VIVE?
Is there another good way?

You just don’t use it if you are trying to do roomscale VR (set tracking origin - floor level) as it zeroes you out on position. If you are doing eye level VR is when generally that node is used. With how it is currently implemented in engine there also is no reversing method to clear an offset you applied (outside of the one that oculus added to its module) so its permanent for the lifetime of the instance.

If I don’t use ResetOrientationAndPosition, sometimes the player gets stuck in the wall when I move to a different map.
That’s why I need function.
Is there a another solution?