VR Expansion Plugin

Nice work, as usual.

I did notice the current version (as of right now) has a slew of compilation errors. 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\-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\-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\-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\-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\-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\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(64): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(143): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(185): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public/SteamVRKeyboardComponent.h(241): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(50): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(93): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(148): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(199): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(259): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(360): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(403): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(444): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(485): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(526): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\OpenVRExpansionFunctionLibrary.cpp(567): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(64): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(143): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(185): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Public\SteamVRKeyboardComponent.h(241): error C2065: 'DT_SteamVR': undeclared identifier
2>E:\source\-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\-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\-vrexppluginexample-b5aa89cead12\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\SteamVRKeyboardComponent.cpp(48): error C2653: 'EHMDDeviceType': is not a class or namespace name
2>E:\source\-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 ,
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 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. 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.

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.

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.


looks great! Unfortunately I’ve had zero success trying to use the plugin. Here’s my process if anyone can help:

  • download the latest template from “https://bitbucket.org//vrexppluginexample/downloads/
  • generate VS files and open in VS 2017 Community
  • Build Solution
  • After a successful build, when I open the project I’m still seeing dialog boxes for plugins missing (for AdvancedSessions etc.) or they are not the right version
  • project crashes immediately

I’ve also tried adding the pre-built plugin to an existing project but I no idea how to use it in a scene (which is why I would like to check out the template project).

Also, I’m a non-programmer designer/animator/modeler so any solution that can avoid using VS would be much appreciated. Thanks in advance.

It doesn’t “crash”, the project just won’t load with unbuilt plugins.

What version did you build? You specifically need to build “Development with editor” in order to launch the editor without visual studio. After that is compiled the project can be started like normal from the .UProject file.

The pre-built binaries are the only way to use it without a compiler, but I specifically suggest that the compiled version be used as once you understand building it once it makes upgrading to new versions far easier in the future and I release new versions constantly.

if you REALLY don’t want to touch a compiler a plugin may not be the best thing for you.

Thanks mordecentral. Just wanted to follow-up for anyone having a similar issue.

Stupid question but how can I tell which version of the template I’ve downloaded? The plugins themselves say they are version 4.17 within the editor.

I just tried to find the most recent version by poking around your Bitbucket. I downloaded the template from the “downloads” section and the “source.” The template folders I downloaded read ‘-vrexppluginexample-823b70c95557’ and ‘-vrexppluginexample-ae544fa4dd45.’ Both seemed to build successfully (‘Development with Editor’ seemed to be the default setting). Still I wasn’t able to open the project file without receiving the usual litany of errors (editor/plugin version mismatches etc.). I’m assuming there’s something obvious I’m missing due to my lack of familiarity with building projects via VS.

In desperation, I copied the content folder from the template into a new project and added the pre-built plugin. I then opened the project folder and opened the MotionControllerMap. Aside from some networking errors (I had to unpin Start/Stop Networked Voice) with the Vive Actor, the plugin seems to be functioning as expected. I’m sure is the wrong way to go about things but it seems to work for now.

Hi ,

FYI, if you try and package the template with inclusive nativization enabled then you get these errors.



UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogBlueprintCodeGen: Error: BP /Game/VRExpansion/FirstPerson/SliderMenu/ConsoleCommandSliderActor.ConsoleCommandSliderActor is selected for nativization, but it cannot be nativized because it currently implements an interface class (/Script/VRExpansionPlugin.VRGripInterface) that declares one o
r more pure virtual functions.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogBlueprintCodeGen: Error: BP /Game/VRExpansion/Vive/Testing/ConsoleOutput.ConsoleOutput is selected for nativization, but it cannot be nativized because it currently implements an interface class (/Script/VRExpansionPlugin.VRGripInterface) that declares one or more pure virtual functions.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogBlueprintCodeGen: Error: BP /Game/VRExpansion/Potion/PotionActor.PotionActor is selected for nativization, but it cannot be nativized because it currently implements an interface class (/Script/VRExpansionPlugin.VRGripInterface) that declares one or more pure virtual functions.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogBlueprintCodeGen: Error: BP /Game/VRExpansion/FirstPerson/Door/DoorActor.DoorActor is selected for nativization, but it cannot be nativized because it currently implements an interface class (/Script/VRExpansionPlugin.VRGripInterface) that declares one or more pure virtual functions.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogBlueprintCodeGen: Error: BP /Game/VirtualRealityBP/Blueprints/BP_PickupCube.BP_PickupCube is selected for nativization, but it cannot be nativized because it currently implements an interface class (/Script/VRExpansionPlugin.VRGripInterface) that declares one or more pure virtual functions.



There are also some warnings that appear…




UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogLinker: Warning: Can't find file '/Game/RollingBP/RollingOverview'
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogUObjectGlobals: Warning: Failed to load '/Game/RollingBP/RollingOverview': Can't find file '/Game/RollingBP/RollingOverview'
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogUObjectGlobals: Warning: Failed to find object 'Class /Game/RollingBP/RollingOverview.RollingOverview_C'
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogGameplayTags: Warning: Invalid GameplayTag DropType.DropOnRelease found while loading property /Script/VRExpansionPlugin.GrippableStaticMeshComponent:GameplayTags.



Thanks for all the great work!

I am aware of it, the interface error on nativization is due to the blueprint events in the interface and isn’t something I can fix, they need to solve it on their end. I don’t think it was a problem back when the events were implemented differently but they were far harder to work with in c++ then.

The warnings are w/e, there is an object that still uses a drop type that was removed and I don’t know what rollingBP even is.

The pre-built version is always a couple of days behind on updates, other than that it should be fine like that.

The template is 4.17 and both plugins included with it are 4.17 as well. The moment a new engine version releases out of preview I move the template over to it so I dont’ have to manage multiple engine versions for the example content.

Pushed a new commit to the plugin


Fixed it so that SetReplicatedMovementMode works with Move_None now, was mistakenly using
Move_None as the empty specifier, now using Move_Max for that.

Made VRLever and ParentRelativeAttachmentComponent use failsafe axis lerp functions instead
of just a generic FLerp.

thanks a lot for plugin
just a quick question, is it possible to implement move in space? I’ve been trying to figure out how to teleport in space (eg: teleport to near a planet) but the Nav mesh is tied to the floor and creating multiple floors isn’t really an option in outer space environment

Yeah, ignore nav mesh entirely and use a different method of deciding where to go.

The nav mesh system is only there to make it easy to define teleport capable spots, you can still do normal teleporting at will.

Have you seen if any of the tracker pins input/output are supported through the new motion controller class or in unreal engines implementation of the openvr api?

[quote=“AMIMA, post:1493, topic:68709”]

Have you seen if any of the tracker pins input/output are supported through the new motion controller class or in unreal engines implementation of the openvr api?

I haven’t checked, but it should, it binds to the same input pipeline, ie: the grip / trigger pins should trigger the same events in engine.

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

Thanks for the reply. I just made some progress. Unreal was crashing on any events when the tracker was set to other and ‘special 1’. I tried using the HTC tool to change the tracker to a controller again. With one tracker connected as a controller and set to ‘right hand’ haptic events are showing on pin 1.