Skip to main content

Landscapes - Material Concepts

A landscape material is one which is applied to an Unreal Engine landscape object. It is created similarly to any other material in Unreal but can use some special nodes (such as the Landscape Layer Blend node) which only work inside landscapes materials.

While this page is about landscape materials in Unreal Engine, it does not tell you how to make one, it describes how they are made, how important features work, and looks at alternative approaches used in commonly available examples.

Landscapes - Building GDAL

GDAL is a translator library for raster and vector geospatial data formats which we can use for converting between file formats, for example for converting geotiff data about real-world locations to heightmaps which can be imported into Unreal.

Changing a Component in a Parent Object

If we derive a C++ class from an existing Unreal class, and that existing class contains components, we can extend (subclass) those components without changing the source code of the base class.

Understanding the Game Features Subsystem

This is an attempt to understand the Unreal Game Features Subsystem. The Game Features Subsystem is used in the Valley of the Ancient and Lyra examples, and in Fortnite, to distribute game assets and functions as plugins.

Delegates in C++

A delegate is a object which can be used to call:

  • a specific method on a specific object
  • a static function

Looking into Lyra - Inputs and the Gameplay Ability System

The aim of this is to examine the source code from the Lyra example provided by Epic Games and to try and identify and document practices and approaches for using c++.

Here we look at use of Gameplay Tags and the Gameplay Ability System (GAS), and try and trace the use of gameplay tags from pressing a button to getting a response in the UI and in gameplay.

Wrapping a third party library using an Unreal Engine Plugin

Unreal Engine supports plugins, which contain code and game content. They can also wrap a third party library (on Windows, one or more .dll files) and allow the functionality of that library to be called directly from C++ and indirectly using Blueprint objects which are part of the plugin.

Building ffmpeg 6 on Windows 10

ffmpeg is a cross-platform solution to record, convert, and stream audio and video. It can be used from Unreal Engine to change image formats, to record gameplay, and to convert content to and from various video formats. Here I am using it just to show how an Unreal Engine plugin can be developed.

Using the Unreal Engine Json classes

Updated for Unreal Engine 5.0

This document describes the basics of reading and writing Json with Unreal Engine classes. The code here reads and writes elements explicitly rather than reading and writing entire structs at one time. This is suitable for objects which are not using the UCLASS or UOBJECT macros to create reflection data.

Using Reflection in Unreal Engine

Updated for Unreal Engine 5.0

Reflection is the ability to inspect C++ classes and objects at runtime and gather information about their data types and properties. Normally C++ does not maintain programmer-accessible information about, say, what members a struct or class has. Unreal Engine uses macros such as UCLASS and UPROPERTY to create information about classes, structs, methods, properties, and to make that information available to C++ at runtime.