Can't get water to become visible in 4.26 using world composion

I have watched videos on how do it
I have successfully done it on a blank project

But I cannot get it to work on my actual project using world composition. I’ve tried placing ocean, lake, river actors on my landscape or landscape proxy levels, but the end result is the same: the water is not visible. The deformation works, and I can add splines, etc. I’ve added brush manager, edit layers is on, not sure what could be the issue, given it worked perfectly on a blank landscape project (without world composition)

1 Like

I have the same problem.

I have the same problem buddy

How did you change Enable Layers in World Composition mode at all? I have only LandscapeStreamingProxy Actors and they haven’t such option only plain landscape actors have. Really would be fine to find a workaround how to enable water for developers using wcomp/tiles.

I think I revert back to 4.25 for now, still no information about this.

Same here

Okay so if you’ve got a landscape set up thats not edit layers by default:

  1. Enable edit layers in details under Landscape section
  2. Go to landscape mode>Sculpt
  3. Under the layers section, theres an entry called “Layer”, right click on it, and go down in the popup menu to “Add”
  4. In the submenu of add, choose “Landscape_WaterBrushManager”

I’ve tried placing ocean, lake, river actors on my landscape, but the end result is the same: the water is not visible. The deformation works, and I can add splines, etc. In a blank proyect work perfectly.

I hope with a new patch the Epic Dev can fix this issue.

“1. Enable edit layers in details under Landscape section”

I have no such option as I said, that’s the problem. I think the editor hides this checkbox if I use world composition / landscapestreamingactors instead of simple landscapes. As you see on the screenshot, no “Enable…” checkbox and only default heightmap layer are available. I think Epic new water system simply ignores landscapestreamingactors. I’m not sure they will fix it if they are thinking in a whole new grid based world comp system.

It works your landscape and ocean has to be at 0,0,0 location. That’s how it worked for me. The problem is you can’t move it and you can’t extend the water. (Nice trick is if you go to waterbrushmanager and disable affect heightmap, the splines won’t deform your landscape.) WaterBodyCustom works for what I want, but its missing buoyance and underwater PP. I will trying adding the underwaterpp mat to a normal pp volume and see how that works. Regarding the buoyance I have no idea.

1 Like

Volume pp does not work still. So yeah you can extend the tile size of ocean in water mesh actor. Not sure how that would impact performance. Anyone has a workaround for large streaming levels?.

So to answer the issue ppl have here is you need to make sure landscape and WaterBodyOcean are close to the center 0,0,0. Don’t forget to enable edit layers then add WaterBodyOcean. Make sure you delete old files like WaterBrushManager, WaterMeshActor, WaterBodyOcean.

Now WaterBodyOcean goes from center and a distances around it. Then you add far distance water to make it extend far but that water is for deco does not have functionality. You can extend the WaterMeshActor but doing so you are losing brush detail. Also you can not move the water by location transform. (You will have to wait for new updates for large level streaming ocean).

I have a workaround for now. This is not the best, but works for me. I’ve tested this with 1m units and ms was the same. Until a better solution is up, this is what I found so far. No compile needed. Do this in order.

-Find your landscape and Enable Edit Layers add WaterBodyOcean. Make sure landscape and WaterBodyOcean are close to the center 0,0,0.
(If you see the water texture then everything is set correctly.)

-(Optional) Select WaterBodyOcean then move the spline points closer to each other to make the hole smaller.
(This is to make the hole in middle of ocean smaller after. Make sure you don’t put the splint points on each other to 0,0,0 it will bug out the water and you will have a piece of water missing.)

-Select WaterBodyOcean and adjust the height of water level. Location Z.
(Don’t think you will be able to adjust it afterwards.)

-Select WaterBodyOcean then increase collision extents to cover your whole level.
(This is so the underwater pp works.)

-In WaterBodyOcean set WaveAttenuationWaterDepth 0
(So the waves actually work or you won’t have any waves.)

-(Optional)In WaterMeshActor set Tessellation Factor 8.
(We are stretching the brush. This will make the waves look a bit better.)

