Download

VR Expansion Plugin

You will need to fill in the “GetClosestSocketInRange” function in the interface then, there is a default helper node that you can just connect to it.

The reason it is overridable and in the interface and not just searching, is for hot swapping locations or “snap when active, free grip when not” kind of things.

So far input in here and in the support discord has been varied enough that I will be re-shelving thoughts of re-factoring the suggested areas.

Going to make a video going over the interactibles tomorrow, intended to do it today but life got in the way.

Cool, I look forward to it!

You rock, I love this plug-in!

Little go over video of the two new interactible components and something special using them and 4.17.

https://youtube.com/watch?v=gjRpNIRO_JE

As the Weapon Master VR Dev, I would like to comment on this; the reason I did things the way I did is 1.) I am not yet comfortable with interfaces coming from an inheritance background and 2.) I didn’t want to “Copy” anyone’s logic and get in trouble (really worried about this all the time). I assume for me to do what you wish I would have to make all of the events that pass on to the weapons generic and in identical to yours? What about variables passed through that you don’t current pass with your grip logic? I am actually looking at changing to interfaces when we do our multiplayer update (version 2.0) later this year. When we get around to that would you be willing to help test the integration? I may even look into it for version 1.2 (1.1 is too close to being finished and released to go back to the drawing board).

I have mentioned in our thread that the best (current) way to combine Weapon Master and this plugin is to uses this plugins locomotion and our grab/weapon logic. I would like to make it clear that we have NOT integrated The OpenVR Expansion Plugin into our internal Weapon Master builds yet. Its something I really want to do but with about 20 features currently on the list of things to add, I simply haven’t had time.

Thats said our actual game will be an amalgamation of WMVR and OVREP. Your locomotion is just far superior to ours due to the hoops we had to go through just to implement the stuff we wanted through blueprint (Yay c++).

I think my biggest worry is to “step on your toes” in some way but if peeps really want it I am willing to make big changes to what we have to make it better. Including your idea for generic interfaces.

No, nothing needs to be identical to another system in order to be generic enough to be used by it, that wasn’t my point. My plugin isn’t the only interaction system out there that isn’t easily compatible with the gun (and other) packs out there.

All of the clip / damage / aiming logic can literally be the same, the issue is when the actual interaction is hard coded into things it isn’t flexible enough to quickly switch out. There should be fallbacks from the hard coded systems or direct methods to tie in without large re-writes.

IE: Giving clips a bindable event they fire off when ready to “dock” instead of actually performing it themselves or using any particular system, giving any system the ability to drop or correctly use the right logic on that occurrence. Its not specific to your pack either, I wasn’t trying to insult you.

Right now most of the VR stuff is “use it as is or recode it” and that limits a lot of potential for interchangeability (like using one melee system with another gun system with a custom interaction system that was in the project already).

Edit Missed the testing integration stuff and “Step on toes”

There is no stepping on toes here regarding my work, its open source and MIT and I don’t sell the plugin itself. Also I am more than willing to assist people in correctly using it when they have need :stuck_out_tongue:

Pushed a new commit to the plugin and example template.

Plugin


Fixed a bug with HasGripAuthority where the server was being assigned as grip authority
for the Client_Auth grip on its end.

Added a 1 frame delay flag after teleport where grips won't check the constraint for
if it is outside of the auto drop distance. This is to allow for the constraints localpose to
held object to be recalculated. Otherwise it could rarely drop the held object on teleport with
small auto drop lengths.

I could manually set the constraints local pose instead, but would rather have the delay anyway.


Template


Added preliminary examples of Mixed reality support to the new video camera testing actor.

Edit I generally leave locked branches alone, but 4.16 was recent enough and the HasGripAuthority is important enough that I merged that commit back into it.

Hi, sure is for noob practice. But latest template doesn’t run for me with 4.17.1.
At the beggining says not compatible, and after rebuild crash the editor in launch time

You’ll need to re-build it, 4.17.1 is treated as an entirely different version.

Opened without issue at second try. Had been rebuilted, but crash it at first opening time. Thanks.

Did some new testing with the camera actor, using the good groundwork of the nice community members over in the mixed reality thread.

