BP_RiverMaker from KiteDemo - KiteDemo analysis?


So now that everyone can download the huge KiteDemo, wouldn’t it be cool to have an analysis on all the various parts of this huge scene ? (e.g. the RiverMaker Tool) I’ve searched the forum about the BP_RiverMaker used in the scene and to my disappointment, nobody has even mentioned the RiverMaker once. Is there a documentation about it somewhere ? How can I make my own rivers ?

It’s nice to have so much content and beauty in one scene but it’s hard to follow if nothing is explained in detail :frowning:
If there is already a thread about the kiteDemo and its features + explanations plz tell me - and I’m sorry for opening a new thread.
I’m afraid I couldn’t find anything, especially about the RiverMaker. Can someone tell me how this thing works ?

Thx in advance!

I’m also interested in this :slight_smile:

well if memory serves during one of the twitch streams they said the river tool wasn’t going to be released because it wasn’t finished or something like that, I think it had to do with where 2 rivers join having to be done by hand but I’m not sure, so the reason you cant find any info for it is because it wasn’t released

while there is a couple of threads about the kite demo they don’t really go into a lot of detail about anything, although I think they used the lighting found in this thread, anyway your best bet for some in depth info about how things were done and the features used you should watch the twitch videos about the foliage tools and kite demo,

Foliage tool:

kite demo:

I think there may have been another video as well but I cant remember, still they should put you on the right track at least.

hope that helps:)

I would love an indepht overview of all the things in the kite demo as i can not open it on my pc :confused: (maybe 15-30 min videos per topic or something alike)

If I try to copy assets its always missing some dependencies so I cant take it appart either (as i dont know what things depend on other things)

edit: wow just after posting i see the comment above me has been written at the same time, thats probably what ive been looking for.

Hey IceDealer,

We did actually document most of the tools used for the Kite Demo which you can find by going to the following link.

The river tool was not finished so it did not get documented.

@: Thanks a bunch for all the videos and links! Will definitely dig through all of them! :slight_smile:

@Sam Deiter: Thanks a lot for the link that covers all of the foliage tools! The RiverTool looks quite promising - still trying to figure out how it works. I can’t really influence the flow-direction of the river by moving the control points. Do I have to enable the Tool somehow to make it work ? Also the green dots are not selectable so I’m wondering how I can change the flow-direction of the river ? Could you maybe point me (and other devs here in the forum) in the right direction on how to start making my own river?

Also the deer-AI is quite impressive - how they flee from the drone and all. Is there any In-Depth explanation on how everything works together ? Sorry for all the questions but I’m super excited to learn all the stuff you’ve made in this demo. Besides all of the new foliage tools it would be awesome to have someone from Epic explain the deer AI and RiverTool a bit :slight_smile:

Hey guys,

The rivermaker tool was a work in progress. We only lightly used it and in fact ended up deleting some of the rivers made using this tool at the last minute since we were running out of time to fix little bugs with them.

The BP exists in two states, auto and manual mode.

In auto mode, it does a series of downhill circular line checks to figure out the ‘path of least resistance’ on the terrain. Using this it can find erosion lines in the terrain. You specify how far to step at each step and how many radial steps there are. During this mode you should uncheck “Draw splines” and set the “Sphere scale” large enough to see. Move the BP around and see the river pattern change. Once you are happy with the shape, check the “Save” box and you should then be able to fine tune the points by hand by dragging them around.

In the “manual mode” (which is checkbox called “Debug Spline mode”), you specify the points manually by adding to the array. That was really only intended as a debug tool when I was figuring out the vectors.

There is also the very beginnings of a code feature to deform the landscape using the spline, and paint a layer as well. This is called “Editor Apply Spline” and looks like this:


In the river BP tool these are accessed via the blutilities menu. Notice it is in 2 passes: a wide spline to flatten the terrain so the shore meets up and another thinner spline offset down on Z to subtract a channel for the river depth.

Note that this operation is currently not-undoable and thus is completely destructive… SAVE OFTEN! It will also fail in certain cases.

To add further to the pain (and this is why I kind of stopped trying to polish this BP and we didn’t use it as much as I wanted) there is a bug with BP spline components where the splines do not update unless you go into the BP and check and uncheck a box on both spline components called “Allow Spline Editing Per Instance”. That setting is here ( you have to toggle BOTH of these after every change before flattening the landscape):


Note that bug only applies to when you are flattening the landscape to the spline. The spline meshes themselves will always display correctly (I probably just caused more bugs by making such a bold statement :wink:

Here is a picture of a river made using this BP (sadly I think I deleted this river from the actual level before it was released):

I will probably try to polish this up and maybe release it again in its own content project at some point. There were lots of things I wanted to do but never got time to try (such as auto waterfall placement on steep slopes etc).

Yes that’s basically it. I don’t think we said “this BP will not be release in the pack” but rather we aren’t going to try to hype it up as a feature or anything. If somebody can do cool stuff with it, go for it :slight_smile: One day it may be useful enough to get advertised as a thing.

Ideally one day this tool will create rivers and when it finds a ‘low spot’ it will pool to make a lake up to the threshold size before trying to trace a new river and/or waterfall from any ‘leak’ points. But it probably needs to do some of that in c++ for perf reasons.

yeah, I couldn’t quite remember exactly what was said on the stream:), also I think it should definitely be made into a proper thing:wink:

that sounds awesome:D

This tool is gold! A lot of people say CryEngine is better in terms of vegetation and landscape realism but I think once such a RiverTool is integrated, Unreal will be one big step closer to beat CE also in that particular area. A RiverTool is urgently needed. I tried to create a river with a new BP_RiverMaker but somehow I don’t know where to start. The Checkbox “Allow Spline Editing Per Instance” is somehow missing. Have I done something wrong ? Do you think you could shortly describe the way I would create a small River (with like 4 Control Points) on my own map ? Like a short step by step guide ? :slight_smile:

