VR Expansion Plugin

NVM. I had my bUsePawnControlRotation set to true. Deactivating that seems to have given me back the control I needed over rotation.

For multiplayer you likely want to leave that active, it is the native replication path way for rotation, you can SetControlRotation for the same effect.

There are also SetActorLocationAndRotationVR, SetActorRotationVR, SetActorLocationVR functions that handle the HMD offset for you and can be called for convenience.

​​​​​​​Also there is a built in teleportation function “PerformMoveAction_Teleport” that does it for you as well, inline with the movement of the character movement component (normal teleports are not inline and can cause out of sync issues and logic problems).

Hey,

I’m a 3D-Artist and quite new to the technical site of Unreal Engine. I tried to open your PluginExample and had to rebuild a few things. Got a lot of build errors:

LogFileManager: Error: MoveFile was unable to move ‘X:/19_08_24_vrshooter/Engine_Szene/VRExpansionPluginDemo - Kopie/-vrexppluginexample-fe3767ff4163/Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Intermediate/Build/Win64/UE4Editor/Inc/OpenVRExpansionPlugin/OpenVRExpansionFunctionLibrary.generated.h.tmp’ to ‘X:/19_08_24_vrshooter/Engine_Szene/VRExpansionPluginDemo - Kopie/-vrexppluginexample-fe3767ff4163/Plugins/VRExpansionPlugin/OpenVRExpansionPlugin/Intermediate/Build/Win64/UE4Editor/Inc/OpenVRExpansionPlugin/OpenVRExpansionFunctionLibrary.generated.h’, retrying in .5s…

Timon :slight_smile:

Its passed the maximum file name length for windows, try removing that bitbucket generated folder name that is so long and placing thing directly in the folder above it.

IE: Delete folder and move its contents one up

It worked! Thanks :slight_smile:

One more question (sry for that). I used 3D Widgets for my main menu and the Widget Interactive with a hovered and click event before. Im unable to use 3D Widgets with your “Beam”. There are no hit events inside my widgets. I’m sorry for my simple artist question.

eh? The template comes with a 3dWidget that works with it?

id like to ask if the plugin supports valve index? like the finger touches etc…

There is a seperate module for it that supports the animation and gesture detection and replication of the hands with open Input. It’s not packaged in with the core plugin as it not everyone will want or need it.

Hello , I have a problem. The vr character has no problem with the real open the door in single mode. But in multiplayer mode, I think physicsConstraint causes the door to twitch but I don’t know how to solve it.

You can’t really, physics constraints do not replicate, the only physics replication in engine is going to causing fighting between the local and remote setups as it will pass the servers constrained values down and then try and fight the local constraint. Either run the door without replication, don’t have it simulate on client side and replicate position/rotation server down, or use a non physical door like the VRLever for it.

4.23 is live in both repo’s and full binaries are uploaded to the website.

I will provide patch notes later though they will be fairly light.

I’ll note that I had the intention to have the repositories moved over to GitHub by 4.23’s release but I didn’t make it in time, I will be shifting them over later.

  • That worked. Your plugin helped me a lot. Thank you very much

Hi!
First of all - Thanks allot for awesome plugin!
Have a simple problem here - i want to add head rotation to the right thumbstick. So that you can not only rotate with hmd but can do that together with a simple thumbstick rotation movement.
Would highly appreciate any advice!
Thanks

Call PerformMoveAction_SnapTurn, you can pass either a hard value to snap by, or you can call it with a delta time modified speed to get a smooth turn. Its also networked with the character movement component.

Thank you very much for your answer!
im allmost there… but im still learning it all and im afraid im missing the easiest part of it…
I called PerformMoveAction_SnapTurn with Vrmovement reference as a target… but can you please help me where i should plug the exec now?
And for futher understanding where should it all happen?
So is it in functions-movement-GetCharacterRotatedPosition or is it in Locomotion-CalcPadRotationAndMagnitude …
or it doesnt really matter?..im confused
i know it should be easy and im sorry for my lack of proper knowledge so far (
but can you please explain a bit in detail where and what should be correctly pluged into?
thank you very much in advance!

It entirely depends on your keybindings, make an action “snap turn” and bind it to the motion controller thumbstick axis Y (could treat it like a button press too).
I’ll note that the example template is normally reference material, and if you are attempting to make something with it directly that you will need to toss a bunch of stuff that you don’t need out of it.

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.