How do I combine buoyancy and dynamic reactive water physics with my lake water plane?

Here’s the deal - I have been experimenting with two separate blueprints involving water that I very much like. What I am interested in is seeing if there is any way I can combine them.

First is the lake water material from the Water Planes blueprints available from Epic Games in their marketplace. It looks fantastic and I wouldn’t change a thing about it. However, my game features birds that swim on the water (a duck, for example) and items that fall in the water and float around. I separately found a free water physics download from a guy named Marvel Master that simulates water influence and buoyancy for objects. It works exactly the way I want it to and I also love it. However, the water material provided with it seems like pool water more than anything and it doesn’t look right., What I would love to do is to cohesively apply the buoyancy and water influencing from the Marvel Master download to the lake water from Epic in my level. Is there any possible way to do this?

More to the point, I am just trying to build a lake with realistic water. It has been quite challenging, and I am not about to drop a ton of money on one of the really expensive things in the marketplace. I have found what I want, for free, but I just don’t know how or if it is even possible to combine them. If you can think of any other creative ideas to achieve the same end, I am all ears. Thank you very much.

I am basically working on a water based game as well, and found the same libs you did. I am using another material on top of Marvel Master, but it’s taken from a paid asset, so I re-wrote the material to use the lake material for you to illustrate what needs to be done. I’ll upload the project to github: GitHub - QuirkyIdeas/YetAnotherWaterMaterial: Yet Another Water Material for Unreal4. I guess since more people need this, I should make it a thing.

Another project that comes to mind is GitHub - UE4-OceanProject/OceanProject: Environment Plugin Project (Ocean Simulation, Sky Simulati, which is amazing, but as with every other water material known in the universe, it’s never quite exactly like how you’d like it :slight_smile:

I think there’s a few ways to do what you need, what came to mind most quickly to me was to change the “WaterMaterial” material which comes with the Marvel Master repo.

In the sketch below, the red items are what we need to add to the marvel master material. Basically, we want to be able to override the original normal surface generator, and also be able to override the original colors. I don’t like throwing things away too early (premature optimization is the root of all evil) so I used some blend sliders so i can mix how much of the new surface i want to show up in the final water.


Once you do that, and this may not be the most effective method, but I re-named and re-grouped every variable in the Epic Lake material to make it easy to configure in the WaterMaterial_Inst later. Next step after this would be to change the WaterBody_BP initialization to bring the important variables to the editor menu so you can edit the material from the asset… I may add that later, but for now this will get the job done.

Once it’s all said and done, you will get some new data fields to tweak in the WaterMaterial_Inst:

And then finally once you set the “BuoyancySurface” collision channel as indicated in the MarvelMaster tutorial video to get the waves FREE Unreal Engine 4 Reactive Dynamic Water V3 Project Download [UE4.20] - YouTube, the water should look something like this:

Hey @euseibus - this looks perfect and like exactly what I am going for so I tried to implement it today. I got a few error messages when I tried to open the .uproject file you have on your Github, though. Any reason I’m getting this that you can think of?

After that failed I tried to copy and place the material .uasset you built called WaterMaterialPretty.uasset (I assumed that one is yours) and was able to successfully get it inside a project. However, when I tried to apply it to the WaterBody_BPO to make it the material it crashed every time. I hate to ask since you already went to these lengths to figure this out for me, but do you think you could lend me a hand trouble shooting this? I’m using UE 4.24. Are we using the same version? Thanks a million.