Facilitated by Rafael Castillo
Unreal Engine is the world’s most open and advanced real-time 3D creation tool. Continuously evolving to serve not only its original purpose as a state-of-the-art game engine, today it gives creators across industries the freedom and control to deliver cutting-edge content, interactive experiences, and immersive virtual worlds.
Getting Ready for Unreal
Can you spare 20 GB on your machine? That is approximately how much space you need to download the Unreal engine. Let’s go!
1. Download and install the Epic Games launcher using the publishing license.
2. Sign into the Epic Games launcher or create an Epic Games account.
3. Click Unreal Engine Tab inside the Epic Games launcher.
4. A button should appear in yellow to install the engine.
5. Download and install the latest version of the Unreal engine. You can download using the “publishing” license.
Some of the terms being thrown around during the workshop may be foreign to you, so it’s good to read up on these terms before diving into Unreal!
An Actor is any object that can be placed into a level. Actors are a generic Class that support 3D transformations such as translation, rotation, and scale. Actors can be created (spawned) and destroyed through gameplay code (C++ or Blueprints). In C++, Actor is the base class of all Actors
AI, or Artificial intelligence, is behavior controlled by a set of programmed instructions, instead of by human input. For example, non-player characters (NPCs) are controlled with AI.
Base building blocks in the Unreal Engine are called Objects and contain a lot of the essential “under the hood” functionality for your game assets. Just about everything in Unreal Engine 4 inherits (or gets some functionality) from an Object. In C++, UObject is the base class of all objects; it implements features such as garbage collections, metadata (UProperty) support for exposing variables to the Unreal Editor, and serialization for loading and saving.
A Class defines the behaviors and properties of a particular Actor or Object used in the creation of an Unreal Engine game. Classes are hierarchical, meaning a Class inherits information from its parent Classes (the Classes it was derived or “sub-classed” from) and passes that information to its children. Classes can be created in C++ code or in Blueprints.
The Blueprint Visual Scripting system (or Blueprints for short) is a visual scripting system based on the concept of adding and connecting nodes together to create gameplay elements all from within the Unreal Editor. Flexible and powerful enough to create an entire game without ever having to touch a single line of code, Blueprints provide the ability to use virtually the full range of concepts and tools generally only available to programmers.
A Level is a user defined area of gameplay. Levels are created, viewed, and modified mainly by placing, transforming, and editing the properties of the Actors it contains. In the Unreal Editor, each Level is saved as a separate .umap file, which is also why you will sometimes see them referred to as Maps.
Pawns are a subclass of Actor and serve as an in-game avatar or persona, for example the characters in a game. Pawns can be controlled by a player or by the game’s AI, in the form of non-player characters (NPCs).
When a Pawn is controlled by a human or AI player, it is considered as Possessed. Conversely, when a Pawn is not controlled by a human or AI player it is considered as Unpossessed.
A Character is a subclass of a Pawn Actor that is intended to be used as a player character. The Character subclass includes a collision setup, input bindings for bipedal movement, and additional code for movement controlled by the player.
A Material is an asset that can be applied to a mesh to control the visual look of the scene. At a high level, it is probably easiest to think of a Material as the “paint” that is applied to an object. But even that can be a little misleading since a Material literally defines the type of surface from which your object appears to be made. You can define its color, how shiny it is, whether you can see through the object, and much more.
In more technical terms, when light from the scene hits the surface, a Material is used to calculate how that light interacts with that surface. These calculations are done using incoming data that is input to the Material from a variety of images (textures) and math expressions, as well as from various property settings inherent to the Material itself.
Unreal Engine 4 utilizes a physically-based shading model. This means that rather than defining a Material using arbitrary properties (such as Diffuse Color and Specular Power), you instead use properties more easily relatable to the real world. These include Base Color, Metallic, Specular, and Roughness.
Collision is a programmatic way of preventing objects from overlapping during a physics simulation, giving the illusion of solidity in an object. May also refer to a Collision mesh, which is a simplified version of the geometry, generally existing as an invisible shell or hull around the mesh. This simplification aids in performance, allowing complex objects with high polygon counts to calculate their collisions with simpler geometry, which is faster to process.
“Collision” can also be non-blocking (overlapping). In this case, instead of preventing objects from interpenetrating each other, the collision can simply register that the objects are interpenetrating (overlapping).
A Component is a piece of functionality that can be added to an Actor. Components cannot exist by themselves, however when added to an Actor, the Actor will have access to and can use functionality provided by the Component.
For example, a Spot Light Component will allow your Actor to emit light like a spot light, a Rotating Movement Component will make your Actor spin around, or an Audio Component will make your Actor able to play sounds.
Physical Materials are used to define the response of a physical object when interacting dynamically with the world. Physical Materials are fairly easy to use. Creating one will give you a set of default values, identical to the default physical material that is applied to all physics objects. Examples of this would be a character’s dead body (ragdoll), a movable crate, and so on.
Static is one of three possible Mobility property settings. This setting can be applied to both Static Mesh and Light Components.
Static Lights are lights that cannot be changed or moved in any way at runtime. They are calculated only within Lightmaps, and once processed, have no further impact on performance. Movable objects cannot integrate with static lights, so the usefulness of static lights is limited.
Of the three light mobilities, Static lights tend to have medium quality, lowest mutability, and the lowest performance cost.
Textures are images that are used in Materials. They are mapped to the surfaces the Material is applied to. Either Textures are applied directly – for example, for Base Color textures – or the values of the Texture’s pixels (or texels) are used within the Material as masks or for other calculations. In some instances, Textures may also be used directly, outside of materials, such as for drawing to the HUD.
For the most part, Textures are created externally within an imageediting application, such as Photoshop, and then imported into Unreal Editor through the Content Browser. However, some Textures are generated within Unreal, such as Render Textures. These generally take some information from the scene and render it to a Texture to be used elsewhere.
Below is the project that is being shown in the Unreal workshops. Download it below from Google Drive if you wish to analyze the project.
Resources & Links
Below are links that go more into depth with the workings on Unreal. We have also provided PowerPoints that were presented during our meetings.
Jetbrains UE4 Tutorials
Jetbrains Resharper is a great free resource for Unreal Engine 4, but you have to obtain a license. You should be able to get an educational license with your student email.
Meta Human Creator
With the unreal metahuman creator you can create your very own digital human to use in your unreal projects. Request early access! It allows users to create their very own photorealistic digital humans. Imagine the opening of an RPG game where you customize your characters look!
Epic Games created a game called Paragon that did not succeed. As a result, they have recycled the assets and provided them to Unreal Engine users for FREE!