VR Expansion Plugin

Hm maybe it’s possibly I glossed over it but don’t recall that! In VR it’s almost impossible to see the log messages if they print to screen (don’t know if those do or not)

> Keep in mind that I have the grip movement all client side currently

Does that mean the movement is processed client side so it would be possible to inject your own values? Luckily that’s not a concern for myself but good to know for future reference.

Well you could always inject your own values even if the server denied it, just run OnHit events and position checks on the server side and its all good. When objects are attached to actors they actually stop replicating as well and each client updates their position instead, It works like that currently for my grip system. Like I said I intend to make it optional to have server side position and it will work pretty good with the hybrid grid, but having latency in the other grips when trying to move is really jarring.

Not to mention the ultimate problem that in VR the client is the authority for where their limbs are.

Also that warning prints to the editor log, not to the screen.

Can anyone tell me what I am doing wrong here? I’m following these instructions.

Clone Or Download Zip and extract repository to a folder named “VRExpansionPlugin” in your “ProjectName/Plugins” directory, create directory if it is missing.

So I do that exactly.
Docs.JPG

But then I get error on launch.

87a0a6ce83157e1414da33f4d65217a5ccb1b8bf.jpeg
e414f3aeee24068c9e2edfea45fa9e85af4f7747.jpeg

It needs to be recompiled? If you updated to 4.13 the current repository version is still for 4.12.5. It works on 4.13 but has to be re-compiled for it.

My 4.13 specific branch is undergoing heavy changes so I don’t feel comfortable releasing it yet. is part of the issue of supporting multiple engine versions.

I believe that the template using it has a pre-compile version for 4.13 currently.

  • Have you tried using CCD for the hybrid mode? Might help the tunneling in those corner cases.

Thanks Saiodin. I actually found an easier way which was removing the plugin from my project, adding c++ to it (Which I didn’t have,BP only) then restart it and then it asked me to rebuild it.

I just tried the 4.13 VR template and found it to be greatly lacking (w/ regards to player collision) compared to plugin, so I’ll be sticking with it for now. :slight_smile:

I’m having a heck of a time getting grab / drop to work (being a horrible newbie to UE4 and all) and was wondering if there are any step-by-step guides on setting up with VREP I could follow, just to get my bearings. I couldn’t even get overlap events to trigger. :frowning:

I don’t want to force CCD on for anything due to its performance hit, I think I found where it was going wrong last night though and intend to try and get it up and running today.

You need to have a c++ class anyway for packaging since it is a source based plugin. You can package them like the marketplace does with just binaries but then it has to be installed in the engines directory and that is a lot harder to manage with something going through constant changes.

For the case of two objects * number of clients, it’s not enough to matter IMO. You tend to run into big perf hits with CCD mainly when using a lot of them all colliding together. In my most recent tests I was able to do about 150-200 CCD objects all colliding together with minimal framerate hit. 50-100 had no hit.

Thats not the point, if I can fix it without CCD than I should strive to.

I understand your confusion, the socket is to be on the object that you are picking up, not the motion controller itself. That way each actor can have its own grip “points” on it that it can choose from depending on the hands position when gripping.

It offloads the logic of where to place items into an interface / the objects themselves so that it is more flexible.

For example a sword, you would place a socket on the sword mesh at the hilt and pass that socket name in when gripping it, the motion controller then finds that sockets position relative to the motion controller and uses it as the grip point. You don’t need to use that shortcut though, you can pass in socket transforms yourself if you set the grip as “bAlreadyRelative”.

if you are using the physics grip then it will have some things like that, I believe that I corrected it in the beta branch though.

Ok, got the main feature of the beta branch pretty much working. Once I re-write some more navigation functions for 4.13 I will merge Beta into Main. It has a ton of fixes and new features.

Yeah, it actually fully works but I forgot to enable it on that controller. I need to make some more changes for 4.13 for it as a bunch of functions were put into legacy and will be removed in the next version and I want it to be using the new ones.

does the character walk when you teleport? I mean can you see the legs of the character stepping? If I install the plugin does it come with a template? I don’t think would be up to programming it? Thanks for help!

  • That looks awesome man, can’t wait to implement a bow onto the two hand grip. Great work :slight_smile:

Walking would be up to an animation blueprint driven by your velocity. Sadly I doubt I would ever have a full template that you could make something out of, you could give the Steam VR Template in here a try though, it uses my plugin as one of the options.

Yeah…I’m just trying to figure out a quaternion issue that I am having now to be able to call it done, quats really aren’t my strong suite.

I’m not actually sure it is solvable actually and it is a minor issue but it won’t stop bugging me. Edit Actually with a bow it might be more pronounced.

Pffft…never mind, the quat issue also appears in every other VR game with two handed grips and is actually less apparent in my system, it should be good for now. Think I am too much of a perfectionist.

Edit I am going to probably merge the beta branch in as it is currently and re-open a second one later to finish 4.13 navigation migration.

Navigation works in 4.13 as is, it just uses some of the old functions.

I won’t be able to re-write the wiki pages until tomorrow, there are a ton of changes and additions.

Beta branch is merged in, ignore the compiler warnings about navigation depreciation, I will get around to re-writing those eventually.

I need to update the documentation still (it will take a while, is a large update).

Edit update also added a License.txt file so that people can set their legal fears at ease.


**09/12/2016**- Big update

Added in a VRPlayerController that if you use for your VRCharacter will enable navigation capabilities (VR Character has several new nodes for navigation now).

Fixed VRRoot and Parent Relative attachment to use unwound Yaw for the Headset (no longer spins when looking straight down).

Made parent relative attachment not rely on actually being attached to the camera and made it a child of the Root capsule in the VRcharacter.
 was done because when it was a child of the camera it was being forced into the HMD's late updates and causing anything attached to it to sway with head motions.

Prelim version of a Gripping interface was added.

Added in the complete two handed grip system with Lerp Into / Out of secondary attachment and a bunch of nodes to help support it.

(Other fixes that I forget by now, its been a while working on  branch).