Steam VR Template

What framerate are you guys hitting with the 1.9? I’m only getting 30 fps :frowning: I’ve got a GTX 970M, I know it’s not great but I was getting 90 fps on previous versions.

Do you have the particle effects enabled for Chaperone?

Be sure to uncheck "Spawn Particles at Chaperon’s Corner in Settings, it’s the only thing that could impact performance from last iteration.

@ kkkiwi You could enable them by mapping the nodes to a button:
32caa835b767b541fab9f300c3c0b789c4e1e9ed.jpeg

First off, thank you so much for this! It’s incredible!!

And secondly, I have a strange problem. I had first integrated template 1.8 into my project and it worked perfectly, however after a few days my controllers no longer appear whilst in game but everything else works fine. Not sure what went wrong.
I have tried:

  • migrating a fresh SteamVR template 1.8/1.9 folders into my project
  • copying the fresh template folders directly in my project source location
  • changing the default game mode in project settings to SteamVR_GM
  • opening the Vive map in my game (which works but still doesn’t work on my level)
  • starting a new project with your template (and it works)

All the blueprints provided have been compiled successfully but I still get no controllers in game. Is there something that I have missed?

Nice tips! Try using HMD mirror command to disable / enable the mirror to desktop, that seems to remove SlateUI and is a great option to have in games anyway for people who are not playing with an audience.

We’re also using r.BloomQuality 0 and r.EyeAdaptationQuality 0 for significant gains, but some people may want those features. IMO bloom hurts IQ in HMDs that already have very bloomy / light-ray artifacts. I also suggest people profile with and without early Z pass to see if it helps or hinders performance.

Edit: do you guys plan to implement rotation for Vive players? I can’t think of an elegant solution, it would be nice if cameras allowed some kind of rotational offset when Lock to HMD is enabled. I spent a while setting up a Chaperone visualizer when you’re in teleport mode which lets you know where you are in relation to your physical bounds, and allows you (in theory) to rotate it to teleport facing the direction you choose, but I’m stumped with setting the player rotation. Does anyone have an idea?

@Proteus Looking at the vr content examples it’s nice how clearly everything is displayed. I was thinking it might be a good idea to do something similar for the template as a lot of stuff isn’t obvious at first. Also presuming it’s ok is it possible to include some of the features from it like the teleport and web browser?

There’s also a budget cuts style teleporter you can easily add following this video.

Also im not sure if it’s just me but im finding grabbed object physics acting strange. It’s not working well like stuff in the lab. The fps is also quite low now in the default map for some reason?

When using my plugin grabbed objects don’t use physics, it uses moveactor with a collision sweep and stops the actor if it runs into something. Physics objects will interact with it, but it is not itself a simulating actor.

If you want actual physics interactions on the held object and to have it simulating then you’ll need to use a physics handle to grab things or a physics constraint, but you’ll want to not have a hand mesh then probably as it won’t match up well during movement as physics constraints do not use the late updates.

If you mean that the held object is also offset when colliding then you can turn off bInteractiveCollision in the grab node and have it not do that but still call hit events.

There are a lot of different grabbing styles in VR and the lab is just one of them…

@slam937 not sure what it could be. Is the controllers meshes are set to visible? @mechanicalsnowman I’ll add these settings in the scalabiliy settings or pp volume. Personnaly I like a little bloom but this should be shut off if it impacts performance. Adjust playground rotation while teleporting is something I planned for next iteration (much like Call of the Starseed). I did it in a test level, but the teleport function will have to be remapped on another button. I don’t find it particularly disorienting but it should be kept as an option. @Magneto good idea for the display level, similar to Blueprint examples levels provided by Epic. I’ll add it in a soonish update (not the next one but the one after)
Also, yes as @ said it it doesn’t work well with physics-enabled objects. I will explain it further in the docs.

On another subject, I did some tests yesterday with sending scalability settings to pp volume. My impression is that nearly no options in scalability settings are found in pp volume. Furthermore, disabling s.ScreenPercentage in level blueprint and enabling it in pp volume makes the program crash. I think we’re stuck with settings in the level bp for now.

Also, @Magneto you’re the 3rd person to bring the 1.9 slow FPS. I have no idea since it works well on my side, but I think I’ll release a 1.91 version tomorrow that will include the following fixes:

  • Lightsaber: on/off left hand; glowing light same color as blade [FIXED]
  • Teleport: Adjustable “safe” value to teleport on uneven surfaces [FIXED]
  • Grab function: drop problem when both hands are grabbing objects at the same time [FIXED]
  • Vehicle: Vehicle will rotate with controller input [FIXED]
  • Chaperone bounds will spawn meshes instead of particles, retriggerable [FIXED]
  • Disable Analytics and Substance plugin [FIXED]
  • Teleport/Exit matinee platform [FIXED]

Maybe that would do the trick. I plan to spend at least a day this week on Penguin’s TD menus and another on mocapping hands before release 1.10

Also it’s not supposed to impact performance but I changed setres from last iteration to I think 1024x768 or close to that (it’s easier to debug when the mirror screen is smaller)

