VR Expansion Plugin

There are projects with a lot more concurrent players in a server than yours, and the controller and HMD replication is actually not the heaviest part of the replication (though more prone to being noticable since it does not have rollback).

If I were you I would make sure first that the update rate is reasonably set (30-45htz), and then secondly that your bandwidth settings for the engine are NOT STOCK. The stock settings are very very conservative and downright too low for most normal games now aday’s, let alone VR ones where there is a lot more communication passing through.

For the client rates: Default Engine.ini

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

[/Script/Engine.Player]
ConfiguredInternetSpeed=15000
ConfiguredLanSpeed=20000

For the server bandwidth: DefaultGame.ini

[/Script/Engine.GameNetworkManager]
TotalNetBandwidth=64000
MaxDynamicBandwidth=15000
MinDynamicBandwidth=4000

Those values are from the example template not the stock engine settings. You could use them as a starting point to tweak higher or lower based on the net consumption of your project.

If you are still hitting net saturation then you really need to run some network profiling and figure out if you have something else sending around a lot of data.

Any reason why the VR grip interface is not showing up when I use “Does implement interface” ?

Actors and all that have it inherited so it’s there… Using 4.26 Source.

It also shows in the solution file.

No it should show up just fine with that node, you can cast to the interface instead though if that isn’t working.

I am just trying to set up the basic grip functions, the interfaces show up in the non source build but not in the source build. am I missing something?

I am not sure how I would implement casting the interface into the grip functions.

The plugin exists, you have grip object in there, so unsure why its not showing up. Thats not on my end that it is doing that. You can directly cast a object to an interface though and it will return a reference to the interface if valid.

You could also copy the valid does implement node over from the 4.26 example to your source build.

1 Like

Hi - my motion controllers are tracking just fine with correct hand mesh positions, however when I activate the laser beam it points at a ~45 degree angle. What could be the cause of ? I am using the Oculus Rift S. Thank you!

Hi, I am trying to figure out what’s causing the stabbing to occur on the dummy? I just made my own dummy to get a idea on what’s going on and I cant figure out how to get it to work on other actors. if you have any spare time, is anyone able to give me a basic run down on the stabbing logic?

Ultimately I wanna see if I can make it work on skeletal meshes but it kind of looks like it running off of constraints?

not sure which engine version you are on but the lasers are separately pointed. With openXR all of the hand positions are roughly the same but the pivot for the laser is a bit off, keep forgetting to make it follow the aim point on tracked devices.

You should be able to just rotate it in the BP_TeleportController

It has to run off of constraints, it can stab skeletal meshes just fine assuming the hit bone is passed in to the constraint creation.

The main filter for the stabbing is a list of PhysicalMaterials in ProjectSettings/VRExpansionPlugin where you can define what surfaces can be penetrated. Then you can apply those physical mats to collision bodies. Its an easier / better way to filter penetration and damage values in general.

1 Like

Thanks for the response – I am using 4.26. I tried rotating the components but didn’t have luck.

I think in 4.26 there is additional logic in there to make it match something on the pawn, I simplified that section in 4.27 when i moved to openXR.

Hey!

I’m having a little trouble adjusting the VRCharacter Height on the Quest 2. It seems no matter where my Camera is placed on the level, when using VRPreview, the Quest 2 puts the HMD at the same position in the capsule - even if I change the capsule size, it’ll always end up in the same position. I’ve adjusted the Tracking Position from Eye to Floor, but I’m still unable to adjust where my eyes are in VR. I’ve tried adjusting the VRTemplate Pawn and creating my own class from a Character, and adjusting the camera position / capsule size works fine - my eyes are wherever the camera lies. I’m wondering what I’m missing in the plugin, any suggestions- shouldn’t the eye position be wherever the camera is placed, not somewhere in the capsule? I’ve attached a few screens, tyty!

I’ve just seen the VRCharacter has a VRProxy Component with the Camera attached to it. I’ve moved component and now it adjusts correctly. Just me being a noob and missing things!

Yeah the vr characters capsule is forced to floor rooted instead of halfway up the capsule like std characters (makes more sense in VR). The proxy is there specifically for if you want to adjust the Z of tracked devices (or offset X/Y for some reason).

Hi guys, very new to all . Using the latest version of the plugin on UE5. I’m trying to use the VRlever interactible. I can get it to work along the x axis, but as soon as I set it to xy or the flightstick setting, then I cant seem to grip it anymore. is with a single VR lever component in the blueprint with nothing else in there. Could anyone shed any light as to why might be the case? Or if im doing something silly.

Many thanks

Using a rift when i switch to Oculus OpenXR the tracking seems to update very slowly . So waving the controllers look with they are stuttering at 90fps

Hi
I have a problem while installing the plugin…
is that just put these 4 folders to the plugins folder only?
cause i got an error msg(pls see attachment) after “installed” these 4 folder…

how can i fix issues…?Thanks!!!

vr2
vr3

Hi there!

I’m trying to compile the plugin using 4.27, I did download the appropriate version (from the 4.27-Locked branch), but I keep getting issues that indicate a few classes are not defined properly (probably not included somehow). For example, I’m getting the following error in HandSocketVisualizer.cpp:

<ProjectDir>/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionEditor/Private/HandSocketVisualizer.cpp(30): error C2027: use of undefined type 'FEditorViewportClient'

I can see that the missing class is defined in Engine/Source/Editor/UnrealEd/Public/EditorViewportClient.h, but I can’t see where is it supposed to be added. I tried to add Editor to the Private/Public include paths in VRExpansionEditor.Build.cs, but I only have a vague idea how exactly Unreal’s build tool scooping up include paths, so I’m a bit puzzled. Any ideas what might be wrong or what did I miss?

Are you using it through SteamVR as well? Last time I checked they didn’t translate openXR commands correctly through to Oculus’s runtime.

The example template doesn’t come precompiled as I didn’t want its repo size to bloat, it has to be manually compiled in visual studio.

Or you would have to download the precompiled binaries for that version from the website and replace the folders that it comes with.