A River I made for Adorable Adventures: https://store.steampowered.com/app/3840230/Adorable_Adventures/ Making a river seems like an easy task: add a plane with a scrolling water texture. But especially the interactivity makes it more difficult: I need to detect when something is entering/leaving the river, place water splashes accordingly and maybe even add forces so that objects get pushed with the water flow. Yes there is a water system coming with Unreal which even supports buoyancy, but it's marked as experimental which makes it a risk to use for shipping a game.
The river uses a custom SingleLayerWater material (less expensive than a classic translucent material). The pond uses the WaterTextureSurface material coming with the Water Plugins (my work was adding a small warterfall, fishes and making it interactive).
Houdini was used to create the geometry. It's a classic LoD setup as I intended to use WPO to add more motion to the water surface and Nanite does not like WPO too much. In the end I didn't use WPO, though. Didn't look good.
It's not an advanced system as we see in some water plugins lately. Characters/objects register to the river when entering/leaving simple a collision. The system then spawns splashes and may apply impulses when an object shall move with the river flow.
There is no real floating/buoyancy system. We kept the river very shallow, so that no swimming anims would be necessary and the ball just rolls with the river. The duck needed more fake-magic.
The duck rolls with the river (as the football does) BUT I hide it and instead show another duck which I align with the river height. The height is determined by a spline which I placed manually to be able to read river height and flow direction.
Niagara fishes with wiggle animation (WPO). The faster they swim, the faster they wiggle. Via particle attribute reader I was able to let them avoid each other. They also flee from the player and avoid the (manually defined) border spline.
Vertex color can be painted to control the flow speed of the river as well as where foam appears. The flow map was generated in Houdini using the Labs Tools.