Ok after extensive testing here’s 3 things I’ve found that could explain some rigs have problems with latest 1.9:

  1. It seems that Translucent Blend Modes found in the Controllers Skins Materials may explain fps problems in certain rigs. Mine is OK (i7 + stock 980) but I’ve seen other rigs (970, amd…) lagging because of this. You just have to change the material blend mode to opaque and test it to see if it’s the problem. This was a change in 1.9.

  2. My big lesson since I’ve got a Vive is that it’s far more ressource intensive than DK2. I had projects running flawlessly in Dk2 (with 1.3) and taking a toll with the Vive. Had to reduce some settings in projects to regain 90fps.

  3. It should not be checked but be sure that no skeletetal meshes uses per poly collision, it’s very very taxing and exponentially with the mesh complexity. I had a project with one turned one and frames went from 90 to 35

Cool, I’m looking forward to checking out your implementation of it. I keep hearing about Call of the Starseed and its teleport rotation feature, I’m quite surprised it’s not a “standard” in all games with teleportation, but I suppose it’s not as necessary for Vive exclusives.

And yeah, I think bloom quality should definitely be added for devs to decide if they want it or not, it seems to make use of many small entries in the PP branch of the profiler which can add up to a lot.

Thanks for the work you’re putting in to this community template, hopefully it gets a lot of people on board with VR devving.

Hello guys!

I’m having a bit of an issue with the template, it might be some rookie mistake so bear with me on this please :slight_smile:

The template runs fine on VR Demo mode on the editor, but whenever I try to make a package out of it, I get this cooking error:

UE4Editor-Cmd: Execution of commandlet took: 10.21 seconds
CommandUtils.Run: Run: Took 15,0058791s to run UE4Editor-Cmd.exe, ExitCode=1
Project.Cook: Cook failed. Deleting cooked data.
Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.AutomationException: Cook failed. —> AutomationTool.AutomationException: BUILD FAILED: Failed while running Cook for [redacted]\SteamVR-Template-master\SteamVR_1 _9\SteamVR_1_9.uproject; see log [redacted]\Unreal Engine\AutomationTool\Logs\D+UnrealEngine_4_Install+Epic+Games+4.11\Cook-2016.05.22-21.39.08.txt
at AutomationTool.CommandUtils.RunCommandlet(FileReference ProjectName, String UE4Exe, String Commandlet, String Parameters)
at Project.Cook(ProjectParams Params)
— End of inner exception stack trace —
at Project.Cook(ProjectParams Params)
at BuildCookRun.DoBuildCookRun(ProjectParams Params)
at AutomationTool.BuildCommand.Execute()
at AutomationTool.Automation.Execute(List1 CommandsToExecute, CaselessDictionary1 Commands)
at AutomationTool.Automation.Process(String] CommandLine)
at AutomationTool.Program.MainProc(Object Param)
at AutomationTool.InternalUtils.RunSingleInstance(Func`2 Main, Object Param)
at AutomationTool.Program.Main()
Program.Main: AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
Domain_ProcessExit
copying UAT log files…
BUILD FAILED
PackagingResults:Error: Error Unknown Cook Failure

Inside the log I only saw a couple of serialization errors on the Lightsaber Settings and on Vive_Pawn_C Settings, is that enough to break the packaging process?

This happens both with using the template as project or as a blueprint template on a new project.

Any ideas on what can be causing this and how do I go about doing some packages with Vive support? I am trying to package this for Win 64 bit.

Thank you for the help and for the time!

I’m only getting 45 fps on this with a 970, does anybody know what is going wrong?

For me the Direct Mode increased the overall performance. I have a r9 280x. Everytime i leave the VR Simulation in the Editor i get massive Framedrops, but when i get back into Simulation or when i reopen the project they are gone. For my low spec card i disable the shadows of every light source and i have no framedrops. i wait for the pascal or polaris cards(only a few games are unplayable and the most without any framedrop).

I’ve some GPU profiling, I think the only thing that is holding me back now is the glass, But it is an Archvis Scene and it has glass there. I can get 90 fps on most of my scene except when I look toward the glass.

Total noob question here, but when I create a new UE4 project based on this template, should I use:

  1. Desktop/Console with Maximum Quality or
  2. Mobile/Table with Scalable 2D or 3D

Sorry for such a dumb question, but I’m really starting from scratch here. The tutorial here says to use option 2, but I just want to confirm.

As it’s a SteamVR template, use option 1. The only difference between these options are that some settings in the project settings are enabled/disabled by default:
33b265d16c8620230f339599712f8e66877eaaf5.jpeg

As an example, you may want to use an AA method on desktop. Use 1 and follow optimization settings in the docs.

How was this fixed? I have the most recent version (even the preview version of UE4) but i cant bypass this error…any help?

fixed: updated to 4.11.2

I was wondering if it’s not too much trouble would it possible to include a first person mode for when the hmd isn’t active?

I was thinking how useful it might be while working to quickly walk around and test things without the hmd. It would also work as a basic monitor mode for games that need that.

First of all I have to say that it’s an incredible work you have . I was looking around for a template to use to simplify my work and thank’s to you I’ve found it.
I’ve got an issue in the v1.9 I have got a colision problem with the book stuck in my right hand.

I’ve a suggestion to you, add an inventory to stock objets and use them later.

Regards,
Diem