I want to build a Virtual World in Unreal Engine,  with the purpose of educating Fluid Dynamics.  Still a lot of work has to be done.

Update June 2018
Followed several online courses on using blueprints in Unreal Engine.
See https://unreal.fluiddynamics.eu/main-water-system-in-unreal/

First video will follow soon?

Update October 2017. After a long time following courses on how to build in Unreal Engine, I finally have started with building blueprints. Busy building a watersystem

Update may 2017. I have reactivated the project. Was too busy with ordinary work :-). I am following a course on Udemy (Unreal Engine 4: How to Develop Your First Two Games) to get my skills on a higher level.

Share Button


Using the proxy geometry tool

Share Button


Tutorials and notes on vectors

Documentation vectors

Documentation splines

Documentation transforms

Documentation transformation

Documentation Spline Mesh

Set end offset

Share Button

Tutorial Lighting

Share Button

Main water system in Unreal

The dynamic water system on land is programmed as a blueprint.
BP_Watersystem contains both the logic and the assets of the water system. The backbone of the BP_Watersystem is a spline with points. The points represent a change in the water system, for example: input discharge, different structure (pipe, channel, weir..), different dimension. So each point (=Node) is connected with the database WaterSystemData. So in between 2 points (=branch) of the backbone spline, everything is the same, based on the information of the downstream point.. Spline and point represent the bedlevel of the structure.
Index 0 spline is downstream

Al the programming is done in the so called construction script. This is a cool feature of Unreal Engine.  Al programmed calculations can be done in the editor. It is for example not necessary to run the game, to see what waterlevels will occur. They are already calculated in the editor.

Some general Notes:

  • The basis of the watersystem is a spline. Between 2 nodes the structure is the same. The location of the spline is the bedlevel.
  • BP_Watersystem is one line with no branches and has a fixed direction of flow.
  • A dendritic system is possible, because the 3D world may contain different BP_Watersystems which are connected at points. When calculation a dendritic system the sequence of making calculations is important.
  • Strategy for calculating the water-system.We assume a stationary flow. So new calculations are only made when changes are made to the water-system. In the future calculations will be made per time-step and change in storage will also be taken into account.
    Link to page with formulas used
  • To get access to the information, or to change information menu are used.
    Link to page Navigation
  • Internal Unreal uses centimeters, the BP_watersystem uses m
  • Backbone of BP_Watersystems is the WaterDataStruct which stores all data (also calculated data) for each branch.

Connect side branches

  • Information on side branch is stored in [ConnectionLeft] and/or [ConnectionRight]
  • In FD_GameMode: FD_WaterSystemsref and FD_WatersystemName. Note This does not work in constructionscript ? So it should be a separate function in the constructionscript.
  • New function Find_Side_Branches
  • In function “drawstructure”

Design Manhole

  • Is not a separate branch, but is generated when 2 culvert pipes branches connect.
  • The check is made for the first pipe. Is the second branch also a pipe.
    So for the first pipe it is the “next point index”
  • Switch to add manhole is :
    When diameter pipes is different, manhole is added automatically
    When diameter pipes is the same, the following switch is used.
    Slope X = 0 add manhole, Slope X = 1 no manhole  
  • Manhole is always a rectangle, with max 4 pipes connected.  So 2 other BP_watersytems could be connected to the manhole.
  • Alle dimensions in m
  • When function manhole is activated the following information is defined:
    – bedlevel, based on 4 connections
    – D1, D2 (left), D3, D4(right)
    – Width manhole based on D1 and D4.  Width = Max D1 / D3 + 0,6 m
    – Length manhole based on D2 en D4. Length = Max D2 / D4 + 0,6 m
    – Length manhole / 2 = reduction length (m)
    – Surfacelevel is de highest surfacelevelworld of the 4 connections
  • Manhole is activated before the pipe is drawn. This because the reduction length
  • In de first version, side connections is not taken into account.
  • Information from the array is also necessary for the Reduction Length for ending and starting pipe.

Design weir

  • Exists of 3 parts, left – middle (=crest) – left
  • Width_Diameter_m.x = width weir.
  • Width_Diameter_m.y = width sides

Blueprints used:

Share Button

Unreal Engine Framework



Share Button

Blueprint Tutorials


  • Pure function: Setting (tick) in function. No exec pins
  • Node Clamp. Setting the min and max of a number


Blueprint Node Reference


Event Dispatchers


Saving a game to a file


  • Blueprint-Communication-and-You-1220373635
  • if statement = branch node
  • BSP pain causing volumes
  • damage automatisch in UE, gebruiken voor geld?
  • Node event any damage 25.14
  • Direct communication: cast to
  • reference get actors off class
  • BP Interface Editor!! 49.50
  • SphereReacebyChannel
  • 1:02:06 right mouse Collapse to Macro!!!
    Use only function is access outside the BP is necessary
  • In output you can change the sequence of output pins
  • 1:06:31 Setting up which BP interface is received in the new BP
  • 1:11:00 collision box with collision settings as fake door
  • 1:13:00 show 3d widget!
  • 1.34:00 event dispatchers
  • Gekeken tot 1:40

  • 2:30 view options : show engine content
  • rotation movement
  • Destroy actor after picking up coin
  • open level
  • 30:00 game instance
  • Gekeken tot 31:46

Share Button

Test met trello


Share Button



Share Button



Share Button