How To Create Dynamic Water Levels

Level 15
Joined
Nov 30, 2007
Messages
1,202
How To Create Multiple Water Levels

Hi. I haven’t seen any tutorials on this technique so I have the privilege to provide you with it. It’s really simple and by the end of the day you will be creating lakes and rivers running down every mountain.

118100d1348715930-how-create-dynamic-water-levels-tutorialdone.jpg


NOTICE: Before we start you must disable 'Enforce Water Height Limits' located in the advanced menu.

attachment.php




Creating a base terrain with shallow water and a cliff hight of 2.
118090d1348707245-how-create-dynamic-water-levels-tutorialstart.jpg


What it looks like.
118091d1348715434-how-create-dynamic-water-levels-ashenvale.jpg




Step 2: Copying the water - Create a new map with the size of 64x64, as before use the shallow water base. The tileset doesn’t matter, what does is the cliff height. Previously we used [2], this time we want to use a higher water level so set it on [3]. Once the map is created you select some of the terrain and copy it.


Creating a new map with a different cliff height to copy the water from.
118092d1348715434-how-create-dynamic-water-levels-tutorialcoppywater1.jpg


Selecting a area to copy (Ctrl-C).
118093d1348715434-how-create-dynamic-water-levels-tutorialcoppywater2.jpg


Step 3: Pasting the water - When you have copied the water it’s time to return to the original map. Paste the water where you want it or in a corner to be used as a palette for later. The cliff that appears under the water can easily be removed by just using the same level tool.


This is how it looks when you paste (Ctrl-V) )it to your map.
118094d1348715495-how-create-dynamic-water-levels-tutorialpastewater1.jpg


To remove the cliff below the water simply use the Same Level tool circled in red.
118095d1348715495-how-create-dynamic-water-levels-tutorialremovecliff.jpg


Step 4: Creating the water palette – Repeat Step 2 and 3 changing the cliff height every time. Once you have pasted over enough water levels you can start terraining. When your completed it will look something like this:


This is how the palette looks when completed. The red numbers is the cliff height of the water. I do not recomend the area of the water being as small as seen in this picture.
118096d1348715495-how-create-dynamic-water-levels-waterpalette.jpg


Step 5: Terraining - You can now use your previously created palette to paste the water height where ever you want on your map. If you regret any of the water heights simply paste a new one over.

Another trick you can use once you have decided the water height is to expand the area by using the Deep Water or Shallow Water tool on the water and just draging it to where you want to expand the water.

I have selected the Deep Water tool and am holding over as to expand the area.
attachment.php


Once the water has been expanded a hill will be created below it.
attachment.php


To remove the hill simply use the Plateau tool circled in red.
attachment.php



Here is a sample of the process. I decided not to fiddle around with it too much so forgive me for its apearance.


This is how it looks after I have pasted terrain from the water palette.
118097d1348715930-how-create-dynamic-water-levels-tutorialwaterplaced.jpg


This is how it looks after the hills have been raised around it.
118098d1348715930-how-create-dynamic-water-levels-tutorialbasiccliff.jpg


This is how it looks after I tried to make it resemble a mountain.
118099d1348715930-how-create-dynamic-water-levels-tutorialcliff2.jpg

[...]
118100d1348715930-how-create-dynamic-water-levels-tutorialdone.jpg
 

Attachments

  • TutorialStart.jpg
    TutorialStart.jpg
    42.6 KB · Views: 4,274
  • Ashenvale.jpg
    Ashenvale.jpg
    59.2 KB · Views: 4,368
  • TutorialCoppyWater1.jpg
    TutorialCoppyWater1.jpg
    47.5 KB · Views: 4,350
  • TutorialCoppyWater2.jpg
    TutorialCoppyWater2.jpg
    32.4 KB · Views: 4,288
  • TutorialPasteWater1.jpg
    TutorialPasteWater1.jpg
    63.2 KB · Views: 4,328
  • TutorialCliff2.jpg
    TutorialCliff2.jpg
    229.6 KB · Views: 4,399
  • TutorialBasicCliff.jpg
    TutorialBasicCliff.jpg
    268.8 KB · Views: 4,371
  • TutorialWaterPlaced.jpg
    TutorialWaterPlaced.jpg
    134.5 KB · Views: 4,363
  • WaterPalette.jpg
    WaterPalette.jpg
    108.6 KB · Views: 4,356
  • TutorialRemoveCliff.jpg
    TutorialRemoveCliff.jpg
    165 KB · Views: 4,483
  • TutorialDONE.jpg
    TutorialDONE.jpg
    317.9 KB · Views: 4,651
  • ExpandingWater1.jpg
    ExpandingWater1.jpg
    174.2 KB · Views: 4,701
  • ExpandingWater2.jpg
    ExpandingWater2.jpg
    97.9 KB · Views: 4,428
  • ExpandingWater3.jpg
    ExpandingWater3.jpg
    147.1 KB · Views: 4,396
  • Notice.jpg
    Notice.jpg
    360.8 KB · Views: 3,114
