Labs structure
- Labs take place in the classroom. Bring your VR device with you.
- Check Discord for prerequisites.
Submission
- Use the following form to submit the lab tasks in Courses.
- Note that some tasks need to be submitted to Discord instead.
Unless otherwise specified, an informative screenshot or two of your Unreal Engine application is required for your task submission. Display the viewport and the new features that you have implemented. Meaningful parts of the related blueprints are welcome as well. Add short and clear explanations of your implementations in the comments. Comment also on what you struggled with.
Lab 1 (11.02) - Introduction. Experiences video editing. (click to open)
Task for the week: (submit to Discord, deadline 17.02)
Make an analysis video that meets the following criteria (which will be assessed in class):
- Describes 5 interesting observations and marks at least 3 emotions (for example fear, anger, joy, sadness, disgust, surprise) about the VR experiences that you tried. Do this using voiceover.
- Uses footage captured from the Quest to illustrate those points.
- The video should be between 3 and 7 minutes long.
- The video should foremost be informational so make it adequate but don’t spend too much time editing it.
- While and in between trying the different experiences, write down the parts that you want to bring up in the video.
- Add the link to your submission to Discord.
- Be ready for the videos to be shown and discussed in next week's lab session.
💎 Tip: Listen with speakers (if possible) and look through your video before submitting to make sure there are no unexpected issues, like the game sound too loud compared to your voice, etc.
Lab 2 (18.02) - Experiences videos reviews and discussion. (click to open)
Task for the week: (submit to Discord, deadline 24.02)
VR project thinking - prepare 3 ideas:
- From today’s experiences (yours and others), put together 3 ideas for your possible project candidates. Each idea has one sentence about main goal/point of the project.
- Note and write down 2 emotions that you want to have in your project, and 2 emotions that you want to avoid in your project.
- Include 1 picture per idea that would illustrate something specific you want to achieve (a scene, colors, character, situation, fight moment, art style, item, etc. anything that comes to your mind - but try to be specific about it)
- Prepare this nice and clear in short writing and post it to Discord on Tuesday before the next class session. A simple Discord post with minimal formatting is good, but if it suits you better, you can make a document or slides. Just consider that it is easy and quick to open, and clear to understand as a whole. Do not spend time yet on making it pretty.
📌 This task is a pre-work for your future task (Project Idea Pitch) and will be also graded later as part of the pitch. The purpose of this task is to make you think about your project ideas sooner, and practice writing them in a short, clear, informative way.
Lab 3 (25.02) - VR setup with Unreal Engine. Ball Shooter. (click to open)
Task for the week, make a screenshot of your ball shooter while it is launching balls: (submit to Discord, deadline 4.03)
Download Tennis Racket:
Attach:TennisRacket.zip
Source: https://sketchfab.com/3d-models/tennis-racket-c314dcce06ba488ca624957f579b8196
Steps:
- Create a new Unreal Engine 5 project using the VR template.
- Import the tennis racket model,
- adjust its import scale and colliders to work properly.
- add the tennis racket to the Map, make it movable and apply physics.
- turn the tennis racket into a blueprint, give it the grab component, ensure it snaps correctly into the hand.
- Create a ball blueprint similar to the racket using the Unreal's sphere mesh.
- Remove the unnecessary objects from the map and create a Tennis Stadium environment by using the Modeling tools and Cube Grid.
- Create a tennis ball shooter machine:
- Create base and barrel models using the modeling tools.
- Combine both parts into a single blueprint (having two static mesh components).
- Add a script that spawns a ball every second and applies an impulse towards a direction defined by the arrow component (add this component to the point where the balls are thrown).
- Add another script that rotates the barrel continuously using a sine function.
- Make the ball throwing force and barrel rotation arc configurable and test your shooter machine.
- Adjust your parameters so you can hit the balls with the racket.
- Enable continuous collision detection (CCD) for both the racket and the ball to ensure that the hit is always registered.
- Create a ground area blueprint for checking where the balls land:
- Create a static mesh blueprint with a box shape.
- Set its physics to OverlapAll and turn on the overlap events on both the area and ball actors.
- Add a custom event to the VRGameMode blueprint that adds a score to the value and prints it out.
- When the ball touches the ground area call this function in the VRGameMode and destroy the ball.
Lab 4 (04.03) - Unreal Engine practicing - Game mode. (click to open)
Download tennis net texture:
- CC0 Net texture: https://ambientcg.com/view?id=Net004A

Steps:
- Create a new scene for tennis court.
- Add environmental lighting (sky sphere, dir light, SkyLight) and terrain.
- Add PlayerStart
- Add NavMeshBoundsVolume and configure the area to teleport
- Add net, ball shooter, and racket - configure them to be able to hit the ball.
- Create materials
- Create tennis net material
- Create landscape material and paint it
- https://dev.epicgames.com/documentation/en-us/unreal-engine/landscape-paint-mode-in-unreal-engine
- Create custom game mode
- Set up respawn areas for in and out zones
- Track the points in the game mode
- When 10 points have reached, the game will end and shooting will stop
- Make a widget
- Create a world-scale widget to show your score
- Make a button on the table that restarts the game
- Add some juice
- Add blue particle effect when ball hits the in zone
- Add red particle effect when ball hits the out zone
- https://dev.epicgames.com/community/learning/tutorials/b8yy/unreal-engine-unreal-particle-effects-tutorial