Lab Structure
- Labs take place in the classroom. Bring your VR device with you.
- Check Discord for prerequisites.
Submission
You can use the following form to submit lab tasks. It is just a shortcut - you don't have to do it again if you have already submitted the task.
For each lab, just a screenshot of your Unreal Engine application is needed. Display the viewport and new features that you have implemented. You can add explanations in the comments.
Lab 1 - Introduction (Experience video editing)
Lab slides are here.
Remember to also add links to the Analysis Video with the 5 observations that you made to Discord Use GDrive, Youtube etc. for hosting.
Lab 3 - Unreal Engine VR setup
Before lab, enter following command to CMD.exe:
REG ADD "HKCU\Software\Oculus VR, LLC\Oculus\Libraries"
Do the following preparations for the lab:
- Install the Oculus app to your home computer (very first link when you Google it).
- Enable Developer mode on your Quest (it will require some steps: https://aixr.org/insights/how-to-enable-developer-mode-on-oculus-quest-2/). After that you should also try to sideload some apps, for example through sidequest: https://sidequestvr.com/
- Download and install Unreal Engine 5 (latest version) - you will first need the Epic Games Account and Launcher - https://store.epicgames.com/en-US/download
- Try to use the Oculus Link to stream your computer using the provided USB cable.
If you run into trouble, ask help from Discord.
Download Tennis Racket:
Attach:TennisRacket.zip
Source: https://sketchfab.com/3d-models/tennis-racket-c314dcce06ba488ca624957f579b8196
Lab 4 - Immersion and Presence
Making a small table tennis minigame that:
- implements grabbing for the table tennis racket and ball,
counts and displays the hit count of the ball (with the ball only touching the racket),- racket has haptic feedback on ball and other surface hits,
- ball has racket and table/other surface hit sounds.
You can try making the game easier by:
modifying gravity (e.g. Moons gravity is 1.62 m/s^2),- and limiting the balls movement only to the z axis.
Download the template project with table tennis assets.
Sounds assets used:
- Ping pong ball hitting table: https://freesound.org/people/mazbord/sounds/622626/
- Ping pong ball hitting racket: https://freesound.org/people/Emmalyons1/sounds/594190/
Lab 5 - Interactions
Make a basic auto-latching door as described in the lecture slides video.
- Additionally you could try to add an interactive lock to the door that can be toggled/unlocked with a keycard.
Download the template project with door assets.
Lab 6 - Locomotion
Implementing smooth locomotion to extend the default UE VR pawn. This can be implemented in the default VR template or as an extension to one of the previous lab projects (will be using Lab 5 solution in the lab).
- Create a new player class by copying the existing VR pawn and change its parent class to character.
- Add new input input for thumbstick axis and potentially remap the turning inputs.
- Doing this via the enhanced input system results in most flexibility.
- Use the new inputs to add character movement input.
- Keep the character actors horizontal location at the same world location as the camera components world location.
- To enable this first negate the real world motion of the camera and add it back in for the actor.
Lab 7 - Version control and Git
Documentation on using git with Unreal Engine
Lab 8 - Prototyping
Lab 9 - Visuals in VR
- Download the button and the lever base models from here.
- Fix the problems
- Separate the button into two moving parts
- Fix the normals on the button
- Fix the shading on the parts of the lever
- Fix the origin of the lever handle to make it move nicely
- Import them to Unreal
- Create LODs for them
Lab 10 - Graphics in VR
- The aim is to build and run an Unreal engine project on Quest.
- For this check out this guide document document
- Additionally you can test different optimizations / graphics techniques for VR
Lab11 - Lighting in VR
- Create a custom lighting scenario in the provided project