-(Optional)In WaterBodyOcean set Num Waves to 8 for Gerstner Water Waves.
(This someone hides the water from folding on itself at the top of the waves.)

-In WaterBrushManager disable affect heightmap, the splines won’t deform your landscape anymore.

-In WaterMeshActor Increase Tile Size to cover your whole level.

-Move WaterMeshActor, WaterBodyOcean to persistent level.

(If something goes wrong just delete WaterBrushManager, WaterMeshActor, WaterBodyOcean and try again.)

Then tweak the waves and ocean mat instance, for desired results.

That’s it enjoy the new ocean with buoyancy, water fluids and optimized lods on large streaming levels.

Now the problem with this is you are stretching the brush so there is a limit on how detailed the waves will be. The larger you make tile size the bigger the brush meshes the less the quality of the waves. You can offset this by Tessellation Factor, but this is expensive on GPU.

you also have to turn on layers in landscape in plugins i believe- so if its not showing up you have to turn that feature on

Wow, this worked perfectly for me!

I played around with this and it indeed works! Thanks!

Tip for people who import from World Machine and to use new water system:

In world machine Set water level, beach level, beach erosion, etc those type of devices at exactly half of your “project elevation quick scale”.

So if your project elevation quick scale is 512 meters, set water level to 256 meters and this is where in ue4 z = 0

IMPORTANT: Unreal z scale on import is 100 unreal units = 512m “project elevation quick scale” in world machine.

Or if you have “project elevation quick scale” at 5.120km in world machine (10 x 512m), to match it in unreal set your you z scale on import to 1000 unreal units (10 x 100).

It’s very easy to set this in World machine - just add a constant value to your heightmap from Devices → Generators → Constant which will raise your entire landscape by a constant value.

Say in my project I originally had water level at 512m and “project elevation quick scale” was 2.56km.
I added constant of 768m to my heightmap which in turn raised my water level to 1.28km - exactly half of range and in ue4 this is where z = 0

If you have issues where some of your devices run into clamping problem, just increase “project elevation quick scale” in world machine and match it with unreal on import like I described above, although some tweaking will be required to match previous results, because all generators will look different with new quick scale.

As long as you export in raw16 and keep reasonable “project elevation quick scale” you won’t have resolution problems or stair stepping.

1 Like

I’ve played a bit with this solution. 1 of the problems is the river and lake don’t work this way. I might have a better solution but testing it out. Also fluidsim does not work for me.

So here is a better way.
I am using Lake instead of ocean. You can stack them up and they will transition well from 1 lake to anther lake. This way you can use multiple lakes, rivers and oceans. (You will have 1 WaterMeshActor, 1 WaterBrushManager, multiple lakes, rivers and oceans.)

  1. Make sure you scale the WaterMeshActor to all of your map. In WaterMeshActor Increase Tile Size to cover your whole level. This stays in persistent level. (You need this for lake, river and ocean to work.)

  2. Make sure in WaterBrushManager enable affect heightmap then add the lake, river or ocean. Position the lake where you want it, height, scale. (Make sure you enable to show collision in editor view. and make sure the collision box goes all the way around you streamed level. You need this for buoyancy to work. We gonna use the lake as an ocean.)

  3. Now in WaterBrushManager disable affect heightmap. (All of the rivers and lakes or ocean will keep the height position and scale. Without affecting the landscape. Now you can just draw on your landscape what you want.)

That’s it. (For some reason adding more spline points or moving them. breaks the lake collision box for me. If you just scale the lake to cover your square stream level the rest of the lake will transition to the next lake. The most important is the collision box. Also change the waves to ocean waves. In lake settings to get ocean waves. There is also a limit on how far down you can lower the lake.)

Solution: 64G Ram, SSD. Still a bit slow.

Edit: also crashes.

Don’t worry my friend, I struggled with same issue, but if the only thing you want is rivers, than go to landscape mode, then go to sculpt, then go to blueprint, then click the blank circle/oval which is in the blueprint brush section, then choose custom river brush landmass and then you should have your river, not sure about the others though.