Thanks for the more In-depth explanation on the tool!

that checkbox is inside of the blueprint editor itself, and only after you select the spline components.

Sure I will try to post something a bit later today.

Quick River Tool usage guide:

**Auto Line Traced River:

  1. Place new River BP tool:

I Placed it in GDC_Landscape_01 sublevel X2_Y1 at position 131240.0, -189420.0, -113230.0.

Upon default placement you should see this:

Note that I placed this inside of an erosion line that was formed by worldmachine. That is a good way to get a nice long river path. This mode only really works on landscapes that have terrains that are naturally eroded, otherwise you either need to define the points manually or carve out a flat and/or downhill path for the river.

  1. Change “Sweep Radius” to 3500, “Checks per 360degrees” to 64 and “Steps” to 25:

  2. Check "Draw Splines:
    This is just the default box mesh.

  3. Change RiverMesh to this asset (if you are using kite demo):


  1. Notice at first the river will be way too big and underground. We fix by changing “SplineScale” and “Z Offset”


  1. Now we want to flatten the landscape.
    **Before you do, check the “SAVE” box! Otherwise your BP will trace down into its own channel and it will mess it up.


  1. Now we need to define some settings for our landscape flattening. Try these but they should be self explanatory:


Note that there is NO UNDO support for this. I suggest copying your BP to notepad and saving your level before proceeding. Also, use smaller settings for your width and falloff at first since you can increase the setting and run the flatten again, but you cannot make the channel smaller. Kind of like wood working, you can always take off but you can’t really add back on.

I actually gradually increased “channel falloff” to 300 to get the result in my next images. At that setting the landscape bank and river bank matched up perfectly. That is why you want to try and ‘sneak up’ on the right values rather than overshoot.

  1. This is when things get buggy right now. Open the BP editor and check and uncheck this box for both Spline components:


After doing that you should see both splines in the world, one will be a bit under the terrain because of the channel subtraction value.

  1. Now all that is left is to run the Flatten and Subtract Blutilities:


If you are lucky you will get something like this:


If I am being picky, the falloff is a tad harsh and the flat zone maybe a bit too wide. If I felt like re-loading the level and starting over maybe I’d tweak that… or if one day this supports undo.

Also note that you have to go into the EventGraph and change the landscape layer to paint if you want it to paint a layer like here (its painting rocks).

Currently it will not let you do anything custom to meet up with other rivers, but you can add manual points by adding to the “River Points” array and then position the end of the river exactly or add as many custom segments as you want. Note that when you add a new point it will go at local 0,0,0 which will be at the actor position (so the top of this river).

Here I added a manual point and dragged it down to the end showing how you could in theory make a nice transition piece and make your river meet up with it:

This is actually the first time I really took the time to try to use this tool. At the end we were so focused on polishing the cinematic and bug fixing that we really didn’t have time to go around and really add custom features to the landscape like we originally wanted.

**Now for manual mode. **

I suggest just using the checkbox “Save” whenever doing manual mode and just using RiverPoints array for simplicity. You don’t need to use the debug mode.

I am just going to press “clear” on the RiverPoints array from the above BP state.

Then after adding 1 item to the array, it shows up here at the actor position:

You need to select it and move it away from the origin every time you add a point otherwise they will all stack up and you will lose their order. Alternatively, you can duplicate the last item in the array just remember to move them out in order.

You will not see anything until there are at least 4 points. After that every new point adds a new segment:

Additional nodes:

If your river hits an absolutely flat spot, currently that will cause the line checks to fail to find the next lowest point. You can work around that by adding some value to the “Flow Height Bias”. It is just designed to help the river make it over a brief flat spot but it won’t work over long flats. That setting is a bit experimental and anything but very small values will break the lowest point algorithm. That is one of the things I’d like to improve some day.

Wonderful step by step guide! Currently, I’m not able to follow it since I can only use my notebook right now but tomorrow I will try to create my own river by using these steps at home on my desktop pc. Thanks again for taking the time, I really appreciate it! :slight_smile:

Really, really awesome tool Ryan! Looks amazing. I really hope you will be able to add stuff like undo. :cool:

Gray River

Is this why there is a big gray strip where the river should be in the 4.10 Kite Demo? Even when I run it in GDC Demo game mode it doesn’t load.


Coordinates: x:127390.0 cm Y: 313950.0 cm Z: -124660.0 cm

Hmm that looks like a material that is failing to compile. The spline meshes are most likely there or we would be seeing gravel or grass or something underneath.

Not sure what has broken. If you pop open the material does it complain about anything specific? my money is on something very minor like a texture compression mode changed or sRGB flag unchecked on some heightmap… but it could of course be a more serious error just not sure how it would have happened.

I noticed that before as well, but the odd thing is, there are a few spots on the map where the river works just fine, and other spots (like above) where it’s just the default texture. I tried looking into it, but for whatever reason I can’t select the river or it’s spline component, and I can’t find anything that looks like a river in the world outliner. Just gave up after a few hours.

any plans for a official river tool…?
at the moment its not that easy to create good looking rivers…

Love this BP but now when I try to build the lighting I’m getting a error saying “Performance Warning BP_RiverMaker_13 Large actor receives a pre-shadow and will cause an extreme performance hit unless bCastDynamicShadow is set to false.” I now can’t build the lighting in this entire project (this level or any others). Any advice?

I was in the process of dumping all of their content into a basic project for the community, lost all of it cleaning out old projects :L
Was not aware of their river tool, have to take a gander