Adding Motion Controllers, Navigation and Teleportation to Unreal level


Install Unreal and make a level ion Unreal Engine before following the below steps-

Rendering and Antialiasing-

Always a good idea to deicde Rendering when you start the project(You might run into bugs if you decide to change this later) 

Go to Project Settings -> Select Rendering subsection

Forward Rendering and MSAA Aliasing-

In forward Renderer- Click Forward Shading(allows you to enable MSAA)

Forward shading allows things to go much faster in Virtual Reality

Go to default Settings-

Choose Antialiasing Method - MSAA

Advantages- Run smoothly and maximum Frame rate

Deferred Rendering and Temporal Aliasing-

In forward Renderer- Untick the Forward Shading

Go to default Settings-

Choose Antialiasing Method- Temporal Aliasing

Frame rate drops, Runs smoothly not as sharp as Forward Rendering

For faster and smooth VR, Forward Rendering and MSAA Aliasing is preferred

Import Motion Contoller Mapping(If your proje ct is not already in VR mode and you want to import it)-

If your project is already in VR, skip these steps-

In Content Browser, Select 'Add new' and choose Blueprint Feature -> Click on Virtual Reality and Click 'Add to Project'

This will Add Virtual Reality and Virtual Reality BP folder in your content

Nav Mesh-

Adding navMesh in the scene- 

In Modes, type Nav Mesh and drag it into your level

Reshape the navmesh so it covers your entire scene

To view NavMesh- Press Control + P to see the region covered by Nav Mesh(it will be seen in green)

Importance of NavMesh-

It avoids collision and creates boundry around all the objects. This will allow you to teleport anywhere in the scene except on the objects.

Adding Motion Controller BluePrint in the scene-

Go to Content -> Virtual Reality BP Floder -> BluePrints -> Motion Controller Pawn

Bring that in scene and place it wherever you want in the scene

AutoPosess Player- Set it on Player0, for second Pawn set it to Player1 and so on

You should be able to teleport in navMesh area avoiding collision with any objects in the scene.

Choose BP Pickup Cube from Blueprints and drag it into the scene

Go into the scene and move the cubes.

Allow user to Move other objects in the scene-

Select Object -> Blueprint -> Add script

Choose Path - Virtual BP and Click Create

Go to Class Settings-> Click Interfaces Add Pickup Actor Interface

Go to ViewPort -> Choose Movable, Simulate Physics, Enable Gravity,  Collision -> Click Simulation Generates Hit and Generates Overlap Events

Go to the Event Graph of Pickable Cube from Virtual BP and copy the graph. Paste it into the object's Evenet Graph

You should be able to move the object in Virtual Reality Mode :)