sounds good.
Pushed 4.18 live to the template and plugin repository, locked the 4.17 branches away, I am building pre-compiled binaries now and will link to them when finished.
**4.18 additions**
Moved secondary grip scaler into a new struct (AdvSecondaryGripSettings) along with several new features
Added the 1 Euro Low Pass Filter that Epic has been using in the VR Editor for the laser beams as a native part of the plugin in both BP and c++.
Secondary grip scaler now uses the 1 Euro Low Pass Filter on the back end to control the secondary grip smoothing(settings are now in project settings for
the 1 Euro Low Pass that uses).
Add a Distance base influence option in the AdvSecondaryGripSettings, when the boolean is true it uses the combined values of the DistanceInfluenceDeadZone and DistanceInfluenceDistanceToZero to control how much effect the secondary hand has over the grip (see latest video for explanation).
Added GripDistance and SecondaryGripDistance floats to the grip struct, they are calculated locally and are not replicated.
Improved NetSerialization in general.
For generic objects without all of the advanced new features, they should still be less overall replication cost, obviously replication cost will ramp up as more and more of the advanced settings are enabled.
BUGFIX: Added in an UpdateComponentToWorld call on object drop to account for an issue with the new Late update that Epic is using.
Added a global settings class that shows up in ProjectSettings|VRExpansionPlugin so that I can expose global variables there cleanly, I intend to move some magic numbers out of their classes and into that in the future, currently only has the 1 Euro settings for the motion controllers.
**4.18 interface changes & migration guide**
AdvancedPhysicsSettings() interface function removed
Added AdvancedGripSettings() interface function so that the interface can return advanced physics AND secondarygrip settings.
GripStiffness() and GripDamping() interface functions removed
Added GetGripStiffnessAndDamping() function to replace them
SlotGripType() and FreeGripType() interface functions removed
Added GetPrimaryGripType(bool bIsSlot) to replace them
ClosestSecondarySlotInRange() and ClosestPrimarySlotInRange() Interface functions removed
Added ClosestGripSlotInRange() which takes a bool bSecondaryGrip so that it is a single function definition now instead of two
*** REQUIRES BLUEPRINT CHANGES* **You will need to replace your Closest Primary slot and Closest Secondary slot nodes with a ClosestGripSlotInRange node
with the correct bSecondaryGrip setting. The template has already been updated to make change.
Added OnInput(FKey, EInputEvent) event to the interface so that you can pass in any generic input you want to the gripped object instead of just
OnUsed and OnEndUsed (and secondary).
Apex destructon auto detection of held object being destroyed has been removed, is due to them moving Apex into its own plugin
and disabling it by default.
**Anywhere you were manually overriding one of the removed interface functions you will need to correct for the changes.**
I’m getting error when trying to build from Visual Studio, something about the WheeledVehicle? Do you know whats going wrong here?
I’m getting the same UBT error using the pre-built package for 4.18
2>ERROR : UBT error : Failed to produce item: D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Binaries\Win64\UE4Editor-OpenVRExpansionPlugin.pdb
Eh? What same error? I don’t have a previous post from you in here and that hasn’t been reported here before.
Do you have a full log file for it? Also are you on windows? Because any other platform you’ll have to manually compile due to me not having the required hardware to compile for it.
Usually errors like that are caused from stale Intermediate folders in the project files, which you generally just delete to fix (they re-create then), however if you are using the pre-built on a new project then that shouldn’t be the case and it shouldn’t be trying to re-create it anyway.
I think he means the same error as I am getting
Mmmm, no I don’t. WheeledVehicle.h didn’t change locations in 4.18 and that is the same include line as before. I built and packaged entirely on 4.18 without issues even in a non unity build.
There actually isn’t an alternative path to that file available and its module is included.
You don’t have the plugin module PhysXVehicles disabled do you?
its not the same error though, he isn’t generating an OpenVR pdb file, while you can’t find a header file so the main VR Module is having issues.
guess just a misunderstanding, i’m adding the pre-built to a clean project to see if packaging messed up somehow last night.
Hmm, nope PhysXVehicles is enabled. The plugin has been working fine in 4.17.2, but I can’t seem to update to 4.18 because Visual Studio doesn’t compile. I’m gonna do a bit more research.
I’m not sure whether it’s because of 4.18 or plugin, I thought it was a 4.18 issue so I already filed a bug report:
https://answers.unrealengine.com/que…ual-studi.html
(its a different error, but they might be related)
Oh, that is definitely a UBT error, its in your projects intermediate files, not the plugins.
Are you still on visual studio 2015 or did you update to 2017? They added visual studio code support for 4.18 and it broke things a few times during previews, but so far I have been fine on release.
Ah, I am using 2017 now. I’ll try going back to 2015, see if that works.
( I already tried deleting the Intermediate, Saved and DerivedDataCache folders)
Think 2017 is more stable now, was making sure you hadn’t recently upgraded or were still on 2015.
Delete ALL intermediate files (including in plugin folder) and then “switch” engine version back to 4.18 (even if still on it).
I thought the UBT errors were the same, my mistake, sorry if I caused confusion I’ve no idea about Visual Studio or coding.
I’ll get the log when I’m back on the PC (Windows). It’s an existing project brought forward from 4.17. I installed 4.18, updated the plugin using the prebuilt download. I deleted saved and intermediate from the project folder, generated the visual studio files and then tried to compile.
Can you post the rest of the log in CODE tags or pm it to me?
I don’t know if you are also having UBT issues but that last line doesn’t say anything specific.
Will do. Be a few hours time before I get back.
1>------ Build started: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>------ Build started: Project: TheCaper, Configuration: Development_Editor x64 ------
2>Using 'git status' to determine working set for adaptive non-unity build.
2>Performing 3 actions (9 in parallel)
2>Module.OpenVRExpansionPlugin.cpp
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2039: 'HMDDevice': is not a member of 'UEngine'
2>C:\Program Files\Epic Games\UE_4.18\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(3145): note: see declaration of 'UEngine'
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2228: left of '.IsValid' must have class/struct/union
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2227: left of '->IsHeadTrackingAllowed' must point to class/struct/union/generic type
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2227: left of '->HasValidTrackingPosition' must point to class/struct/union/generic type
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2039: 'HMDDevice': is not a member of 'UEngine'
2>C:\Program Files\Epic Games\UE_4.18\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(3145): note: see declaration of 'UEngine'
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2227: left of '->GetCurrentOrientationAndPosition' must point to class/struct/union/generic type
2>ERROR : UBT error : Failed to produce item: D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Binaries\Win64\UE4Editor-OpenVRExpansionPlugin.pdb
2>Total build time: 5.49 seconds (Local executor: 0.00 seconds)
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets(44,5): error MSB3075: The command ""C:\Program Files\Epic Games\UE_4.18\Engine\Build\BatchFiles\Build.bat" TheCaperEditor Win64 Development "D:\Git\TheCaper\TheCaper.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run command.
2>Done building project "TheCaper.vcxproj" -- FAILED.
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I cleared the intermediate folders in the two plugin directories as well, and it seemed to be working OK at first, then it failed again.
1>------ Build started: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>------ Build started: Project: TheCaper, Configuration: Development_Editor x64 ------
2>Using 'git status' to determine working set for adaptive non-unity build.
2>Creating makefile for TheCaperEditor (no existing makefile)
2>Performing full C++ include scan (no include cache file)
2>Parsing headers for TheCaperEditor
2> Running UnrealHeaderTool "D:\Git\TheCaper\TheCaper.uproject" "D:\Git\TheCaper\Intermediate\Build\Win64\TheCaperEditor\Development\TheCaperEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -installed
2>Reflection code generated for TheCaperEditor in 7.7472487 seconds
2>Performing 22 actions (9 in parallel)
2>[3/22] Resource ModuleVersionResource.rc.inl
2>[5/22] Resource PCLaunch.rc
2>[6/22] Resource PCLaunch.rc
2>[4/22] Resource PCLaunch.rc
2>SharedPCH.UnrealEd.cpp
2>SharedPCH.Engine.cpp
2>MyClass.cpp
2>TheCaper.cpp
2>Module.OpenVRExpansionPlugin.cpp
2>Module.OpenVRExpansionPlugin.gen.cpp
2>[11/22] Link UE4Editor-TheCaper.dll
2>[12/22] Link UE4Editor-TheCaper.lib
2> Creating library D:\Git\TheCaper\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-TheCaper.lib and object D:\Git\TheCaper\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-TheCaper.exp
2> Creating library D:\Git\TheCaper\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-TheCaper.suppressed.lib and object D:\Git\TheCaper\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-TheCaper.suppressed.exp
2>Module.VRExpansionPlugin.cpp
2>Module.VRExpansionPlugin.gen.4_of_5.cpp
2>Module.VRExpansionPlugin.gen.3_of_5.cpp
2>Module.VRExpansionPlugin.gen.5_of_5.cpp
2>Module.VRExpansionPlugin.gen.2_of_5.cpp
2>Module.VRExpansionPlugin.gen.1_of_5.cpp
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2039: 'HMDDevice': is not a member of 'UEngine'
2>C:\Program Files\Epic Games\UE_4.18\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(3145): note: see declaration of 'UEngine'
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2228: left of '.IsValid' must have class/struct/union
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2227: left of '->IsHeadTrackingAllowed' must point to class/struct/union/generic type
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(55): error C2227: left of '->HasValidTrackingPosition' must point to class/struct/union/generic type
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2039: 'HMDDevice': is not a member of 'UEngine'
2>C:\Program Files\Epic Games\UE_4.18\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(3145): note: see declaration of 'UEngine'
2>D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Source\OpenVRExpansionPlugin\Private\GripSteamVRTrackedDevice.cpp(59): error C2227: left of '->GetCurrentOrientationAndPosition' must point to class/struct/union/generic type
2>[19/22] Link UE4Editor-VRExpansionPlugin.lib
2>[20/22] Link UE4Editor-VRExpansionPlugin.dll
2> Creating library D:\Git\TheCaper\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-VRExpansionPlugin.lib and object D:\Git\TheCaper\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-VRExpansionPlugin.exp
2> Creating library D:\Git\TheCaper\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-VRExpansionPlugin.suppressed.lib and object D:\Git\TheCaper\Plugins\VRExpansionPlugin\VRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-VRExpansionPlugin.suppressed.exp
2>ERROR : UBT error : Failed to produce item: D:\Git\TheCaper\Plugins\VRExpansionPlugin\OpenVRExpansionPlugin\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-OpenVRExpansionPlugin.suppressed.exp
2>Total build time: 82.22 seconds (Local executor: 0.00 seconds)
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets(44,5): error MSB3075: The command ""C:\Program Files\Epic Games\UE_4.18\Engine\Build\BatchFiles\Build.bat" TheCaperEditor Win64 Development "D:\Git\TheCaper\TheCaper.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run command.
2>Done building project "TheCaper.vcxproj" -- FAILED.
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I am currently testing out the content example and every time I start previewing in steam VR, the play area rotates randomly and is never in a fixed position, how can I disabled it?
Its like your using “Reset Orientation and Position” and executing it again does not work
I think our problem is fixed, there was old C++ code that didn’t work anymore (SetupBinaries())
Thanks for the help, I supported you on Patreon today for all the good work!
You are welcome and thank you.
I’ll note that you have access to the discord now, you should totally make use of that. I idle in it at work and when coding at home and answer questions all day. Users in there also throw ideas back and forth.
Ah there we go, thanks for the log it gives me what I needed.
When you updated to the 4.18 version of the plugin you must have just dragged the files in to the folder, you should have deleted the current contents first. GripSteamVRTrackedDevice was not overwritten with a new version for 4.18 because it has been removed entirely from the plugin (is no longer required).
You can feel free to just delete the GripSteamVRTrackedDevice.cpp and GripSteamVRTrackedDevice.h files, but I would suggest that you delete everything and re-copy the files in to make sure nothing else is left as its legacy version.
Yes, I dragged it in and overwrote the files that were there. I now know for next time now, thanks for the help.
The plugin is excellent, I tried to do a lot of the setup myself but when I saw did a much better job I started porting things over. I’ve used your template as a guide and built it all up modifying your work where needed. Its been a massive, massive help so thanks. I’ll pledge on your patreon for the help here and for the work for the plugin
EDIT: Its all worked fine time!