Steam VR Template

Hi! love this template but have been really struggling with making packaged builds. about 2 weeks ago Every time I tried to make a build with this template, dev or ship it would fail with an unkown error. I tried a ton of things, uninstall/reinstall made sure visual studio is up to date etc and nothing worked. finally on a whim i created a whole new project and migrated all my levels there and it worked! now it’s two weeks later and i was going to package a new build and the problem has resurfaced. this time creating a new project and migrating failed, and every instance of the template won’t build. I have a hunch it has to do with visual studio but when i do a cook it works fine. here’s the output log of when i try to package the build.

Keep up the good work, i have a feeling with 1.13 you guys are going to be able to move on to great things for vr.

Cmd: OBJ SAVEPACKAGE PACKAGE="/Game/BUSCHUCKINMENU" FILE=“D:/unrealprojects/BusChuckinAlphaver0/Saved/Autosaves/Game/UEDPCBUSCHUCKINMENU.umap” SILENT=true AUTOSAVING=true KEEPDIRTY=true
LogSavePackage: Save=287.62ms
LogSavePackage: Moving ‘D:/unrealprojects/BusChuckinAlphaver0/Saved/UEDPCBUSCHUCKINMENU204CCF284589F536606F7DBCBBFFBB9E.tmp’ to ‘D:/unrealprojects/BusChuckinAlphaver0/Saved/Autosaves/Game/UEDPCBUSCHUCKINMENU.umap’
LogSavePackage:Display: Finished SavePackage D:/unrealprojects/BusChuckinAlphaver0/Saved/Autosaves/Game/UEDPCBUSCHUCKINMENU.umap
LogEditorTransaction: Undo Spawn Play From Here Start
MainFrameActions: Packaging (Windows (64-bit)): Running AutomationTool…
MainFrameActions: Packaging (Windows (64-bit)): Automation.ParseCommandLine: Parsing command line: -ScriptsForProject=D:/unrealprojects/BusChuckinAlphaver0/BusChuckinAlphaver0.uproject BuildCookRun -nocompile -nocompileeditor -installed -nop4 -project=D:/unrealprojects/BusChuckinAlphaver0/BusChuckinAlph
MainFrameActions: Packaging (Windows (64-bit)): aver0.uproject -cook -stage -archive -archivedirectory=D:/buildue4 -package -clientconfig=Development -ue4exe=UE4Editor-Cmd.exe -compressed -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -CrashReporter -utf8output
MainFrameActions: Packaging (Windows (64-bit)): Automation.Process: Setting up command environment.
MainFrameActions: Packaging (Windows (64-bit)): BuildCookRun.SetupParams: Setting up ProjectParams for D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject
MainFrameActions: Packaging (Windows (64-bit)): Project.Build: ********** BUILD COMMAND STARTED **********
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: C:\Program Files (x86)\Epic Games\4.12\Engine\Binaries\DotNET\UnrealBuildTool.exe ****inshit Win64 Development -Project=D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject -remoteini=“D:\unrealprojects\Bus
ChuckinAlphaver0” -noxge -generatemanifest -NoHotReloadFromIDE
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Performing full C++ include scan (building a new target)
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: Took 1.3086665s to run UnrealBuildTool.exe, ExitCode=0
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: C:\Program Files (x86)\Epic Games\4.12\Engine\Binaries\DotNET\UnrealBuildTool.exe ****inshit Win64 Development -Project=D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject D:\unrealprojects\BusChuckinAlphaver0\BusChuc
MainFrameActions: Packaging (Windows (64-bit)): kinAlphaver0.uproject -remoteini=“D:\unrealprojects\BusChuckinAlphaver0” -noxge -NoHotReloadFromIDE -ignorejunk
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Creating makefile for ****inshit (.uproject file is newer)
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Performing full C++ include scan (no include cache file)
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Parsing headers for ****inshit
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Running UnrealHeaderTool “D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject” “D:\unrealprojects\BusChuckinAlphaver0\Intermediate\Build\Win64****inshit\Development****inshit.uhtmanifest” -LogCmds=“loginit warning, logex
MainFrameActions: Packaging (Windows (64-bit)): it warning, logdatabase error” -Unattended -WarningsAsErrors -installed
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: C:/Program Files (x86)/Epic Games/4.12/Engine/Plugins/Marketplace/PathFollow/Source/PathFollow/Classes/PFPathBase.h(20) : Property is exposed to the editor or blueprints but has no Category specified.
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Error: Failed to generate code for ****inshit - error code: OtherCompilationError (5)
MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: UnrealHeaderTool failed for target ‘****inshit’ (platform: Win64, module info: D:\unrealprojects\BusChuckinAlphaver0\Intermediate\Build\Win64****inshit\Development****inshit.uhtmanifest).
MainFrameActions: Packaging (Windows (64-bit)): CommandUtils.Run: Run: Took 10.7755538s to run UnrealBuildTool.exe, ExitCode=5
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.AutomationException: Command failed (Result:5): C:\Program Files (x86)\Epic Games\4.12\Engine\Binaries\DotNET\UnrealBuildTool.exe ****inshit Win64 Development -Project=D:\unrealp
MainFrameActions: Packaging (Windows (64-bit)): rojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject D:\unrealprojects\BusChuckinAlphaver0\BusChuckinAlphaver0.uproject -remoteini=“D:\unrealprojects\BusChuckinAlphaver0” -noxge -NoHotReloadFromIDE -ignorejunk. See logfile for details: ‘UnrealBuildTool-2016.08.21-17.46.14.txt’
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary2 EnvVars) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary2 EnvVars)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.BuildWithUBT(String TargetName, UnrealTargetPlatform TargetPlatform, String Config, FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary2 EnvV ars) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary2 PlatformEnvVars, Nullable1 InChangelistNumberOverride,
Dictionary2 InTargetToManifest) MainFrameActions: Packaging (Windows (64-bit)): at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) MainFrameActions: Packaging (Windows (64-bit)): at BuildCookRun.DoBuildCookRun(ProjectParams Params) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.BuildCommand.Execute() MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary1 Commands) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Automation.Process(String] CommandLine) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.MainProc(Object Param) MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.InternalUtils.RunSingleInstance(Func2 Main, Object Param)
MainFrameActions: Packaging (Windows (64-bit)): at AutomationTool.Program.Main()
MainFrameActions: Packaging (Windows (64-bit)): Program.Main: AutomationTool exiting with ExitCode=5 (5)
MainFrameActions: Packaging (Windows (64-bit)): Domain_ProcessExit
MainFrameActions: Packaging (Windows (64-bit)): copying UAT log files…
MainFrameActions: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults:Error: Error Unknown Error

