[Community Project] WIP Weather & Ocean Water Shader

What new feature is this? It really bugged me when I found out reflection captures were useless with a fully dynamic setup.

Hey DotCam, I’m just curious to know what will be the next thing you will change on the water (or sky or whatever). Continue on this way and have a good day :D!

I just downloaded this and started messing with it a bit.

I’m currently working on adding adaptive tessellation LOD, depth bias wave and undulation height masking (smaller to no waves/undulation at the shoreline) as well as a few other rendering optimizations to the water materials.

I will let you know how it turns out and share with the project manager.

Can’t wait to see your improvements CharlestonS!

So I’ve been trying to get this sweet looking ocean working in my project, and the instructions in the wiki seem simple enough, but I get as far as Step #5: dropping BP_Ocean into my map, and the editor wont let me? If I try to edit BP_Ocean, I get: “Blueprint could not be loaded because it derives from an invalid class. Check to make sure the parent class for this blueprint hasn’t been removed!”

The example maps work fine, but I would really rather avoid having to rebuild everything else on top of one of them.

@WormSlayer - do you have the plugin in your plugins folder and everything?

Turns out I managed to misspell “Plugins” when I made the folder, working just fine now thanks XD

Plugging my own assets into this for Pirates

DotCam, will need to get with you when you’re back so we can collaborate on some updates. :slight_smile:

I’m sure its just me being stupid again, but I cant seem to get anything to float on my ocean? I’ve tried dropping in the example boat blueprint, adding test points and set the buoyancy variables as suggested in this thread, and I’ve copied and pasted the boats from the example maps, but they all just fall through the surface like it isnt there?

This looks VERY cool and is definitely going into my game. Wow!

Love the work, I can’t thank you all enough for this contribution. I’m having issues integrating it with my project though. I followed the instructions on the wiki exactly. I got the project to work just fine as a standalone, but after I follow all of the steps, neither the ocean shader or the sky compile. I’m at a loss. I’m just left with the grey plane infinitely. Equally strange, whenever I attempt to open a material I can’t seem to open its master material. Instead, for many materials it treats it like an instance material. I’m able to open M_Ocean_Depth but get the following errors
Error [SM5] (Node CollectionParameter) CollectionParameter has invalid Collection!
Error [SM5] Missing Material Function
Error [SM5] (Node TextureObjectParameter) Param Tex Object> Requires valid texture

Here are the steps I followed:
Downloaded both the full 4.9 project from github and the plugin.
Extracted the plugin to the root folder of my project
Copied everything from the content folder of OceanProject into an “Ocean” folder in the content folder of my own project
Opened both projects
Waited for everything to compile in OceanProject, didn’t take long. I deleted all the atmospheics and lighting in the starter map on my project.
I copied and pasted all the important ocean/sky features from the world outliner into my project.
Nothing happened. So i saw the BP_Ocean didnt have meshes or materials assigned to it. I found all the correct ones and just had a giant grey plane that refuses to attempt to compile.
Any help would be appreciated.

EDIT: Wow I always end up spending hours trying to figure something out before coming here for help, only to find the solution moments later. Turns out copying the content into its own folder made things a bit ****y. So don’t do that, just copy everything right into the content folder.


I’ve been playing with the 4.9 version for a few days now and I must say this project is just awesome! Congrats! :wink:

The “empty” map, containing only the ocean, sky and ground is really helpful to duplicate the environment in another project.
Everything went well for the ocean but I have some trouble with the fish manager: when there is a Fish Manager BP in a map of another project than the Ocean demo the editor crashes as soon as I run the game. Someone has this issue? (note: it works well in the fish map of the Ocean Demo though…).

Beside I have 2 questions:

  • is there a way to know that the camera is underwater?
    My aim is to trigger the underwater post-process as well as some other stuff as accurately as possible (when the camera goes through a wave for instance).
    I tried the events On Actor Begin and End Overlaps but they do not seem to generate any message.

-when the time of the day is changing in the Empty map, the SkyLight is not moving accordingly and continue to generate a high sun reflexion on the surface of the ocean. In some cases this reflexion is not event related to the sun light direction. Is there a way to rotate it and to make it follow the sun?

Thanks a lot

A “tiny” request, I think it would make the sky even more awesome…

Is it possible for the sky color to be HDR? I’ve bumped the color curves way up, but it doesn’t seem to be HDR, lowering exposure results in a grey and not a blue sky. I could be doing sth wrong or it may be an engine limitation of some sort, but I believe it would be an improvement.
It works on emissive materials it seems…

Hi, Could you help me with another issue?
I would like to create a static light blueprint, a light which will turned on only if the time is in rang of 18 - 5 or any other period of time, or when sunrise or sunset positions, i think you got my point…
Please help me to do that, what nodes should i create in construction script
(get all actors of clas - get - default hour, get current minute, in range xx- xx branch set intensity) something like that, but it is not working.

