VR Expansion Plugin

where are the instructions to use the program? the directions end with STEP 13
Launch the project and use the VRExpansion Plugin.

but how do we launch the program? Is there a video or something for the dummies? im familiar with the engine just never used a plugin

The button is set up to press in the negative direction of whatever axis you set for it, IE: Axis_Z will press in -Z direction.

If you want the button to move in the other direction than you just need to rotate the button component 180 degrees on its interactive axis. If you mean that the MESH is going the wrong way, then your mesh is upside down or flipped. I wouldn’t use negative scaling to fix that because component bounds are incorrectly calculated when an axis is flipped and a lot of small things break (like Epics vr template hands).

You can re-import the mesh to correct it.

After you build a development build you can literally just launch the UProject and use the engine like normal, the compilation is to setup the binaries so that you can do that. You can also download the pre-packaged binary .zip files and just use those, but I warn people that generally its preferable to learn to compile it yourself. With manual compilation if a new hotfix comes out and you need to work right away you can just re-compile and go, generally hotfixes in the same engine version don’t require source changes.

Hotfixes don’t always require recompilation (they aren’t supposed to), but “sometimes” they do and its better safe than sorry.

Not to mention that I add fixes and features constantly and I batch them into the .zip downloads so I don’t have to re-compile every binary every day, so the repository is generally a few days to a week or two newer and better than the downloads.

[quote=“, post:2647, topic:68709”]

The button is set up to press in the negative direction of whatever axis you set for it, IE: Axis_Z will press in -Z direction.

If you want the button to move in the other direction than you just need to rotate the button component 180 degrees on its interactive axis. If you mean that the MESH is going the wrong way, then your mesh is upside down or flipped. I wouldn’t use negative scaling to fix that because component bounds are incorrectly calculated when an axis is flipped and a lot of small things break (like Epics vr template hands).

You can re-import the mesh to correct it.

Ok. I see the problem then its a paddle button on a door. Like the tyoes you find in schools and hospitals, where you just press and the door unlocks. But its on the back side of the door so that would make it backwards as far as the buttons code is concerned.
​​​​​​​ Thanks

[quote=“sphinix257, post:2648, topic:68709”]

Yeah, the point is that you set the mesh up correctly once and then just rotate the component to match whatever angle / position it needs to be in and it just works. IE: the button on both sides of the door you would just 180 it on the back side and you don’t need two meshes.

The axis is relative to its parent (if it has one).

so we launched the project, and go to play, and try to move around using the WASD keys and nothing happens… I cant move around.

is there a setting im suppose to tick in a sub menu somewhere? I got up to step 13 and it said it compiled with no errors, but me and my son are working on a VR game, and our vive headset is out for repair and we had no way of seeing if our collision even works.

you see we wasted the whole weekend trying to get collision right in VR and some how plugin came up as a must have plugin if working in VR.

so we were hoping we could over come hurdle, its already Tuesday and we still havent figured it out, my time is limited with my son, and its frustrating to not be able to get through before his mother picks him up. i have been searching for days for a fix and finally installed plugin

Are you in the template?

If so then WASD works with the FPS character (launching the PIE outside of VR mode it spawns the FPS char). If you launch in VR it assumes that you have motion controllers and it uses either the thumbstick or the touchpad to move, if you want WASD with the VR character than you’ll need to copy the WASD bindings from the FPS char into the VR character. Its a small section in the FPS character event graph that should be able to be copy pasted.

If you aren’t using the template, then its just a base character for implementation and the normal movement bindings that are required for any standard character apply.

we dont know how to find the template to get into it, we did notice something that we cant figure out. before we hit play, we see everything we put on our world outliner, but when we hit play we see things like game mode and such that we didnt put there.

is how we get into the template mode?

You didn’t download the template, you have the raw pugin which is only classes and actors, the raw plugin doesn’t have any blueprint content it is a c++ plugin. You would have to re-base your character onto a VRCharacter and then map buttons and actions to use it like that, it doesn’t magically overwrite your projects game modes and settings.

https://bitbucket.org//vrexppluginexample/src

That is the example template which has a bunch of BP implementations and reference material already in it, but its not simple… Its a full multiplayer enabled feature showcase and is packed with stuff.

Finally managed to get some things working and it’s quite fun. One thing, is it possible to climb upside-down? Like, go down a wall head first?

That sounds like it would be extremely uncomfortable in an interesting way. I would guess if you can get your hands below your body and still get tracking its the same thing i would think