@Proteus You’re the hero we need but don’t deserve!
What’s the difference between “enable HMD” and “stereo on”?

@Talismansa: I believe enabled HMD enables your VR hardware, where stereo on enables stereoscopic rendering (which is optional but which you will usually want).

So you need “enable HMD” on first, then you can “stereo on”?

@J.C.Smith You’re right. If you don’t enable HMD it’s possible that VR Preview still works, but you’re surely have a blank screen in packaged game if you don’t put that.
@illpoet Which version are you using, are you using the plugin, and which commit? Did you add an empty C++ class before packaging?

I had to integrate new functions more than I thought to the VR_Pawn (now I call it like this since it’s for Vive and Rift). The fact is that Epic’s 4.13’s vr template put almost all functions within a referenced actor which is the same for right and left controller. The upside is that it’s simpler like that. However it makes it difficult to treat left and right controllers differently (lets’say you want a tool and a lightsaber with different functions like in Star Wars demo) and it doesn’t integrate well with the plugin. That’s why after many hours and diagrams on whiteboards, I put functions rather in modular parent-child-child pawns. More to follow soon.

@ proteus Thank you for the response sir. I also asked on answer hub and someone found my problem, which was that a plugin (path Follow) was interfering with the building process somehow. Not sure why, it only stops it from building projects using this template. I’m going to email the dev of said plugin to make him aware of the issue.

Thanks again!

Hey Proteus!
Thanks for the response, sorry for my late one. I’m using 4.12.5 and tried a few times and seems to be still broken which is odd as it seems most people have this working correctly. All I’ve is downloaded the template and moved it to my templates folder and create a new 4.12.5 project with it and played it.

Edit: Also to be clear, I’m making sure I have the right pawn set (tried them all) in the player controller, the platform works but pushing the R menu button once again to reset the character does nothing and I have to close it/open again. also the vehicle does the same when I push the menu button to get off the vehicle. Ultraman I can’t seem to get working period as it works fine scaling up but once it is pushed again it seems to flipflop the process going from normal height to large in a bad flickering motion (instead of lerping back down to regular size)

@UTitanXSI I’ll test extensively one last time the latest version on monday and I’ll report to you. I’ve a new version ready that I think we’ll be the most robust one, having spent a lot of time with every pawn. I was waiting few more days to do extensive testing with Oculus Touch, but I’ll put this version online monday. So for now you could always use the Vive Controllers with the rift instead of the Touch, and I’ll post a Touch version within a week.

