Epic Games gave developers a taste of what would be coming in the next Unreal Engine updates late last month, showcasing a preview featuring new animation tools, platform SDK compatibility and more. Now the studio has release Unreal Engine 4.14, with a massive amount of new features to play with, including more support for PlayStation VR.
For virtual reality (VR) developers there’s plenty of improvements to start using, such as landscape editing in VR. Users can now create and sculpt terrain and paint landscape materials using motion controllers. Epic Games notes: “You can summon the Landscape Editing tools from the “Modes” panel on your Quick Menu. Then choose a brush from the UI and start painting! If you hold the “Modifier” button on the motion controller, you can erase instead of painting.”
PlayStation VR support also features heavily, with new layer support for SteamVR and PlayStation VR, and PSVR support for multiple framerate targets. The latter means that Unreal Engine 4.14 now supports native 90Hz to 90Hz reprojection and 120Hz to 120Hz reprojection on the headset
The engine now supports loading movies on Oculus Rift, Gear VR, SteamVR, and PlayStation VR. These run on the rendering thread, and can mask framerate hiccups as developers load up content.
As always with these releases there’s so much information we’ve just picked the VR focused elements, all of which can be seen below. For Epic Games’ full changlog of updates head to the blog. VRFocus will continue its coverage of Unreal Engine, reporting back with its latest VR improvements.
Editor and Tools – VR
- New: You can now instantly reset the world’s scale to its default by tapping the touchpad button while gripping the world. This makes it easy to get back to your “Player’s Size” while editing.
- New: You can now disable VR Editor Tutorial in Editor Preferences > Experimental > VR.
- Bugfix: Fixed an issue with blurry toolbar icon when “Use Small Toolbar Icons” was enabled in the Editor Preferences.
- Bugfix: Fixed various issues and regressions with Mesh Paint in VR:
- Brush preview not being rendered for lasers/mouse when not actively painting.
- “Full press” over actors that was preventing the UI from being clickable.
- Brush cursor displayed when hovering over UI (including selection bar/close button).
- VR transform gizmo getting in the way of everything while painting, it is now hidden while in Mesh Paint mode.
- Not being able to fully interact with UIs after messing around with Mesh Paint
- New: Added support for getting the HMD Device name (e.g. “OculusRift,” “SteamVR,” “PSVR,” etc) through Blueprints and C++.
- New: Added the “Start in VR” project setting, which enables projects to specify that they would like to automatically attempt to run in VR mode, regardless of whether or not -vr is passed on the commandline.
- New: Added the ability to re-enter VR preview in the Editor after exiting from it using the quit option inside the SteamVR overlay. Previously one had to quit and restart the Editor to re-enable VR.
- It is now possible to reliably exit a game from the Steam VR overlay exit button, even when previewing in the Editor.
- New: Added the ability to select which HMD module to use on startup by passing “hmd=<name>” on the command line.
- This is useful if you have more than one type of device attached to your machine. If no device matches the name passed in, a warning will be printed to the log and VR will be disabled.
- New: Added support to the Oculus Rift for the “r.ScreenPercentage” console variable if it is set manually.
- The obsolete console command “HMD SCREENPERCENTAGE” will still work, but assigning to “r.ScreenPercentage” is now the preferred way.
- New: Updated the PSVR 2DVR texture to now be a UTexture, so it can be a RenderTarget, etc. Also improved error reporting for this and some other PSVR features.
- New: Added three options to the PSVR HMD Setup Dialog Cancel reactions.
- Disallow Cancel – Put the HMD Setup Dialog up again. Appropriate for titles that only support VR output.
- Switch To 2D – Switch to 2D output mode and send the HMD Connect Canceled Delegate. Appropriate for apps where 2D play is supported.
- Delegate Defined – Fire the HMD Connect Canceled Delegate. The project needs to handle this delegate and take appropriate action while being mindful of TRC requirements.
- Be sure to consider the case where the HMD is disconnected as the program starts up.
- New: Added delegates for when the PSVR headset is taken off the head or put on the head.
- New: Updated GoogleVR SDK to v1.01, which adds proper support for splash screens.
- New: Updated OSVR plugin.
- Fixes multiple crashes, and improves tracking.
- New: Added VR splash screen for level transitions.
- New: Updated UI elements that composite after reprojection to preserve quality.
- Bugfix: Applied fix for Adreno GearVR devices rendering black on startup.
- Bugfix: Fixed Add Controller Yaw Input with PSVR. The yaw was being reset every frame.
- Bugfix: Fixed an issue where the main editor window was not restored after exiting VR preview in some cases.
- Bugfix: Fixed crash when exiting PIE while a panoramic screenshot was in the process of being taken.
- Bugfix: Fixed motion controller attachment movement when the game is paused.
- Bugfix: Fixed PSVR reprojection prediction time. HMD motion now runs off the edge of the rendered area less easily.
- Bugfix: Fixed saving the Oculus Rift INI setting “bPixelDensityAdaptive”. It was previously saved as a floating point value instead of a boolean.
- Bugfix: Fixed some static analysis warnings in Oculus Rift plugin code.
- Bugfix: Fixed the “Get bounds node” for SteamVR to return the correct bounds if they have changed since initialization. This could happen if the HMD was outside of tracking area during start up.
- Worked around a bug in SteamVR that caused VR to fail to initialize if SteamVR isn’t running when launching the application.
- Added positional tracking information on PSVR even when the device isn’t optically tracked. This enables proper IPD to be taken into account for rendering.
- Added support for the left menu button on the Oculus Touch controllers.
- Adjusted Hidden/Visible area masks to eliminate black crescents at the top and the bottom edges of the PSVR HMD.
- Updated changing world to meters scale while running in VR Preview mode in the Editor on Oculus Rift so that it now correctly applies the changes to the Oculus Touch controllers.
- Updated VR play-in-editor to always use “Game has mouse focus” option, to ensure that motion controllers are routing input correctly to the game.
- Added a PSVR Morpheus project setting to set the reprojection wrap mode to Mirror or Clamp To Border. This determines how left and right reprojection artifact pixels are filled.
- Mirror, the default, fills them with some nearby pixels.
- ClampToBorder fills them with the border color (usually black).
- Most content works best with mirror.
- Updated PSVR to now ignore partial HMD tracking data before the HMD has been tracked in a game session because orientation based re-projection does not function until that happens. There is a project setting to disable this, should the PS4 behavior change in the future.