You would need to rotate the character (or flip the NetSmoother I guess and offset it), by default characters in the engine are Z up ALWAYS, rotating them tends to break some things (all floor checks are harcoded Z down in Epics character).

Climbing mode can possibly support it as I don’t run any of that logic really, you would just want to turn off floor detection and re-orient yourself manually.

I had plans to possibly remove restriction by re-writing a lot of their logic, but I haven’t had the time, or a really good reason to do so considering the massive amount of multiplayer testing it would require and how niche it is.

please excuse our ignorance as we are very confused now, we created a C++ class in unreal like in instructions say

we downloaded the
4.20.0 - 07/18/2018 - Full Binaries and Source Package we place them in the plugins folder of our project we then generated the files and built the solution with visual studio when we open the world we still cant see the template are we suppose to download each file one by one on link you posted? https://bitbucket.org//vrexppluginexample/src I dont see a way to download all the files unless I right click save as file for each and every file. is how we are suppose to do it then replace the files in the plugin folder? we are still confused on where the template files are to download and just what I have to do to use them or even put them in somewhere

https://bitbucket.org//vrexppluginexample/downloads/

Is the download page for the entire template. You can however replace your current VR pawn with a VRCharacter (re-parent it) and bind WASD to movement inputs.

ok we have sucessfully opened up VRExpPluginExample and when we hit play can move around in play mode with the keyboard. so it seems to be working

now, we have another project, whats the best and safest way to be able to use these settings in our level?

should we start all over in the VRExpPluginExample project and work from there everytime we need to start a new project so we have access to the basic default settings of plugin?

should we just copy the virtual reality, virtual realtiy BP and VRExpansion folders into our project through windows?

should we use the migrate feature inside unreal program? if so, which files or folder do we migrate to?

we dont want to break anything, we have workedon our level but we can start from the beginning if it means a clean process and less nightmares down the road! thanks

Either way works, there is a ton in the example that you won’t need but a lot of people just rip what they don’t need out.

If you move it over, keep in mind that there are config file changes that also need to move for everything to work as is from the template (gameplay tags as well).

I don’t know the state of your current project enough to make a suggestion, but if it is just a level, you can just import the level.

Hello! First of all, thanks for the great plugin!

I have several questions regarding multiplayer functionality:

  1. I do not see hosted server (lan\internet) using 3DMenu blueprint from the template. Here are my default engine settings. Application is cooked. With or without Steam running - does not make a difference. For me works direct connection only (BP open level “ip address”)

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver2",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

[OnlineSubsystem]
bHasVoiceEnabled=true
DefaultPlatformService=Steam
PollingIntervalInMs=20
VoiceNotificationDelta=0.2

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90
Achievement_0_Id=

[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=800000
MaxInternetClientRate=800000

[/Script/Engine.Player]
ConfiguredInternetSpeed=500000
ConfiguredLanSpeed=500000 

  1. When I’m connected to the server using direct connection, laser widget interaction does not work, so I can not click anything it the widgets anymore. while person who is hosting the game can interact with widgets like before

How are you attempting to join? If it is a packaged game then it needs to be debug or developer or you have to put an App_ID.txt file in the executable directory as shipping doesn’t automatically copy that over.

Also default App_Id 480 has region locking, so if you are attempting to play with someone on a different steam download region you will need to have one of you switch to the same download region to connect.

As far as laser interactions, I think they were bugged for a version for clients in blueprints, I fixed them up in 4.19 I believe.

I want to play over LAN without Steam (should I put DefaultPlatformService=NULL ?), so I simply launch cooked template on one PC, click “host lan” button in 3dMenu widget. And on another PC I click “Find lan servers” and nothing appears. But I can make “open level” blueprint and connect directly by IP address

Yes, I use 4.19 and when I am connected to the server interaction sometimes works and sometimes not, I can not find exact conditions when.

Also I am drawing lines interactively adding Spline Mesh in blueprints and they are not visible for another players even if I make “set is replicated” for spline mesh. Is there any special function for replication?

Objects don’t replicate from client up (and for that matter spline mesh components don’t replicate any of their special variables over a static mesh).
Also you shouldn’t be replicating spline meshes anyway, just re-create them locally on clients. If you really need the exact same spline, replicate the points and re-create the spline.

As for the interaction lasers, are you testing across computers or in PIE testing? Widget interactors add themselves to the global pool of input agents when they are activated so they can overrule each other, being in editor both instances of PIE share the same pool. When playing in packaged each separate computer has its pool so it shouldn’t be an issue.

Yeah change default platform and set steam subsystem enabled = false.
If you leave steam as the default then you need the steam client loaded on both machine to host and join.