Game Production
Game Production
When you launch Unreal Engine, you will see a screen where you can choose to open
an existing Unreal project or create something new. To create a first-person project:
1. From New Project Categories, select the Games category, then click Next.
1. From New Project Categories, select the Games category, then click Next.
The flying template feature a spaceship with the camera positioned behind the ship represented by
a static mesh. The keyboard ,controller or virtual joystick controls the pitch and yaw of the ship as
well as providing a means to allow speed control of the ships forward movement the level is
populated with several clusters of boxes that block the movement of the ship.
Puzzle
The puzzle template features a simple grid of blocks. The camera is postioned overhead of the
blocks. The user can interact with these blocks by clicking using either the mouse or touch screen.
When a block is clicked its color changes and a score, which shown using a text component within
the level is increased.
Rolling
The rolling template features a physics-based rolling ball which can be rolled in any direction using
either a keyboard, controller or virtual joystick on touch devices. The camera is positioned above and
behind the ball and follows the movement of the ball. Within the level are some ramps, several
physics cubes in the level that can be knocked over with the ball as well as some
Top Down
The top down template features a playable character where the camera is positioned behind and
above the avatar at greater distance than in third person perspective. The player is controlled by
using the mouse or touchscreen to click on the required destination and uses the navigation system
to facilitate the character movement. This perspective is often used in action role playing games.
The twin stick shooter template features a playable character where the camera is positioned almost
directly above the character. Control of the character is with either keyboard, controller or virtual
joystick on a touch device. Movement and firing, which are both on the X/Y axis are controlled
independantly allowing for firing in a different direction than which the character is facing. The level
contains several cubes that are affected by the projectiles and several that are not.
Handheld AR
A starting point for building Augmented Reality applications for Android and iOS devices. Includes
runtime logic for toggling AR mode on and off, debug information regarding plane detection,
example code for hit detection and handling light estimation.
Side Scroller
This side scroller template features an animated skeletal mesh character with a camera positioned at
the character's side. Movement, which can be controlled with either keyboard, controller or virtual
joystick on a touch device is limited to two dimensions: forward, backward and jumping. A number
of ledges are featured in the level and the character can jump between them.
2D Side Scroller
This is a paper 2D version of the Side Scroller template. It features a 2D sprite character that uses
texture based animation where the camera is positioned at the avatar's side. Character movement,
which can be controlled with either keyboard, controller or virtual joystick on a touch device, is
limited to two dimensions: forward, backward and jumping. A number of ledges are featured in the
level and the character can jump between them.
Vehicle
The vehicle template features a simple physics-driven vehicle. Vehicle movement can be
controlled with either keyboard, controller or virtual joystick on a touch device. The template
features 2 camera views - On is positioned above and behind the vehicle, whilst the other is
positioned inside. When using the inside view the mouse or touchscreen or a HMD device. There is
also a HUD both in and out of the car that shows the current gear and speed. The level features a
smooth ramp, a slightly irregluar one, some objects that can be knocked over and a
post which cannot.
Virtual Reality
Blueprint Virtual Reality Template using OpenXR for Desktop, Console, and Mobile. The template
features teleport locomotion, snap turning, grabbable objects, grabbable and interactive objects,
Google Resonance spatialized audio, and a VR Spectator Camera
VehicleAdvanced
The vehicle advanced template features a more complex vehicle than the regular vehicle template.
Vehicle movement can be controlled with either keyboard, controller or virtual joystick on a touch
device. The template features 2 camera views - One is positioned above and behind the vehicle,
whilst the other is positioned inside. When using the inside view you can look around using the
mouse or touchscreen or a HMD device. The vehicle itself features working double wishbone
suspension. There is also an engine sound in this template. There is also a HUD both in and out of
the car that shows the current gear and speed. The level contains a landscape with rough terrain as
well as a simple track that features bumps, ramps and loop the loops.
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 image-editing 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.
A single material may make use of several textures that are all sampled and applied
for different purposes. For instance, a simple material may have a Base Color
texture, a Specular texture, and a normal map. In addition, there may be a map for
the Emissive and Roughness stored in the alpha channels of one or more of these
textures.
You can see that, while these all share the same layout, the colors used are specific
to the purpose of the texture.
A Static Mesh is a piece of geometry that consists of a set of polygons that can be
cached in video memory and rendered by the graphics card. This allows them to be
rendered efficiently, meaning they can be much more complex than other types of
geometry such as Brushes. Since they are cached in video memory, Static Meshes
can be translated, rotated, and scaled, but they cannot have their vertices animated
in any way.
Static Meshes are the basic unit used to create world geometry for levels created in
the Unreal Engine. These are 3D models created in external modeling applications
(such as 3dsMax, Maya, Softimage, and so on) that are imported into the Unreal
Editor through the Content Browser, saved in packages, and then used in various
ways to create renderable elements. The vast majority of any map in a game made
with Unreal will consist of Static Meshes, generally in the form of Static Mesh Actors.
Other uses of Static Meshes are for creating movers such as doors or lifts, rigid body
physics objects, foliage and terrain decorations, procedurally created buildings,
game objectives, and many more visual elements.
Skeletal Meshes are made up of two parts: A set of polygons composed to make
up the surface of the Skeletal Mesh, and a hierarchical set of interconnected bones
which can be used to animate the vertices of the polygons.
Skeletal Meshes are often used in Unreal Engine 4 to represent characters or other
animating objects. The 3D models, rigging and animations are created in an external
modeling and animation application (3DSMax, Maya, Softimage, etc), and are then
imported into Unreal Engine 4 and saved into packages by using Unreal
Editor's Content Browser.
The Illuminating Engineering Society (IES) has defined a file format which describes
a light's distribution from a light source using real world measured data. These IES
Photometric files, or IES Profiles, are a lighting industry standard method of
diagramming the brightness and falloff of light as it exists a particular real world
light fixture. It enables them to account for reflective surfaces in the light fixture,
the shape of the light bulb, and any lensing effects that happens. This type of
photometric lighting is primarily used in Enterprise fields (such as Media and
Entertainment or Architecture and Manufacturing), but is often used in games
production to achieve realistic lighting effects, too.
In Unreal Engine 4 (UE4), IES Light Profiles are a 1D texture (gradient). However,
they are not actual texture files. The curve defines light intensity in an arc that
"sweeps" around an axis to make Point, Spot, and Rect Lights appear to be casting
light realistically based on the provided real-world data. The curve works like a
multiplier for the overall brightness of the light, as if you were projecting a texture
from a light, but without the overhead of using a texture, or the errors that can
occur at some angles.
In the examples below, the IES Profile is assigned to a Point Light and the diagram
in the top left of each panel shows the shape of the given IES Profile.
Unreal Engine 4's audio system provides tools and features to mold the sounds in
the game to give them the desired feel. This all starts with your audio source files.
Either as mono or stereo files, they can be quickly imported into Unreal Editor 4 and
begin breathing more life into your creations. Below are the basic requirements for
your audio content and a quick import guide.
NVIDIA PhysX APEX has two file types that Unreal Editor can import, .APX and .APB.
Both cloth and destructible meshes can be exported as these file types, but only
destructible meshes can be import via the Content Browser. Cloth assets will need
to be imported via Persona.
Creating sprites
A Sprite in Paper 2D is a Texture Mapped Planar Mesh and associated Material that
can be rendered in the world, created entirely within Unreal Engine 4 (UE4). In
simpler terms, it's a quick and easy way to draw 2D images in UE4.
1. Click the Add New button in the Content Browser, then under Paper2D,
select Sprite.
You can also Right-click in the Content Browser to bring up the same context
menu.
2. Name the new Sprite asset.
3. The Sprite has been created but has not been saved yet (indicated by the
asterisk in the lower-left corner).
Click the Save All button to save the Sprite.
4. Double-click the new Sprite asset to open it in the Sprite Editor.
5. In the Details panel, you can assign a Texture to the Sprite asset using
the Source Texture property.
See the
[Sprite Editor Reference](animating-characters-and-objects/Paper2D\Sprites\Editor)
1. In the Content Browser, Right-click on the Texture asset, then under Sprite
Actions choose Create Sprite.
2. Name the new Sprite asset.
1. Click the Add New button, then in the context menu under Animation, select
the Paper Flipbook option.
You can also Right-click inside the Content Browser to open the context
menu instead of clicking Add New.
2. You will then be prompted to enter a name for your new Flipbook.
3. After you select a name, your Flipbook asset has been created.
The asterisk symbol in the lower-left corner indicates that the asset has not
been saved yet and will go away when you save it.
Auto-Generated Flipbooks
To create an automatically generated Flipbook, follow the steps below.
1. Locate and select each of the sprites you would like to include in the Flipbook in
the Content Browser.
2. Right-click on any of the sprites, then select the Create Flipbook option from
the context menu.
3. You will then be prompted to enter a name for your new Flipbook.
4. After you select a name, your Flipbook asset has been created.
When you mouse over the Flipbook in the Content Browser, you will also be
able to preview the Flipbook animation.
To create a new blank Tile Set asset:
Inside the Viewport, Left-clicking on your Tile Sheet will display a white tile
selection box indicating the currently selected tile.
Right Mouse Button drag inside the Viewport to pan and use the Mouse Wheel to
zoom in/out on your Tile Sheet.
Above, the default Tile Width and Tile Height (in pixels) of 32 is being used
represented by the white selection box. Unfortunately our tiles are larger than the
default values and we want our Tile Width and Height to encompass our entire tile
(represented by the yellow box outline).
Inside the Tile Editor preview window the currently selected Tile and its associated
Tile Number (see below) are displayed. Just below it, inside the Details panel, you
can adjust the Tile Width and Tile Height so that it properly encompasses your entire
tile.
In our example, we've increased the Tile Width and Tile Height to 64 to match our
tile size.
In the Viewport, the white tile selection box now fully highlights an individual tile on
the Tile Sheet (you may need to experiment with different values depending on how
your Tile Sheet is set up). The Tile Editor window also updates to show a single tile
from our Tile Sheet that is selected.
1. You can specify the Active Tile Set to use inside the Toolbox window by
clicking the Selection box.
Then selecting the Tile Set you wish to currently work with.
Any Tile Sets that you have created will be displayed in the window above,
allowing you to switch between the "Active Tile Set".
2. Once you have selected a Tile Set, the viewer will become updated with your
selection.
The three windows that comprise the Tile Map Editor are outlined below.
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.
Variables are displayed as rounded boxes that contain the name of the variable:
Variable Types
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.
Variables can be created in a variety of different types, including data types - such
as Boolean, integer, and float - as well as reference types for holding things like
Objects, Actors, and particular Classes. Arrays of each variable type can also be
created. Each type is color coded for easy identification:
ble
Type
ble
Type
775,807 ( long ).
ble
Type
3. A new variable will be created, prompting you to enter a name for it.
Enter a name for your variable, then proceed to the Details panel to adjust the
properties of the variable.
4. In the Details panel, there are several settings that can be used to define how
your variable is used or accessed.
Private Variables
With the Private option checked on a variable, this prevents the variable from being
modified from external Blueprints.
Public Variables
To allow a variable to be modified from outside its Blueprint, make it public.
By default the eye is closed (private); select the eye to open it and make it public.
You can also select or clear the Instance Editable box to make the variable private
or public.
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.
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.
Parent Classes
There are several different types of Blueprints that you
can create, however before doing so you will need to
specify the Parent Class in which the Blueprint will be
based. Selecting a Parent Class allows you to inherit
properties from the Parent to use in the Blueprint you
are creating.
Description
Actor
Pawn
Character
Game Mode
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.
1. Create Widget Blueprint. Click the Add in the Content Browser, then
select User Interface > Widget Blueprint.
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.