Hi! Great day! Welcome to this course. Thank you for taking an interest in this course. Learning from this course will help you become an IT Professional.
Introduction: Welcome to Platform Technologies! Learning this course will help you become an IT Professional. An area in platform technologies that is trending in this generation is the production of games. One of the most emerging game development technologies is the Unreal Engine. Its main advantage compared to others that are on par with it in terms of complexity is its accessibility. The main entry point of Unreal Engine is that it will not ask for a fee right up front. This means that anyone who is not capable of payment can use Unreal Engine from start to selling its developed games. The fee starts when the sold developed games reach a certain number of sales. It is also known as royalty fee. With this kind of business model, anyone can dive right in and use Unreal Engine to start developing games. Also, it is not just limited in developing games. It can develop films, architecture, and more. In contrast to the CC106 Application Development and Emerging Technologies course we will focus here the use of the Blueprint approach.
Lecture 1: Unreal Engine is one of the most powerful game development tools. It can develop games for many different platforms such as Windows, Mac, OSX, Web, HTML5, Linux, iOS, iPhone, iPad, Android, Mobile, Phone, Tablet, VR, AR, MR, PlayStation 4, Switch, and Xbox One.
Lecture 2: Furthermore, it uses three (3) approaches in developing games. First is through coding using the C++ programming language. Second is through the Blueprint system wherein the developer will create nodes and connect each other like forming diagram and concept maps. The last would be the combination of both.
Lecture 3: The Unreal Engine is an IDE itself but can also utilize third=-party IDEs such as Visual Studio and Visual Studio Code as supplement for those developers who are already used to these IDEs. The choice of third-party IDEs will depend on the operating system the developer will be using. Since Visual Studio and Visual Studio Code only works for Windows OS then for the Mac OS developers they will need the XCode, and some alternatives for the Linux OS.
Activity 1: List your initial choice for your game development’s target platform, approach, and third-party IDE.
Lecture 4: As always, certain system requirements must be met for the Unreal Engine to be installed and used properly. Thus, the list of minimum and recommended hardware specifications is found below:
Hardware and Software Specifications
Minimum and recommended hardware specifications and necessary software for developing with Unreal Engine.
Unreal Engine has some specific hardware and software requirements for running the Editor. This page covers these requirements, as well as describing what is installed by the pre-requisites installer included in the Unreal Engine installer.
Recommended Hardware
Operating System | Windows 10 64-bit |
Processor | Quad-core Intel or AMD, 2.5 GHz or faster |
Memory | 8 GB RAM |
Video Card/DirectX Version | DirectX 11 or DirectX 12 compatible graphics card |
Minimum Software Requirements
Minimum requirements for running the engine or editor are listed below.
Running the Engine | |
Operating System | Windows 7 |
DirectX Runtime | DirectX End-User Runtimes (June 2010) |
The requirements for programmers developing with the engine are listed below.
Developing with the Engine | |
All ‘Running the Engine’ requirements (automatically installed) | |
Visual Studio Version | Visual Studio 2017 v15.6 or later (recommended)Visual Studio 2019Visual Studio 2015 is no longer supported in the current release of UE4. If you are developing with the current release of UE4, you need to use either VS 2017 or VS 2019. |
iOS App Development | |
iTunes Version | iTunes 11 or higher |
Software Installed by the Prerequisite Installer
The Unreal Engine includes a prerequisite installer that installs everything needed to run the editor and engine, including several DirectX components and Visual C++ redistributables. When you install Unreal Engine through the Epic Games Launcher, the Launcher automatically installs these prerequisites for you. However, you may need to run the prerequisite installer yourself if you build Unreal Engine from source, or if you need to prepare a computer with all the Unreal Engine prerequisites for a specific purpose—for example, if you are setting up a fresh computer to act as a Swarm Agent .
You can find the installer, with separate executables for 32-bit and 64-bit Windows, in the Engine/Extras/Redist/en-us folder under your Unreal Engine installation location.
If you use Perforce to get the Unreal Engine source code, you’ll also find precompiled binaries in the same Engine/Extras/Redist/en-us folder of the Perforce repository. The source for the installer is under Engine/Source/Programs/PrereqInstaller.
The following table lists the software that is installed by the prerequisite installer.
DirectX Components | Visual C++ Redists |
XInput 1.3 (April 2007) | Visual C++ 2010 CRT |
X3DAudio 1.7 (February 2010) | Visual C++ 2010 OpenMP library |
XAudio 2.7 (June 2010) | Visual C++ 2012 CRT |
D3D Compiler 4.3 (June 2010) | Visual C++ 2013 CRT |
D3DCSX 4.3 (June 2010) | Visual C++ 2015 CRT |
D3DX9 4.3 (June 2010) | Visual Studio 2019 redistributable |
D3DX10 4.3 (June 2010) | |
D3DX11 4.3 (June 2010) |
The most important DirectX components from that list are the XInput, X3DAudio, and XAudio dependencies. These aren’t included in standard installations of DirectX (and aren’t distributed with Windows by default), so they have to be installed manually or distributed with the application.
Graphics Card Drivers
We currently recommend using the latest stable releases from each card manufacturer:
Performance Notes
This list represents a typical system used at Epic, providing a reasonable guideline for developing games with Unreal Engine 4:
- Windows 10 64-bit
- 64 GB RAM
- 256 GB SSD (OS Drive)
- 2 TB SSD (Data Drive)
- NVIDIA GeForce GTX 970
- Xoreax Incredibuild (Dev Tools Package)
- Six-Core Xeon E5-2643 @ 3.4GHz
If you don’t have access to Xoreax Incredibuild (Dev Tools Package), we recommend compiling with a machine having 12 to 16 cores; however, we encourage you to read the Hardware Benchmarks (2017) reference to learn more about compiling with and without XGE.
Lecture 5: After complying with the recommended or at least the minimum system requirements one can proceed installing the Unreal Engine by following the steps below:
Installing Unreal Engine
Steps for installing Unreal Engine.
Click for full image.
By the end of this tutorial, you’ll be able to:
- Create an Epic Games Account (if you don’t already have one)
- Download and Run the Installer (Epic Games Launcher Set-Up Program)
- Sign into the Epic Games Launcher
- Install Unreal Engine
- Launch Unreal Engine
The Epic Games Launcher enables users to conveniently download and install updates for UE4.
If you already have an Epic Games account, skip ahead to learn about Downloading and Running the Installer
Creating an Epic Games Account
In order to run the Epic Games Launcher, you need to have a valid Epic Games account.
- Navigate to UnrealEngine.com
- Click Get Started Now.
Click for full image. - Fill-out the Create Account form and click the Create Account button. Make sure to read through our terms of service prior to signing up.
Click for full image. - Read our Unreal Engine End User License Agreement (EULA) prior to clicking the Accept button (pictured below).
Refer to our EULA FAQ if you have additional questions about the EULA’s terms and conditions. - Click the Proceed to Download button.
Downloading and Running the Installer
With a valid Epic Games account, you’re able to download our installer (Epic Games Launcher Setup Application).
- Click the Download button for the desired operating system.
- Once the download is complete, Run the installer.
- Click the Install button when the Epic Games Launcher Setup dialog box appears.
Signing into the Epic Launcher
After the set-up program installs the Epic Games Launcher on your machine, use your Epic Games account credentials to login.
Click for full image.
Installing Unreal Engine
Now that you’ve signed into the Epic Games Launcher, you’re ready to install UE4.
Space Requirements: Unreal Engine uses approximately eight gigabytes of disk space for every version of the engine that is installed on a machine. Make sure you have plenty of disk space prior to installing UE4.
- Click the Unreal Engine tab inside the Epic Games Launcher Loading Screen.
Click for full image. - Click the Install Engine button to download and install the latest version of Unreal Engine.
Click for full image. - Choose a local for the Unreal Engine installation or accept the default location and click Install. Depending on your system specifications, downloading and installing Unreal Engine will take between 10-40 minutes.
Click for full image.
Launching Unreal Engine
After the Epic Games Launcher successfully downloads and installs Unreal Engine, you’re ready to click the Launch button.
Click for full image.
Congratulations! You’ve learned how to:
✓ Create an Epic Games account (if you didn’t already have one)
✓ Download and Run the Installer (Epic Games Launcher Set-Up Program)
✓ Sign into the Epic Games Launcher
✓ Install Unreal Engine
✓ Launch Unreal Engine
Now, you’re ready to start using Unreal Engine.
Lecture 6: After installing the Unreal Engine one can install the Visual Studio in Windows OS as stated below, only if applicable:
Setting Up Visual Studio for Unreal Engine
Tips, tricks, and techniques for setting up Visual Studio to work with Unreal Engine.
Unreal Engine (UE) is designed to integrate smoothly with Visual Studio (VS), allowing you to make code changes quickly and easily in your projects and immediately see results upon compilation. Setting up VS to work with UE can help improve efficiency and the overall user experience for developers using UE.
In this document, we will cover the basics for setting up your Unreal Engine-to-Visual Studio workflow. While this document focuses on using the most recent versions of UE and VS, you can look at our Visual Studio Legacy Reference Page for help using older versions of UE and VS.
Before Setting-up your Unreal Engine-to-Visual Studio Workflow
The following table lists which versions of VS are integrated with the binary version of UE.
Unreal Engine Version | Visual Studio Version |
4.25 or Later | VS 2019 (Default) |
4.22 or Later | VS 2017 / VS 2019 |
4.15 or Later | VS 2017 |
4.10 to 4.14 | VS 2015 |
4.2 to 4.9 | VS 2013 |
Run the Unreal Engine Prerequisite Installer
When installing UE from the Epic Launcher–or if you clone it from GitHub–the UE prerequisite installer runs automatically. However, if you install or sync UE from Perforce you will need to manually run the prerequisite installer. You need to do that before running any UE tools you have built locally. This installer is located at [UERootLocation]\Engine\Extras\Redist\en-us] in the code base.
Options for a New Visual Studio Installation
If you are installing VS for the first time, you will want to make sure that you have the following options enabled.
C++ Tools
To add C++ tools to your VS installation, make sure you select Game development with C++ under Workloads, as well as these additional options.
- C++ profiling tools
- C++ AddressSanitizer (optional)
- Windows 10 SDK (10.0.18362 or Newer)
Include the UE Installer
To include the UE installer when installing VS, locate the Summary sidebar on the right, expand Game Development with C++, and under Optional make sure the check box for Unreal Engine installer is enabled.
Recommended Settings
The following are recommended settings for developers using VS with UE.
If our version of VS looks a little different, it’s because we have changed the theme to Dark. You can do this by going to Tools > Options > Environment > General > Color theme.
Increase the Width of Solution Configurations Dropdown Menu
- Right-click on the toolbar and select Customize at the bottom of the menu that appears.
- Click on the Commands tab and select the Toolbar radio button.
- In the dropdown next to the Toolbar, choose Standard.
- In the Preview list, select the Solution Configurations control (you may need to scroll down) and then click Modify Selection.
- Set the Width to 200. Then click OK.
- Click Close on the Customization . Your toolbar should update immediately.
Add the Solution Platforms Dropdown
- Locate the far right button on the Standard toolbar (if you hover the mouse over it, it’s labeled Standard Toolbar Options).
- Click the dropdown button, choose Add or Remove Buttons, and then click on Solution Platforms to add the menu to the toolbar (this may be enabled by default).
Turn Off the Error List Window
Typically, the Error List window pops up automatically when you have an error in your code. However, when working with UE, the Error List window can display false error information. It’s best to dble the Error List window, and use the Output window to see real code errors when working with UE. The following steps show you how to turn off the Error List window.
- Close the Error List window if it is open.
- From the Tools menu, open the Options dialog.
- Select Projects and Solutions and dble Always show Error List if build finishes with error.
- Click OK.
Here are some other configuration settings you may find useful:
- Turn off Show Inactive Blocks. If you don’t, many chunks of code may appear grayed out in the text editor. Go to Tools > Options > Text Editor > C/C++ > View to turn off this setting
- Set Dble External Dependencies Folders to True to hide unneeded folders in the Solution Explorer. Find Dble External Dependencies Folder in Tools > Options > Text Editor > C/C++ > Advanced.
- Turn off Edit & Continue features, you do not need them. Go to Tools > Options > Debugging > Edit and Continue.
- Turn on IntelliSense.
Debugging
For more information about Debug Support, check out the debugging section of our Visual Studio Legacy Page.
Activity 2: Check your computer setup if it can pass the recommended or at least minimum system requirements.
Activity 3: Install the Unreal Engine in your computer setup.
Activity 4: Install the Visual Studio IDE or its equivalent in your computer setup.
Lecture 7: Blueprints Visual Scripting
The Blueprints Visual Scripting system in Unreal Engine is a complete gameplay scripting system based on the concept of using a node-based interface to create gameplay elements from within Unreal Editor. As with many common scripting languages, it is used to define object-oriented (OO) classes or objects in the engine. As you use UE4, you’ll often find that objects defined using Blueprint are colloquially referred to as just “Blueprints.”
This system is extremely flexible and powerful as it provides the ability for designers to use virtually the full range of concepts and tools generally only available to programmers. In addition, Blueprint- specific markup available in Unreal Engine’s C++ implementation enables programmers to create baseline systems that can be extended by designers.
Lecture 8: Blueprints Quick Start Guide
This quick start guide will walk you through building an Actor in the level with different Components, then turning it into a Blueprint Class you can add launching behavior to so your Character will fly around the level! Making it into a Blueprint Class also means you can create as many launchpads in your world as you want, just by dragging into the level from the Content Browser.
- Lecture 9: – Required Project Setup
- From the New Project tab of the Unreal Project Browser, create a new project from the
Games category that uses the following settings:
- Side Scroller
- Blueprint
- With Starter Content
- Choose whatever scalability and quality settings work best for your setup.
If you are unsure of what settings are right for you, you can find more information in the Project Settings section.
- Name your project, then create it by clicking the Create Project button.
You should now be ready to jump into and start adding to the side-scroller level that appears.
Finished Step
1 Lecture 10: – Construct your Launchpad
In the Level Editor, you will build a launchpad, then convert it to a Blueprint Class so you can add your gameplay behavior to it.
- First, move around in the viewport until you are looking at the top platforms in the level.
We are going to create the container to hold all the parts of our launchpad by using the Empty Actor. The two parts (or Components) you will need are a shape to represent the launchpad, and a trigger for when the character overlaps it.
- In the Main Toolbar, press the Modes button, and from the dropdown click on Select to display the Place Actors panel.
- In the Place Actors panel, click on Basic, then find the Empty Actor.
- Drag it into the level so that it is sitting on one of the top platforms.
- Now that you have the Actor selected in the level, its properties are visible in
the Details panel. At the top of the Details panel, you can rename it. Go ahead and click in the box to enter a new name, like LaunchPad.
- In the Details panel, click the Add Component button, then select Cube under Common.
- Click and drag the newly added Cube to the DefaultSceneRoot to make the Cube the new root.
- With the Cube component selected, change the Scale to (X: 1.0, Y: 1.0, Z: 0.1)
- Now, we will add a Box Collision Component, which will fire off an event whenever something overlaps it. In the Details panel, click the Add Component button, then (under Collision) select Box Collision.
- Change the Box Collision scale to ( X: 1.25, Y: 1.25, Z: 9.75) and location to ( X: 0, Y: 0, Z: 200) so the box covers and extends above the launch pad.
If at any time you need to change your Actor’s properties, you can click on LaunchPad (Instance), found in the Details panel, under the Add Components button.
Now that you have your Actor the way you want it, we will turn it into a Blueprint Class. You can add more components inside the Blueprint Editor, and tweak them just like you can in the Level
3 Lecture 11: – Convert Your Actor to a Blueprint Class
When you make changes inside the Blueprint, each time you make a new launchpad in the Level, it will have the look and feel that you have created in the Blueprint Editor. While you could simply duplicate your LaunchPad Actor around the level, any changes you make on a particular launchpad would only affect that one copy.
- In the Details panel, click on the Blueprint/Add Script button.
- The Create Blueprint from Selection dialog box appears. We are going to edit the default path of the blueprint.
- Change the path from Game/SideScrollerBP to Game/SideScrollerBP/Blueprints.
- At this point, you could rename your Blueprint, or leave it as the default LaunchPad_Blueprint.
- Click on Create Blueprint.
Your Blueprint is now visible in the Content Browser. Right now, you could drag and drop from the Content Browser into the level to create lots of copies of your platform mesh and trigger, but there will not be any behavior on it yet. In the next step, you will start setting up the graph nodes inside of your Blueprint to launch your Character when it crosses the launchpad.
3rd Floor, DPT Building Matina Campus, Davao City
Telefax: (082) Phone No.: (082)300-5456/300-0645 to 48 Local 116
Finished Step
3 Lecture 12: – Create Your Starting Point
To start adding behavior to your Blueprint Class, you will need to open it in the Blueprint Editor.
- Double-click the Blueprint Class in the Content Browser.
- The Blueprint Editor will open, and you can see your Cube and Box components in a viewport. At this point, if you adjust the Box Component’s placement, it will be applied to all launchpads you make from this Blueprint Class. Just like when you were working with components on your LaunchPad Actor, you can select the Box component in
the Components list and adjust the location. Try a location of (X: 0, Y: 0, Z: 350).
- Docked next to the Viewport tab is a Construction Script tab and an Event Graph tab. Since you are going to be creating gameplay behavior, you should start with the Event Graph. Click on that tab now.
Events are the starting point of your Blueprint graph’s execution, and can be associated with a number of different gameplay situations. A selection of the most commonly used events are visible right away, seen as translucent Event nodes. Though certainly useful for many of your Blueprint graphs, we will be making one of our very own.
- We want an event that will execute when anything overlaps our Box component. First, select the Box component in the Components tab.
- Right-click in an empty spot in your graph to bring up the context menu of nodes you could add to the graph.
To move around in the graph, right-click and drag around. At this point, you could drag the graph to the left, moving the pre-placed event nodes off the left side of the screen and creating more blank space to create your launchpad logic in.
- We are adding an event for this Component, so expand the Add Event for Box dropdown, and then Collision. You could also use the search box, using “Component Begin Overlap” to filter the menu.
- Select On Component Begin Overlap.
Your graph now has an OnComponentBeginOverlap node. Any nodes connected to this event will execute when something overlaps the Box component of your launchpad.
In the next step of this guide, you will begin connecting nodes to the output pins of this node, and learn more about working with nodes in Blueprints.
3 Lecture 13: – Test the Overlapping Actor
Right now, that OnComponentBeginOverlap event will execute when anything overlaps the Box trigger. We only want to actually execute our launching behavior, though, if the overlapping thing is our avatar, or Pawn. Think of it as asking “Is the Actor overlapping the Box trigger the same Actor as our Pawn?”
We will do that by working with the Other Actor output from the OnComponentBeginOverlap event.
- From the OnComponentBeginOverlap event, click on the Other Actor pin , drag into an empty spot on the graph, and release to display the context menu.
The context menu is adaptive, filtering by the pin you are currently working with to show you only nodes that are compatible.
- Type = into the search box to filter the available nodes, then select Equal (Object).
We could set Side Scroller Character as the other input to the Equal node, but then if we changed the Character we were using, we would need to re-open this Blueprint and manually update that. Instead, let’s get a reference to the current Pawn we are using.
- Right-click in an empty part of the graph to bring up the context menu.
- Type Player Pawn in the menu’s search box, then (under Game) select Get Player Pawn.
- Connect the Return Value output on Get Player Pawn to the second input on the Equal node.
Now that we have got a node that will tell us if the Other Actor is the Pawn our player controls, we will use the answer to change the execution flow of our graph. That is, we will direct the execution flow as it leaves the On Component Begin Overlap node. For that, we want to use a Flow Control node, specifically the Branch node.
- Drag off of the execution pin on the OnComponentBeginOverlap node and release in an empty part of the graph.
- Type Branch in the search, then select Branch from the context menu.
- Connect the output pin of the Equals node to the input Boolean pin on the Condition node.
The graph is now ready for you to set up different behavior to execute depending on whether the overlapping Actor is your Pawn or not. In the next step, we will do just that, and set up Blueprint nodes to launch our Character if the result of the Equals comparison is True.
Finished Step
4 Lecture 14: – Launch Your Character
Our launchpad is going to work by using a function called Launch Character. The Launch Character function adds the velocity you specify to the Character’s current velocity, allowing you to throw it in whichever direction you would like. It only works on Characters, though, so we need to make sure that our Pawn (avatar) is a Character (humanoid avatar).
We do this by casting. Casting attempts to convert your input into a different type, so you can access specific functionality that is only allowed for that particular type. It will succeed if your input is based on that type.
Everything you can place in your level is an Actor, in addition to any other specialized behavior added on later. That means that you can get a reference to anything in your level, cast it
to Actor, and it will succeed. However, not everything in your level is the Pawn representing you in the game, so casting something to Pawn may or may not succeed.
- From the Get Player Pawn node, drag off of the Return Value pin.
- Begin typing Cast to Character in the search field of the context menu to find the node of the same name.
- From the Cast to Character node, drag off of the As Character pin.
- Type “Launch” into the search box, then select Launch Character in the context menu.
Click image for full size.
Notice that the output execution pin for successfully casting automatically connected to the input execution pin of Launch Character.
- Type 3000 into the Z field of the Launch Character node.
- Finally, connect the Branch node True execution pin to the Cast to Character node’s input execution pin, so that Cast to Character and Launch Character only occur if the overlapping Actor is our Pawn.
Click image for full size.
At this point, Compile and Save the Blueprint using the toolbar buttons, then close the Blueprint Editor.
- Drag several of the launchpads into your Level from the Content Browser.
Click on Play in the toolbar, then run around the Level (using WASD) and jump (using the Spacebar). Land on one of the platforms and watch as you go flying through the air!
Lecture 15: 7 – On Your Own!
Using what you have learned over the course of this Quick Start guide, try to do the following:
- Play a sound when your Character is launched using an Audio Component .
- Create a variable to store your Launch Velocity, and expose it so you can set it on each copy
in the level.
- Add a Particle System Component to your Blueprint and use one of the Particle Systems from
the Starter Content.
- Add an Arrow Component and use its rotation to define the direction to launch the character.
- Using Timelines , add some animation to the Box Mesh to represent it launching the
character.
Activity 5: Do 1 – Required Project Setup.
Activity 6: Do 2 – Construct your Launchpad.
Activity 7: Do 3 – Convert Your Actor to Blueprint Class
Activity 8: Do 4 – Create Your Starting Point
Activity 9: Do 5 – Test the Overlapping Actor
Activity 10: Do 6 – Launch Your Character
Activity 11: Do 7 – On Your Own!
Lecture 16: Blueprint Overview
The Blueprints Visual Scripting system in Unreal Engine is a complete gameplay scripting system based on the concept of using a node-based interface to create gameplay elements from within Unreal Editor. As with many common scripting languages, it is used to define object-oriented (OO) classes or objects in the engine. As you use UE4, you’ll often find that objects defined using Blueprint are colloquially referred to as just “Blueprints.”
This system is extremely flexible and powerful as it provides the ability for designers to use virtually the full range of concepts and tools generally only available to programmers. In addition, Blueprint- specific markup available in Unreal Engine’s C++ implementation enables programmers to create baseline systems that can be extended by designers.
Does that mean Blueprints are a replacement for UnrealScript? Yes and no. Gameplay programming and everything that UnrealScript was used for in the past can still be handled through code using C++. At the same time, while Blueprints are not meant as a replacement for UnrealScript, they do serve many of the same purposes that UnrealScript handled, such as:
- Extending classes
- Storing and modifying default properties
- Managing subobject (e.g. Components) instancing for classes
The expectation is that gameplay programmers will set up base classes which expose a useful set of functions and properties that Blueprints made from those base classes can use and extend upon.
The table below provides a comparison of how various aspects would be handled in UnrealScript (from Unreal Engine 3), C++, and Blueprints to help those transitioning from previous versions of the engine as well as show how native code and Blueprints compare.
UnrealScript (UE3) | Blueprints (UE4) |
.uc file | Blueprint Asset |
UClass | UBlueprintGeneratedClass |
extends [ClassName] | ParentClass |
Variable | Variable |
Phone No.: (082)300-5456/300-0645 to 48 Local 116
UnrealScript (UE3) | Blueprints (UE4) |
Function | Graphs/Events |
defaultproperties{} | Class Defaults |
Default Components | Components List |
Types of Blueprints
Blueprints can be one of several types that each have their own specific use from creating new types to scripting level events to defining interfaces or macros to be used by other Blueprints.
Blueprint Class
A Blueprint Class, often shortened as Blueprint, is an asset that allows content creators to easily add functionality on top of existing gameplay classes. Blueprints are created inside of Unreal Editor visually, instead of by typing code, and saved as assets in a content package. These essentially define a new class or type of Actor which can then be placed into maps as instances that behave like any other type of Actor.
Data-Only Blueprint
A Data-Only Blueprint is a Blueprint Class that contains only the code (in the form of node graphs), variables, and components inherited from its parent. These allow those inherited properties to be tweaked and modified, but no new elements can be added. These are essentially a replacement for archetypes and can be used to allow designers to tweak properties or set items with variations.
Data-Only Blueprint are edited in a compact property editor, but can also be “converted” to full Blueprints by simply adding code, variables, or components using the full Blueprint Editor.
Level Blueprint
A Level Blueprint is a specialized type of Blueprint that acts as a level-wide global event graph. Each level in your project has its own Level Blueprint created by default that can be edited within the Unreal Editor, however new Level Blueprints cannot be created through the editor interface.
Events pertaining to the level as a whole, or specific instances of Actors within the level, are used to fire off sequences of actions in the form of Function Calls or Flow Control operations. Those familiar with Unreal Engine 3 should be very familiar with this concept as this is very similar to how Kismet worked in Unreal Engine 3.
Level Blueprints also provide a control mechanism for level streaming and Sequencer as well as for binding events to Actors placed within the level.
Blueprint Interface
A Blueprint Interface is a collection of one or more functions – name only, no implementation – that can be added to other Blueprints. Any Blueprint that has the Interface added is guaranteed to have those functions. The functions of the Interface can be given functionality in each of the Blueprints that added it. This is essentially like the concept of an interface in general programming, which allows multiple different types of Objects to all share and be accessed through a common interface. Put simply, Blueprint Interfaces allow different Blueprints to share with and send data to one another.
Blueprint Interfaces can be made by content creators through the editor in a similar fashion to other Blueprints, but they come with certain limitations in that they cannot:
- Add new variables
- Edit graphs
- Add Components
Blueprint Macro Library
A Blueprint Macro Library is a container that holds a collection of Macros or self-contained graphs that can be placed as nodes in other Blueprints. These can be time-savers as they can store commonly used sequences of nodes complete with inputs and outputs for both execution and data transfer.
Macros are shared among all graphs that reference them, but they are auto-expanded into graphs as if they were a collapsed node during compiling. This means that Blueprint Macro Libraries do not need
to be compiled. However, changes to a Macro are only reflected in graphs that reference that Macro when the Blueprint containing those graphs is recompiled.
Blueprint Utilities
A Blueprint Utility (or Blutility for short), is an editor-only Blueprint that can be used to perform editor actions or extend editor functionality. These can expose Events with no parameters as buttons in the UI and have the ability to execute any functions exposed to Blueprints and act on the current set of selected Actors in the viewport.
Blueprint Anatomy
The functionality of Blueprints is defined using various elements; some of which are present by default, while others can be added on an as-needed basis. These provide the ability to define Components, perform initialization and setup operations, respond to events, organize and modularize operations, define properties, and more.
Components Window
With an understanding of Components, the Components window inside the Blueprint Editor allows you to add Components to your Blueprint. This provides a means of adding collision geometry via CapsuleComponents, BoxComponents, or SphereComponents, adding rendered geometry in the form of StaticMeshComponents or SkeletalMeshComponents, controlling movement using MovementComponents, etc. The Components added in the Components list can also be assigned to instance variables providing access to them in the graphs of this or other Blueprints.
Construction Script
The Construction Script runs following the Components list when an instance of a Blueprint Class is created. It contains a node graph that is executed allowing the Blueprint Class instance to perform initialization operations. This can be extremely powerful as actions like performing traces into the world, setting meshes and materials, and so on can be used to achieve context-specific setup. For instance, a light Blueprint could determine what type of ground it is placed upon and choose the correct mesh to use from a set of meshes or a fence Blueprint could perform traces extending out in each direction to determine how long of a fence is needed to span the distance.
Event Graph
The EventGraph of a Blueprint contains a node graph that uses events and function calls to perform actions in response to gameplay events associated with the Blueprint. This is used to add functionality that is common to all instances of a Blueprint. This is where interactivity and dynamic responses are setup. For example, a light Blueprint could respond to a damage event by turning off its LightComponent and changing the material used by its mesh. This would automatically provide this behavior to all instances of the light Blueprint.
Functions
Functions are node graphs belonging to a particular Blueprint that can be executed, or called, from another graph within the Blueprint. Functions have a single entry point designated by a node with the
name of the Function containing a single exec output pin. When the Function is called from another graph, the output exec pin is activated causing the connected network to execute.
Variables
Variables are properties that hold a value or reference an Object or Actor in the world. These properties can be accessible internally to the Blueprint containing them, or they can be made accessible externally so that their values can be modified by designers working with instances of the Blueprint placed in a level.
Blueprint Modes
A Blueprint’s mode determines what is visible in its window. Although Level Blueprints contain only one mode, the Graph mode, Blueprint Classes contain three different modes:
- Default Mode – Where you set the defaults for the Blueprint.
- Components Mode – Where you add, remove, and modify the components that make up your Blueprint.
Basic Scripting
Blueprints provide a visual approach to a scripting language. As such, the system shares many of the nuances of a standard written scripting language, such as data typed variables, arrays, structs, etc.
Execution flow also works as it does in a typical scripting language, although Blueprints require explicit linear execution for each node. Each of the pages below go into more detail about different variable types, working with those variables, and execution of nodes within the graph.
Variables
Variables can be created in a variety of different types, including data types such as Boolean, integer, and float. They are color-coded for easy identification within your Blueprint. Blueprint variables can also be reference types for holding things like Objects, Actors, and Classes.
- Blueprint Variables
- Set and Get an Actor Reference
- Casting in Blueprints
- Blueprint Casting Example
Execution Flow
In Blueprints, the first node to execute is an event, and then execution flows through the white execution wire from left to right. You can visualize the execution flow while your game is running in the editor, which can help with debugging. Data also flows through wires colored to match the variable types. Input pins are evaluated when the node executes, tracing the data wires back from right to left until the final result is calculated and supplied to the node.
Nodes with execution pins (impure nodes) store the values of their output pins when they execute, while nodes without execution pins (pure nodes) reevaluate their outputs every time a node connected to their outputs executes.
- Events
- Custom Events
- Nodes
- Connecting Nodes Arrays & Structures
Arrays and structures are collections of multiple data types. They are available for more complex systems, and help with keeping like information together and streamlining processing of larger amounts of information.
- Blueprint Arrays
- Array Nodes
- Working with Arrays Advanced Containers
As of Unreal Engine, version 4.15, Blueprint Sets and Maps have both been added to the Blueprint Application Programming Interface (API). Although these containers offer some exciting opportunities for developers to get creative with how they store and access data, these containers are meant for those users who have an advanced level of expertise with Blueprints. Oftentimes, the container of choice will be Blueprint Arrays, but there are times when associative containers (such as Maps and Sets) can help you do some fun and exciting things with your in-game data.
Lecture 17: Anatomy of a Blueprint
Blueprint Classes
A Blueprint Class, often shortened as Blueprint, is an asset that allows content creators to easily add functionality on top of existing gameplay classes. Blueprints are created inside of Unreal Editor visually, instead of by typing code, and saved as assets in a content package. These essentially define a new class or type of Actor which can then be placed into maps as instances that behave like any other type of Actor.
Components
Blueprints do not always need to contain scripted behavior. For example, a lightpost in your level may not be interactive, and would just need a mesh to represent the post and a light.
Using Components to build up reusable Blueprints would accelerate your level design process. Of course, you could then work with those Components in a graph to allow your players to interact with the lights or have a time-of-day system adjust them accordingly.
Graphs
Graphs contain the design-time and game-time behavior of your Blueprints. The Construction Script runs following the Components list when an instance of a Blueprint Class is created, enabling you to dynamically adjust the look and feel of the new Object or Actor.
The EventGraph of a Blueprint contains a node graph that uses events and function calls to perform actions in response to gameplay events associated with the Blueprint. This is used to add functionality that is common to all instances of a Blueprint. This is where interactivity and dynamic responses are setup. For example, a light Blueprint could respond to a damage event by turning off
its LightComponent and changing the material used by its mesh. This would automatically provide this behavior to all instances of the light Blueprint.
Organizing and Reusing Script
As you create more script in your Blueprints, you may find there are certain sections of script you frequently reuse. Functions and Macros both enable you to reuse sections of script, although each method has different strengths and use cases. For more on the key differences
between Functions and Macros, see the Blueprint Best Practices guide .
Blueprint Workflow Tools
When working in Blueprints, commenting your graphs, searching through all the Blueprints in your project, and using breakpoints to debug systems are key tools available to you.
Lecture 18: Blueprints – How To’s Creating Blueprint Classes
You can create Blueprint Assets through the Content Browser or the Level Editor using any of the methods described in this document.
Creating Blueprint Assets in the Content Browser
The Content Browser features a dedicated Add New button for creating new Blueprint Assets in the current directory. You can also right-click in the Asset View or the Asset Tree to create a Blueprint Asset in the selected location.
Lecture 19: Using the Add New Button
- In the Content Browser, click the Add New button.
- Select Blueprint Class from the Create Basic Asset section of the dropdown menu.
You can create several different types of Blueprint Assets from the Blueprints option
under Create Advanced Asset.
- Choose a Parent Class for your Blueprint Asset. See Parent Classes for more information.
Lecture 20: Using the Asset View
- Right-click in the Asset View (right-hand panel) of the Content Browser to bring up the context menu.
- Select Blueprint Class under the Create Basic Asset section.
- Choose a Parent Class for your Blueprint.
See Parent Classes for more information on selecting a Parent Class.
Lecture 21: Using the Asset Tree
- Right-click on a folder in the Asset Tree (left-hand panel) of the Content Browser.
- In the context menu that appears, select New Asset, then select Blueprint Class.
- Choose a Parent Class for your Blueprint.
See Parent Classes for more information on selecting a Parent Class.
Creating in the Level Editor
You can create a Blueprint Asset from one or more selected Actors in the Level Editor. The Blueprint you create will contain your Actor (or Actors), and will maintain any property changes you have made to them in the Level Editor, as well as their spatial relationships to each other. With this feature, you can save multi-Actor systems into a single, reusable Asset.
- Select the Actor or Actors in the Level Editor viewport.
- In the Level Editor toolbar, click the Blueprints dropdown menu and choose Convert Selection to Blueprint Class.
If you have only one Actor selected, the Blueprint/Add Script button will appear in the Details panel. Since creating a Blueprint Asset from a single Actor requires less information from the user, you can use this button to save time by skipping directly to the New
Subclass menu.
- At this point, the editor will present three methods for creating a new Blueprint Asset from the selected Actor or Actors: New Subclass, Child Actors, and Harvest Components.
- After choosing a method, select the parent Actor class for your new Blueprint Asset from the list in the bottom portion of the window. If you are using the New Subclass method, the parent class will be further restricted to the class of the selected Actor or its subclasses.
- Once you have selected a method and chosen a parent class, your new Blueprint Asset will appear in the Content Browser.
New Subclass
New Subclass is only available if you have a single Actor selected. This method creates a Blueprint Asset as a subclass of your Actor or any of its subclasses, incorporating any changes you made to the Actor’s properties. This is the most straightforward method. The Blueprint Asset will preserve any changes you have made to the selected Actor’s properties.
Child Actors
The Child Actors method creates a Blueprint Asset based on any Actor class. The new Actor will have its default Components, and one additional Child Actor Component for each selected Actor in the Level Editor viewport. These Child Actor Components will preserve the changes you have made to the properties of the selected Actors.
Typically, users of this method choose the base Actor class, as this will not introduce any new behaviors or unneeded Components.
Harvest Components
The Harvest Components method creates a single Blueprint Asset based on any Actor class, then harvests the Components of all the selected Actors and attaches them to the new Actor. Use this method in cases where your Actors are primarily containers for their Components. For example, multiple Static Mesh Actors can combine efficiently into a single Actor with multiple Static Mesh Components, since they typically exhibit no behaviors other than rendering and possibly collision. However, AI-controlled characters generally need to remain as individual Actors, because they have Actor-level autonomy in their behaviors and may require individual control of Components and access to Component data.
Creating in the Class Viewer
The Class Viewer can also create Blueprint Assets. When using the Class Viewer, it can be helpful to filter the displayed classes as follows:
- In the Class Viewer toolbar, select Filters.
- In the Filters menu, select Blueprint Bases Only.
To create a new Blueprint Asset, select to the class you would like to use as a base. In this example, CameraActor is our base class.
- Click the dropdown to the right of your chosen base class, or right-click on the class directly.
- The Create Blueprint option will appear in a context menu. Click this to open the dialog for creating a Blueprint.
- Enter a name for your Blueprint Asset, and select the folder where you want to save it.
- Click “Create [Path]/[Name]” at the top of the Blueprint creation dialog. This will create your Blueprint Asset and open it in the Blueprint Editor.
Complete the process by saving your new Blueprint Asset. To do this, click Save in the Blueprint Editor toolbar.
Activity 12: Create a basic game function just by using plain English in a list form
Activity 13: Create a concept map or tree diagram based on your created game function.
Activity 14: Create your own simple Blueprint based on your created concept map or tree diagram.
Activity 15: Replicate an existing Blueprint that you can find in the internet for you to get more familiar about it.
Activity 16: Develop your own game using the Unreal Engine in the approach you want to.
Activity 17: Create a PowerPoint about your developed game.
Lecture 22: Make sure you add credits add the menu and not forget to put your name on it for the ownership and copyright purposes.
Lecture 23: Secure your files and folders so that it will not get lost and you will always have all the game files from the oldest version to the newest. Always save it in a physical hard drive and in the cloud drive as a backup.
Lecture 24: You can add your final game output as one of your portfolio which can be listed in your CV or resume to boost your probability to land a job, work, employment, or careers.
Closing: Thank you for taking this course and hopefully you are able to learn a lot!
Assignment:
Video record in mp4 format while doing all the tasks found in this link: https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Blueprints/QuickStart/index.html
Also, create a video slide show in mp4 (not PPT slideshow) about everything found in this link: https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Blueprints/Overview/index.html