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.

@tcla75 I had problems recompiling my project too. Made a new one (BP), compiled with an empty c++ class, added the plugin in the folder, recompiled again, then it worked. Migrated my content from the old project and adjusted it. Guess that just works if you’re not that far with your project tho.
: Thanks a lot for plugin, it’s really helped me out with the object interaction. It’s actually the first one I’m using, for new versions I assume I’ll just have to copy in the new version of the plugin and recompile?

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’m a bit lost regarding OptionalSnapToSocketName of the Motion Controller. Documentation says it doesn’t work for childs of the component (like a static mesh, which doesn’t work for me), so how do we make use of ? Is there a way to create a socket for the Motion Controller component?

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”.

Ah yes, worked and made a lot of sense. Thank you!
Another matter regarding teleporting I encountered is that when gripping an object and teleporting the gripped object will do a 360 degree spin once teleported. Your docs say “TeleportTo - The standard teleport function is overridden in character, it will automatically call the GripMotionControllers - PostTeleportMoveActors() function in it.”. Is rotation set with the PostTeleport function or just location? Maybe was overlooked with cube test objects? It is very noticable once you’re using longer objects like a staff.

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.

Looks pretty neat! From pausing the video I’m assuming navigation will let the character walk to your “teleport position”?

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!