top of page
1. Introduction to Unreal

Introduction To Unreal Engine 5

Overview
c1d28caf19760c4c9af0e17ccd8d09d6.png

Download Links:

This project was my dissertation submission for University, as I wanted to do a self study into Unreal Engine 5 to develop my skills with another game engine other than Unity. The premise of this self study was to show newcomers and Unity users how to use the blueprints system within UE5 by teaching them how to create a simple penalty shootout style mechanic. 
Approach
Introduction

To start, I guide the viewer through the essentials of opening Unreal Engine and navigating its interface. I start by breaking down the main editor windows and comparing them to their Unity counterparts. The reason why I included these into my first video are because these were my first thoughts when I opened the Unreal editor.

I demonstrate how to swiftly implement a character controller by importing one from Unreal's templates. This approach proves advantageous for beginners, allowing them to get started quickly and conduct basic testing.

image.png

I also included instructions on creating your own game mode, allowing users to attach their own character controller and become familiar with where they can add game rules and logic.

Kicking animation

In the description section of the second video, I included an kicking animation for the viewer to download and import into their project. From here I guide them into importing the animation and implementing it with the code found below.

image.png

After testing the kicking interaction between the player and the ball, I realized that simply adding a kicking animation to the player wasn't sufficient. The player would often miss the ball, and when they did make contact, the kick lacked power.

To address this, I implemented a simple solution by adding a separate collider to the player's kicking foot. This was achieved by creating a sphere with a collider and attaching it directly to the player's foot joint in the ThirdPersonController blueprint. This new collider provided the necessary surface area and mass to kick the ball more efficiently and consistently, without it merely rolling across the floor.

image.png
colourchange.png

Once the collider was attached to the player, I guided the viewer through the process of making the sphere transparent. This was done by creating a new material for the sphere and setting its Opacity to 0.

Creating a Blueprint for ball

At this point, the ball is just an object in the world that we cant manipulate in any way through code. I chose to set up the video this way to highlight that you can create an object as a placeholder and utilize it at a later date as this can be more familiar to Unity users who create prefabs from the scene. To gain more functionality from this ball, I take the viewer through the steps to turn it into a usable blueprint.

ballbp.png
Reset Ball Position
With this piece of code, we are able to take and store the initial x, y and z co ordinates that the ball start in. This serves as a good reference point to reset the ball to when it has moved from this position.
image.png
boxcol.png

I then show the viewer how to add a box collider to the ball in the viewport. Doing this will allow us to know if the ball has been kicked by checking to see if the ball is in contact with the collider.

After creating the collider, I then demonstrate how to add a new event directly from the Outliner by selecting "OnComponentEndOverlap". With this event, we can continue on with the following code.

image.png

As we can see, this code will now perform a check to see if the ball has left the collider. If true, a delay will start for 5 seconds.

Along with this, we need to create a check to see if the ball has already been reset. We can do this by setting the Ball Reset variable to true once it has left the box collider.

image.png
resetvelocity.png

We will also need to reset the balls velocity to ensure that it will stay in the same position, as any velocity left over will transfer to the ball once reset.

Creating a goal

To create a goal for our tutorial, I set out to use assets that utilized Unreals Quixel Bridge. One of the many benefits of using Unreal is utilizing the mega scans library found within Quixel bridge, as they are high in detail and easy to access.

quixel.png
goal.png

After selecting the "OnComponentBeginOverlap" event from the outliner, I then demonstrate how we can allocate a score by using a simple increment node after detecting a collision with the ball.

I then use this opportunity to show the viewer how we can debug this value in the console by using the "PrintString" node, as it will display a the current value of the predefined "score" variable in the editor window when a goal has been made.

As we need to reset the ball's position after it has scored a goal, we need to be able to call code that we wrote earlier on another blueprint.

resetvelocity.png

To do this, we will need to create a function out of the initial code found on the ball blueprint to be able to reference it.

Once the function has been created, I then show the viewer how to reference this within the Goal blueprint by searching for it in the executable actions window.

resetball.png

Goalkeeper

Here, I show the viewer how to create a simple goalkeeper from a cube that will move between two defined points in front of the goal we just created.

Since we haven't used the Construction Script tab yet, I wanted to show that it was similar to the awake method found within unity to create objects before runtime. This allows us to create 2 control points in the scene at runtime based off of our defined start and end position.

Creating a win condition

​Using Unreal Engines Niagara particle system, I created a simple firework effect that will be played when you score a goal, acting as a win condition.

The creation of this particle effect was left out of the tutorial as this was outside of the scope of what I wanted the viewer to create, so I included this as a separate download found within the video’s YouTube description.

As shown below, we can trigger this firework by checking the current score stored in the goal blueprint. The code uses branch statements to create a condition that checks if the score value exceeds a given threshold.

OUTCOMES

Originally, my initial vision for this project was to create in person classes within the university that showcased the biggest features of UE5 at the time. Thanks to that ambition, I was able to gain a substantial amount of knowledge about UE5 that I didn’t get to cover in these tutorials. I fully explored with controlling Metahuman rigs, creating interesting landscapes with decent texturing and working with the Niagara particle system.

My video editing skills could very much be improved upon though and I am very aware of this, but I don’t see myself becoming a Youtuber anytime soon. Ultimately, I'm proud of my accomplishments as I gained a comprehensive understanding of the software and successfully created a semi-professional tutorial series that is completely original.

Ash James

  • LinkedIn
  • GitHub
  • steam_light_18900
  • YouTube
  • Twitter

Contact Me

bottom of page