Start Guide
This is the start guide tutorial in which you can get all the required information for starting with Head Mounted VR plugin.
Prologue
Head Mounted VR is advanced Unreal Engine VR plugin which is using C++ only but it is not necessary to know the C++ programming language to use it since everything is game-ready and can be used in blueprints. For the better understating and learning, start guide contains references to the Unreal Engine Documentation and section for it. The start guide has 4 sections: Unreal Documentation, Hot to use classes documentation, Plugin Content, First Steps.
Fast Travel
Unreal Engine Documentation
Collsion
"Collision Responses and Trace Responses form the basis for how Unreal Engine 5 handles collision and ray casting during run time. Every object that can collide gets an Object Type and a series of responses that define how it interacts with all other object types. When a collision or overlap event occurs, both (or all) objects involved can be set to affect or be affected by blocking, overlapping, or ignoring each other. Trace Responses work the same way, except the trace (ray cast) itself can be defined as one of the Trace Response types, thusly allowing Actors to either block it or ignore it based on their Trace Responses." @UNREAL DOCUMENTATION
Unreal Documentation (Collision Overview)
Physics Constraint
All is connected by physics constraints. For example every single connection beetwen hands and objects, doors, drawers, levers etc.
"A constraint is a type of joint. It allows you to connect two Actors (presumably one physically simulating), and also apply limits or forces. Unreal Engine has a very flexible and data-driven constraint system that allows designers to make many different types of joints simply by changing some options. The engine has a few default joint types (ball-and-socket, hinge, prismatic) but they only differ in their settings." @UNREAL DOCUMENTATION
Unreal Documentation
Unreal C++ API Reference
Traces with Raycasts
"There may be instances in your game where you want to determine if the player character is looking at something, and if so, alter the game state in some way (for example, highlight something when a player looks at it). Or maybe you want to determine if an enemy can see the player character, and if so, start shooting or engaging them in some way. You can accomplish both scenarios by using Traces (or Raycasts) to "shoot" out an invisible ray which will detect geometry between two points and if geometry is hit, return what was hit so that you may then do something with it. There are different options available when running a Trace. You can run a Trace to check for collision with any Objects where hit Objects are returned, or you can run a Trace by Trace Channel where any Objects hit will return hit information if the Object is set to specifically respond to a specified Trace Channel (which can be set via Collision Settings). In addition to running traces by Objects or by Trace Channel, you can run your Trace to detect Single hits or Multi hits, where a Single Trace returns a singular hit result and a Multi Trace returns multiple hits resulting from the Trace. With Traces, you can also specify the type of ray that is used: a straight line, a box, a capsule, or a sphere." @UNREAL DOCUMENTATION
XR Development (UE 5)
"XR refers to the collection of the following experiences:
Augmented reality: Where sensory information overlays the user's view of the real world through a handheld or wearable device.
Virtual reality: Where a virtual environment replaces the user's view through a wearable device.
Mixed reality: Where an experience is a blend between augmented reality and virtual reality.
Unreal Engine supports both developing for XR platforms and using XR devices in your content creation pipeline. The sections below contain links to documentation on how you can work with XR devices in your projects." @UNREAL DOCUMENTATION
Unreal Documentation
Unreal C++ API Reference
Virtual Reality Development(UE 4.27)
"Virtual reality (VR) refers to an interactive experience where the user's real-world environment is replaced by a virtual environment through a wearable device. The Unreal Engine VR framework provides a rich, unified framework for building virtual reality apps using the Unreal Engine." @UNREAL DOCUMENTATION
Unreal Documentation
Unreal C++ API Reference
How to use the classes documentation
Classes
The website has the classes page button on which is located at the menu bar. The are displayed all avalible classes with a short description and blueprint/C++ status. Blueprint/C++ means that class can be inherited in both blueprint and C++. C++ only means that class can be inherited only in C++(Usually stuctures, interfaces etc).
Class page
The class page contains Blueprint class name, Short description, C++ general information, C++ API Reference button(advanced C++ users only), Class general information and Blueprint API Reference.
Plugin Content
Demo
C++ Classes
The Plugin contains 41 unique C++ classes. Down below is source folder hierarchy.
The Plugin has the following classes:
-
VR Player - Whole new player pawn class was developed especially for VR. It has a completely new movement which was written from scratch to fit the VR concept.
-
VR Hands - Player’s hands are fully physically based and like in player class there was a huge research on immersion, collision and interaction with objects.
-
VR Grab Component - This is a scene component which attach parent player can pick up by using one of grab methods (enum EGrabMethod).
-
VR Static Mesh - This is a static object which player can pick up by using one of grab methods (enum EGrabMethod).
-
VR Skeletal Mesh - This is a skeletal object which player can pick up using one of grab methods (enum EGrabMethod).
-
Loading Handler - This is a loading class for transition between levels (Player will be teleported to the loading room and then to the selected level or streaming level).
-
VR Weapon - The fundamental base for every weapon class. Easy game ready setup.
-
VR Weapon Animation Instance - VR weapon animation instance class which can be used as parent class of animation blueprint.
-
VR Ammo Clip - This is base ammo clip class which slides into the weapon.
-
VR Ammo Round - A simple bullet class which can be loaded into the gun(Can be used in revolvers).
-
VR Ammo Box - Large ammo box which will automatically add certain amount of ammo to the player.
-
VR Bullet Decal - Bullet decal which spans after bullet hits the surface.
-
VR Button - This is a physic base button class. Can be used in the game world or as a child actor component.
-
VR Climbable - Climbable class. Can be used for ladders, obstacles etc.
-
VR Code Lock - This is a code lock class. Player can type password by pressing the buttons.
-
VR Door - Door with which player can interact. It can be used as a big door or as a small door for the closets.
-
VR Drawer - Drawer with which player can interact.
-
VR Equipment - Player can interact with this class after grab by pressing the following buttons: trigger button, A button and B button.
-
VR Equipment Skeletal - Player can interact with this class after grab by pressing the following buttons: trigger button, A button and B button.
-
VR Hand Inventory - Inventory class which is can be attached to the player's hand.
-
VR Lever Base - This is a the base lever class which can interact with players hands. Look at lever rotatable or slide class. Use only if you want to develop new lever type.
-
VR Lever Rotatable - This is a rotatable physic lever class which player can rotate.
-
VR Lever Slide - This is a physic lever class which can slide. Player can interact with it.
-
VR Main Menu - Main menu parent class which can be attached to the players hand on spawn.
-
VR Pause Menu - Main menu parent class which can be attached to the players after holding the menu button.
-
VR Stab Weapon - Stab weapon is a class for knives, swords etc.
-
VR Weapon Projectile - Projectile which spawns after each time gun fires.
-
VR Interaction Interface - Player interface for interacting with VR Actors. (Already build in VR player class)
-
Menu Loading Widget - This is a class for a simple loading widget which is used in VR Hands class. It shows while a player is holding the menu button.
-
VR Hand Animation Instance - VR hand animation instance class which can be used as parent class of animation blueprint.
-
VR Save Level Transfer - This class is used for tranfering inventory information to another level.
-
VR Save Preferences - This class is used for saving selected movement preferences.
Demo content
How to find plugin content?
Head Mounted VR plugin has the demo exaple. It can be found by turning on "Show Plugin Content" in the UE content browser.