Last edited:
Level 14
Joined
Aug 30, 2004
Messages
909
I have been making maps for 10 years, and I never knew you could cut and paste terrain!

That aside, this is a very nice tutorial. I've been doing a water map and working with this sort of water, and this would have been very helpful. I've been monkeying around raising cliffs, adding water, then lowered the cliffs and raising the terrain. If you had done this a week earlier!

Anyway, good job, and +rep.

EDIT:

This reminds me. On this same map, I need to detect when a boat goes down a level of water. Terrain height appears to give me the height of the ground beneath. GetLocationZ does the same. Is there anyway to detect water height?
 
Last edited:
Level 15
Joined
Nov 30, 2007
Messages
1,202
Thank you for your kind words.

This reminds me. On this same map, I need to detect when a boat goes down a level of water. Terrain height appears to give me the height of the ground beneath. GetLocationZ does the same. Is there anyway to detect water height?

Well I'm no scripter but I'm sure there are workarounds to your problem.

1. Check if the unit is on water.
2a. Place invisible platforms under the water or change the ground beneth acordingly?
2b. Create enter and exit regions?
... I don't know if any of this may work for you but atleast I tried.
 
Level 14
Joined
Aug 30, 2004
Messages
909
Thank you for your kind words.



Well I'm no scripter but I'm sure there are workarounds to your problem.

1. Check if the unit is on water.
2a. Place invisible platforms under the water or change the ground beneth acordingly?
2b. Create enter and exit regions?
... I don't know if any of this may work for you but atleast I tried.

The problem is that it needs to be exactly precise, so regions won't work. Changing the terrain below would have worked if I hadn't messed it all up already. Anyway, if anyone knows please post it. If not, I'll work around...maybe I'll shake the camera so the player doesn't see how bad the drop looks. Thanks again for the tutorial.
 
Level 5
Joined
Aug 21, 2012
Messages
107
I don't mean to spoil in those whomed successfully do this but this is a, W-O-R-S-T Tutorial. Dood many other users will get stuck at step 3 and a video is pleasing for you to show us step by step /w instructions. Dood if your on to creating a video, I'am waiting.
 
Last edited:
Level 15
Joined
Nov 30, 2007
Messages
1,202
Euhm this is what happens when i do it the terrain around it deforms or something there seems to be nothing i can do about it. And i am using a fresh installation of warcraft 3.

Hmm, I tried this again when i had freshly installed wc3 roc, it worked perfectly. Then I used my brothers computer and the same thing as seen in this post happend. I honestly don't know how to work around it yet. Or why it happens, maybe someone with more knowledge could answer this.
 
Level 4
Joined
Mar 30, 2013
Messages
69
Hi, thanks for your teaching on the water.

Not if I could help the 5th part I do not get the sand under water ... :(
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,243
well, what did YOU use??
I used a custom written Java program. Although I do possess a Java MPQ reader, I do not have a writer. As such I used MPQEdit to manually export the w3e file of a blank map and manually imported the modified one back.

First image of random height water used the standard library RNG of Java on a per tile basis.

Second image took advantage of the Java image framework built into Java SE as part of the Java standard libraries. The framework supports most common file formats and has simple modification capabilities. After scaling the bitmap to the appropriate size I iteratively applied a mapping function to every pixel to translate it into one of the w3e fields.

He used this system with copy paste aparently. It's not that big deal.
No I used a custom written program as a "proof of concept". The reality is the editor really should have a tool to modify the water mesh like it has with the ground mesh. The reason why it does not eludes me.

Without a tool, doing what I did on the scale of what I did with the same precision using the "copy" approach would take you years.
 
Level 6
Joined
Aug 28, 2019
Messages
84
An idea: If you want flexibility in your map's overall water level, never create the map with any baseline water level. Using any base water level permanently makes your map with that base water level, and the only way to override water levels to higher cliffs is with pasting. Even if you uncheck the "Enforce Water Level Restrictions" in the menu, you will always have to cut and paste. Instead, create your new map without any water level. Then you can play with the water levels by simply (for example):

1) on a flat plane, use the "raise 1 level" to put a single square of terrain
2) change to shallow water, then overwrite that single square
3) repeat 1 and 2, except with 2, use deep water, and compare.
4) repeat 1 and 2, except use "raise 2 levels", and then repeat 3
5) with this method, you never need to cut and paste, and you can fully modulate without using another map. It's more tedious but you at least aren't Alt-W-1 and 2ing.
 
Top