In UE2 we had a simple but fun feature called a FluidSurfaceInfo. This was a small, simulated fluid surface that you could place in your level, and would respond to the player running through it and shooting it. It was requested that we bring back this feature in UE4. So I am posting the original source from UE2, if anyone is interested in porting it to UE4 as a plugin! I made a page on the wiki with the source code here:
This is a CPU implementation. In UE3 we had a more sophisticated GPU-based fluid surface implementation, but I donāt really know that code, and I thought this would be a simpler place to start. I would look at the CableComponent plugin to give an example of how to set up a plugin and render custom geometry each frame. This is not intended to be an āocean surfaceā feature, but something useful for small pools of water (or, you know, toxic acid, lava, the usualā¦). This is UE2 source, back when we had .uc files, so the first job will be turning those into UE4 decorated C++ headers.
Iām happy to try and answer any questions about here it here on the forums (if I can remember!) and Iām sorry for the lack of comments :(. If anyone makes some progress, please post your github branch here so others can check it out and contribute
That was amazing time, I remember my first āOMG! AWESOME!ā reaction to UT2003 water. And then water splashes were attached in UT2004⦠Still one of my fav VFX out there. Thanks, JamesG!
Iāve started writing the plugin based on the code from above. The first iteration will be a complete CPU based solution based on the above. Then I will improve it from there.
Okay so I am not used to using GitHub, so I have uploaded the source code for the plugin to my private fork. Youāll find it under the master branch in āEngine/Plugins/Runtime/FluidSurface/ā. Link is https://github.com/Ehamloptiran/UnrealEngine. The plugin contains the following:
CPU Based fluid simulation (Based on the UE2 code originally provided by JamesG) - Up to 255x255 grid, with variable spacing
Particle effects that play when surface receives damage or when overlapped by an actor supporting overlapping
Material Tessellation
A small Modifier framework (Can create new modifiers based off AFluidSurfaceModifier)
An oscillator modifier
An example rain effect modifier
There is still plenty of work to be done, so this is purely still an alpha test release, use at your own risk. For now you will have to compile your own version (I will provide precompiled binaries later when the plugin is more stable).