All Articles2019-02-28T09:24:58+01:00
1803, 2019

UE4 – Using the Flow Control Macros

By |mars 18th, 2019|Categories: Tutorials|Tags: , , |0 Comments

If you develop with UE4 and are writing blueprints, you already know a lot about the Flow Control macros. Indeed, the Flow Control macros are all the macros allowing you to alter the execution flow of your blueprint (i.e. the white line connecting the nodes). The most used one is certainly the Branch node which will redirect the flow in either the true or the false path, depending on the result of a condition. Switch is similar, except it will [...]

1103, 2019

UE4 – Interesting tricks and shortcuts in the blueprint editor

By |mars 11th, 2019|Categories: Tutorials|Tags: , , |0 Comments

Though I’ve been using the UE4 blueprint editor for a while, I still manage to learn tricks making me think “how I did without it…”. So here’s a selection of tips and tricks of the graph editor that made me save a lot of time. Dragging connections Just hold Ctrl when clicking on a link to drag it If you hold Ctrl while clicking on a connection, you can drag it to another node. If you were still re-creating a [...]

403, 2019

UE4 – Be careful with the Construction Script

By |mars 4th, 2019|Categories: Tutorials|Tags: , , |0 Comments

If you develop with Unreal Engine 4, you have certainly used the Construction Script. Probably without knowing this can ruin your project. The Construction Script is accessible within the blueprint editor: You can access the construction script in the blueprint editor Or if you prefer, in C++, it is represented by the OnConstruction method: virtual void OnConstruction(const FTransform& Transform) {} And more details can be found here: https://docs.unrealengine.com/en-us/Resources/ContentExamples/Blueprints/1_4 This convenient tool is really useful to define how an actor must [...]

1704, 2018

UE4 – Making a Android Plugin in 10 minutes

By |avril 17th, 2018|Categories: C++ Programming, Tutorials|Tags: , , , , |1 Comment

Let's say we're developing a game for mobile and we want to use one of the device functionalities, like reading the data from the light sensor, get the data from the contacts, or send a SMS: UE4 doesn't provide an API for this, so we have no choice, we have to make this API ourselves. Fortunately, it's really easy (if we follow this guide)! It's easier if you're familiar with the plugin system of UE4, but even if you're not, [...]

603, 2018

UE4 – Create a loading screen for your map (free template)

By |mars 6th, 2018|Categories: Tutorials|Tags: , , , |0 Comments

Loading screen, loadings screens everywhere... It's so simple to create into your Unreal Engine project. So, why don't add one in each of your projects? Let's see in this quick tutorial how to add a loading screen in an existing project.   1. Understand Map, Level and World terms First of all, we need to understand the little difference between these 3 words. A Map can be a Level or a World. The map is the asset created and stored [...]

2202, 2018

UE4 – Create a free camera pawn with custom inputs

By |février 22nd, 2018|Categories: Tutorials|Tags: , , , |0 Comments

When we create a new default project with Unreal Engine, it uses the DefaultPawn which is a kind of free camera, i we can move in all directions without being affected by the gravity. In this mode, the keyboard's keys are used to move the pawn, while the mouse is used to set its orientation. Usually, it's W to go forward, A to go left and so on. But this works only if we have a QWERTY keyboard layout, if [...]

1601, 2018

UE4 – Create your own automatic converters for blueprints custom types

By |janvier 16th, 2018|Categories: Tutorials|Tags: , , |2 Comments

Introduction You all know the automatic conversion system available in Unreal's blueprints (when you drag and drop a pin of one type on a pin of another type). This is a very handy feature to save time during blueprint development. Basic types already have automatic converters, such as Integer to String, Float to Integer, Name to String and so on... In this post, we'll see how to create our own automatic converters for your custom types. Let's say we [...]

1912, 2017

UE4 – Improving speed with ParallelFor

By |décembre 19th, 2017|Categories: C++ Programming|Tags: , , |1 Comment

Developing for the Unreal Engine, we have sometimes to make complex for loops with a lot of stuff in the body. Usually, it's a performance breaker, especially when the number of iterations of the for-loop increases. The purpose of this small article is to introduce a nice trick that can greatly improves the performance of these operations : it's the ParallelFor. ParallelFor allows us to multi-thread any for-loop in a minute, thus dividing the execution time by splitting the work [...]

312, 2017

UE4 – AI Perception: Senses and stimuli source

By |décembre 3rd, 2017|Categories: Artificial Intelligence|Tags: , |0 Comments

In this short tutorial, we're going to see the basics of senses and stimuli sources using the Unreal Engine. Using AI perception makes it really easy for an AI to detect ennemies, or other objects. But while the Unreal Engine provides a good documentation on AI and behavior trees (here), there are few things on AI perception. The basics. The AI perception system allows an AI controller to perceive elements in its environnement. These elements are actors with the [...]

2211, 2017

UE4 – Reading the pixels from a UTexture2D

By |novembre 22nd, 2017|Categories: C++ Programming|Tags: , , , |2 Comments

  Reading the pixels from a UTexture2D is not particularly difficult, indeed this post on Unreal AnswerHub resume almost perfectly how to do it. However, there are some points missing and one could go in the case where a call to RawImageData->Lock(LOCK_READ_ONLY) will return nullptr. When it happens, it prevents us from reading the pixels, and moreover, potentially causes a huge crash if the situation wasn't anticipated. We will review quickly how to read the pixels from a UTexture2D, and [...]

1911, 2017

UE4 – Programmatically create a new material and inner nodes

By |novembre 19th, 2017|Categories: C++ Programming|Tags: , , , |8 Comments

In this post, we will learn how to create a new material from Cpp code, create nodes and make links. You can add this code into a custom plugin in order to magically create a new material when the user clicks on an editor button. Remember, this code is designed to be execute into the editor. Your plugin must be an editor plugin. This code can't work at runtime... Create a new asset : Material First of all, we must [...]

1611, 2017

UE4 – Declaring and using interfaces in C++

By |novembre 16th, 2017|Categories: C++ Programming|Tags: , , |0 Comments

Unreal Engine interfaces When we develop in C++, in Java, or in any object-oriented programming language, we often use the OOP concept of interfaces. In C++, they are generally implemented using totally abstract class without members, i class containing only pure virtual functions. However, when developing blueprint C++ classes with Unreal Engine, it's not possible to directly use this kind of syntax. Indeed, Unreal Engine has a specific syntax for the interfaces. It is detailed in the Unreal Engine wiki, [...]

1611, 2017

UE4 – Make an input UCLASS pin compulsory in a blueprint custom node

By |novembre 16th, 2017|Categories: C++ Programming|Tags: , |0 Comments

Context.If you used to create some custom blueprint nodes (using blueprint function library or directly into a UCLASS), you probably know the different ways to pass parameters to this function with their pros and their cons.Let's summarize.When we want to use a UCLASS as a parameter, we need to pass it by address, otherwise we will have a compiler error:Missing '*' in Expected a pointer typeBut, we have two ways to do the job (in the following example, UGenerationModule is [...]

1411, 2017

UE4 – Save a procedurally generated texture as a new asset

By |novembre 14th, 2017|Categories: C++ Programming|Tags: , , , |4 Comments

Creating the UTexture2D object. Let's say we have generated a UTexture2D from C++ within the editor. It could be interesting to save it in order to use later. Let's have a look on how to do this. The first step is to create a UTexture2D object. Here, we cannot create a transient texture using UTexture2D::CreateTransient, because if we did so, we would be unable to save the texture (transient objects can't be saved). So, we will create a package, and [...]