https://www.youtube.com/watch?v=kuIgA2n2-dA

Nice work, as usual.

I did notice the current version (as of right now) has a slew of compilation errors. This is using 4.16. Noticed it while looking to merge some code tonight. The first one was some include issues where I had to add in a Kismet/ before the includes. However there were many errors after that:


E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2039: 'IsHeadTrackingAllowed': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2039: 'HasValidTrackingPosition': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2039: 'GetCurrentOrientationAndPosition': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\SteamVRKeyboardComponent.cpp(48): error C2027: use of undefined type 'IHeadMountedDisplay'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\HeadMountedDisplay\Public\IHeadMountedDisplayModule.h(11): note: see declaration of 'IHeadMountedDisplay'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\SteamVRKeyboardComponent.cpp(48): error C2039: 'GetHMDDeviceType': is not a member of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>  E:\Program Files\Epic Games\UE_4.16\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(1534): note: see declaration of 'TSharedPtr<IHeadMountedDisplay,ESPMode::ThreadSafe>'
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\SteamVRKeyboardComponent.cpp(48): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\mordentral-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\SteamVRKeyboardComponent.cpp(48): error C2065: 'DT_SteamVR': undeclared identifier

These errors are using the current build of the VR Plugin Example (though I also tried updating the plugin but its the same plugin) in the sample app after updating engine version to 4.16 and then compiling.

Hello @mordentral,
I’m using both your plugins in my VR project, and I must say you did a great job! Thank you so much for donating this amazing work to the community and congratulations!
Anyway, I’m struggling with two issues while playing the game online. The main cause behind these problemes seems to be network congestion. The first problem is that voip using steam is very choppy, and clients using the VRCharacter seem to be jumping around as if it were lagging, but they end up covering distances that wouldn’t be possible in the short period of time the “hiccup” occurs. This is visible even from the listen server point of view. Have you ever encountered these problems when testing multiplayer (and using VoIP)?
Thank you so much for your time and hard work.

The template is always on the very latest engine version, you are seeing compilation errors because it is on 4.17 and you are using 4.16. They changed a significant portion of VR code in 4.17 so its not cross compatible.

You’ll want to pull the 4.16 locked branch of the plugin in the master repository if you are going to stay on 4.16. Wouldn’t mind knowing where you had to add kismet? I deleted the kismet reference and its code reliance going from 4.16 - 4.17.

Also those errors all have to do with IHeadMountedDisplay not being included? mmmmmmmm there should be an include path to the IHeadMountedDisplay module already (especially since it compiles fine for everyone else), but UBT IWYU is more strict on some machines for some reason and it wouldn’t hurt to specifically add that include in where it references the interface.

Started working on a very rough WIP car pawn for the template today.

https://youtube.com/watch?v=1uZYzb4SAVQ

Awesome! Looks great! :smiley:

Exactely what I want to achieve for a prototype. Just to experience how it feels like, drive a car in VR. Not with a car but more of a small bus to house two people standing…perfect for VR.

It would be faaaaar easier to do with a standing room bus type of vehicle. Characters record their movement bases when walking on top of something in motion and adjust to follow it, so with something like a standing room bus you literally only have to get them inside of it and everything should work.

Got a little sidetracked today…

Car works off of original character now though.

https://www.youtube.com/watch?v=2Xk-lFWrsnM

Pushed a new commit to the plugin and template today.

Template changes



 Stable enough for beta release on the car (is not entirely complete, please ignore half done parts)  
 Made the steering wheel of the car a lever now instead of a dial and added a new mesh for it  Added new template level section specifically for playing with the car  

Plugin changes



Fixed Simple characters overriding the RequestedVelocity of the base FSavedMovement class (fixes client side navigation with simple char).  
Added a check in the VRLever to help prevent it flipping sides when over rotating.

Changed the parent relative attachment component so that it sets relative space instead of world space position now.    
World space was a holdover for when it was directly attached to the camera, not only is it not needed anymore, but it also can result in the incorrect behavior.

Added a default lerp to the snap setting for the ParentRelativeComponent  
Can be turned off and speed can be adjusted.