Hey, I run into this issue when trying to package the game. Any solutions?
LogSavePackage: Moving ‘…/…/…/…/Gamesa/GamesaNewNewest/GamesaNew/Saved/MainMapB07DAA7B44A1C5F5141B27B2DEF477AF.tmp’ to ‘…/…/…/…/Gamesa/GamesaNewNewest/GamesaNew/Content/Maps/MainMap.umap’ LogSavePackage:Display: Finished SavePackage …/…/…/…/Gamesa/GamesaNewNewest/GamesaNew/Content/Maps/MainMap.umap MainFrameActions: Packaging (Windows (64-bit)): UnrealBuildTool: Gamesa_New-VRExpansionPlugin.lib(Module.VRExpansionPlugin.cpp.obj) : error LNK2005: “class TAutoConsoleVariable<int> CVarShowInitialOverlaps” (?CVarShowInitialOverlaps@@3V?$TAutoConsoleVariable@H@@A) already defined in Module.Engine.9_of_3 MainFrameActions: Packaging (Windows (64-bit)): 4.cpp.obj

Update to a newer version of the plugin, that cvar was changed to package correctly a couple of weeks ago i believe?

For the ones having problem opening/packaging projects, especially with 1.12:

Errors on opening are due to:
1)Opening the downloaded template as a regular project without deleting the .ini file
2)Using the wrong UE4 version

99.9% packaging errors are due to
1)Not adding an empty C++ class if using the plugin;
2)Using the wrong version of Visual Studio
3)Overlooking settings in Project/Maps & Mode;
4)Overlooking options in Project/Packaging

I’ve re-tested the SteamVR_Template 1.12 version from and Onedrive, and they work and package fine.

Version 2.0 – UE4.12.5 & 13.0 preview 3: August 31, 2016

  • Compatible with UE4.12.5 and 4.13
  • Oculus Rift compatible
  • Now with parent/child blueprints
  • Reconstruction of all functions
  • Basic / Teleport / Grab / Specialized pawns
  • VR Character, from VRExpansion plugin
  • Choice of using or not using VRExpansion plugin
  • Grab with/without the plugin
  • Force feedback on objects
  • Scalable mesh for Vive playground
  • Robust teleport function on navmesh and/or safe normal value
  • Teleportation with HMD and gamepad

Been tested/cooked/packaged with 4.12.5 and 13.0 preview 3 with a Rift and a Vive

Instructions at the beginning of thread or on pdf on drive
updated tomorrow

Files can be found at Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.
version at https://.com/ProteusVR/SteamVR_Template (you need to be logged to to open the link)

GL:HF

Great update.

Update: Ignore the below question. I was able to get rid of the cylinder by disconnecting the DrawDebugCylinder in the Teleport Method 2 area of the Event Graph.

Original post:
Thanks for this. I have a question regarding the Transportation method “Teleport Playground Center”. I want to use this because I don’t want any rotation when I’m teleporting (I’m using a Vive). When I choose this, I get the particle effect, which is fine, but I also get a wireframe cylinder that I can’t get rid of. Worse, this cylinder gets duplicated and distorted causing extreme eye strain. How can I turn the cylinder off?

Here’s what it looks like:

In the screen grab above, you can only see the distorted cylinder, but in the HMD, there is a duplicate of that cylinder (not distorted) at the base of the particle effect.

Thank you.

Hello again. I’ve noticed a bug where the teleport destination doesn’t match up with the teleport preview ring. This is easily noticeable when I try to stand on the X (for the Mirror.) If I place the ring directly over the X, I end up teleporting in front of and to the right of the X.

I tried the VR Template that ships with 4.13, and the destination perfectly matches up with the preview.

@avinashlobo Everything works well there is the explanation:

With latest wave of HMDs like Vive and Oculus Rift (as opposed to DK1-DK2 who worked differently), what you teleport is the center of your playground, not your person who wear the HMD. With the Vive, the playground can be fairly large if you have room, and the center of your playground will be right at the center of a rectangle which you can see when you see your chaperone borders. With the Rift the playground is smaller.

Anyway, from there you can show what you want on the teleport mesh. With 4.13 VRTemplate, what you see is a mesh representing your location within your playground.

With this template, you can enable/disable in settings the arrow which is at the center of your playground, and also enable/disable the arrowhead and head mesh which are located where you are in the playground, much like Epic template.

Lastly, when you press the teleport trackpad button, you see a snapshot of your location within the playground, not a live representation much like Epic 4.13. This is purposively to spare some tick events which are precious in VR.:slight_smile:

The VRGrip category of blueprint nodes in my plugin has a function that offsets a teleport location by the hmd location so that you are standing perfectly centered with where you clicked by the way.

@ Thanks I’ll make good use of this function

Awesome idea, the new GTX 1000 series cards from Nvidia are all VR readytoo.

Thanks for your explanation Proteus. My skill level with UE4 is pretty low and I’m brand new to the whole VR scene, so I don’t yet understand the little details that go into making certain decisions. I’ll look into 's post about offsetting the teleport location to see if I can get it to work.

Meanwhile, can I make a suggestion for a future update?
Get rid of the legacy teleport option entirely and build a “Allow rotation while teleporting” checkbox into the main teleport option. Using the Grip buttons to prevent rotation is not comfortable or intuitive.

Thank you for all your hard work. The update is really good.