Hi DotCam

I am a relatively new convert over to the Unreal Engine, and I am still busy migrating all of my development over to it, however I have been playing around with the Ocean Plugin and I am extremely impressed. As a result of my playing around (and I’m now integrating Ocean Plugin into my game world) I would like to put forth a few points that I feel are worth mentioning.

  1. I have been using Ultra Dynamic Sky in my project which seems to work fine with Ocean Plugin but I have yet to find a viable weather system (or I’ll create one further down the line).
  2. It seems with your sky you get the sky colour and light intensity for underwater effects and I’m not sure I’ve got equivalent in Ultra Dynamic Sky - I am using Sun Brightness for Set Intensity and Horizon Base Colour for Set Light Colour.
  3. Player Buoyancy - I was thinking about including the Buoyancy components into the player character so they will float on the water surface - has anyone attempted to get the player to float?
  4. Is there come kind of documentation on how the Buoyancy settings work? I simply dragged the BP_Boat blueprint into the level to create another boat, changed a few settings, and clicked play and the boat sank.
  5. Post process under water - Firstly I was thinking about making the post process for the underwater global, and then turning it off or on depending on the z world location of the head or a socket attached to the head. Will this work?
  6. Swimming - if I can get the player to be buoyant, and the player has collided with the ocean, would it be possible to work out the depth of the water so swimming animation can be blended into the player movement?
  7. Underwater detection - like my proposed method of turning off or on the post process for underwater - the player would have to be affected when they dive under the surface such as consuming air.
  8. Underwater depth - assuming I can get underwater detection working, I am proposing on adding a max depth float variable to the player character so that when the player’s z location reaches within range of this, they will die. This value can then be affected by things like submersibles.

Right now I’m battling the tiled landscape import, since it always puts the landscape at around about -90000 on the z axis and I have yet to find a solution on how to get the landscape closer to 0 on the z axis - so far i’ve spend a day researching this and playing around but not found a solution yet - I don’t want to have to move the water down, since my landscape material is detecting the height of the landscape and applying material based upon height so as the material thinks its all underwater, its mostly sand and rock at the moment.

Can somebody help me? I did somewhow what I asked, but after sudden crash i lost all my work and no idea how to do that againg, i remeber i was playing with sun height…
I did a script, I gues…
But now it is does not updates itself, I meanit compares float and light is turned on and turned off, but it is not dynamically, it need to be moved or something like that

I get this same issue. If I drop the FishManager BP into my blueprint with nothing else (instantiates with a single flock of Bluefin Tuna, I think), the editor crashes. But the demo of the underwater fish works fine. I’m on 4.9.1.

A lot of the individual fish when dropped in as blueprints by themselves seem to do this, too. It looks like it may be correllated with whether or not “Is Leader” is set to true. Types with this checked by default (e.g. White Shark) don’t crash when dropped in unmodified, and can be invoked by a FishManager BP with no crash. However, the Blue Fin Tuna can be dropped in only if you check “Is Leader” from its default-unchecked state, but will still crash FishManager if you drop one in consisting of Blue Fin Tunas.

Some major features and fixes that we need for this ocean.

  1. Networking fit for a dedicated server
  2. Block ocean in areas (like inside of ship or inland on an island)
  3. Coastal/Low-depth sim alternative OR a plugin that uses an outline of terrain to transition current system of wave behaviour to conform to island shape and depth.

More on 3, when you’re on an island with multiple sides and the waves all come from only one angle, and the same intensity as on the high-seas, it presents an issue with land based maps.

Hey DotCam and all, thanks for your amazing work on these assets! I’m using them in a short student project at Academy of Art University in San Francisco. It won’t be released anywhere but I may link it here once it’s done.

I have almost everything set up in a new project except my character (Mixamo animation pack Zoe) is sinking the boat. I have a custom boat mesh with collision made in Maya. I followed the instructions on the wiki to copy over the Plugins and Ocean assets to a new project, but not Sky or Boat assets. I added a Buoyancy Force to my boat, TestPointArray set up and the boat floats perfectly. I can place physics objects on the boat with varying mass and the boat responds appropriately. As soon as my player character jumps on the boat, however, it sinks like a rock. Any idea why this would be? Do I need the boat assets for this?

As far as I can tell, there is nothing abnormal about my character’s mass, it has default values for the Mixamo Zoe character. I’ve tried to find the difference between my player and the one from your examples, and all I can find is you added a Buoyancy Force to your third person character. I imagine this is what makes them able to float near the surface, but I tried it anyways and it did not help with my character sinking the boat.

Any help is appreciated, thank you!