This is a project that I have been experimenting with for quite some time.
In short, it uses heightmaps to add and subtract height on top of the existing terrain in DaggerFall. It supports the use of multiple heightmaps, each with independent settings; that when combined creates more variation in the overall landscape.
It comes with a premade prefab that I created, but a lot of effort has been put into making flexible and user friendly to work it. So I consider this more of a tool than anything else.
Anyway, here are some screenshots of it in action!
You can find the download link at the bottom of this post. Just place the included prefab in your streaming world scene, and your are good to go!
For those interested in experimenting with the tool themselves, here is a quick rundown of the settings!
Texture:
- The texture needs to be read/write enabled (in the unity texture import settings) and have a minimum size of 128 x 128 pixels. Higher resolutions are compatibly as long as they remain by the power of two. For example: 256 x 256 and 512 x512.
Added Heightmaps repeats seamlessly across the world. A 128 x 128 texture repeats over every single terrain piece, a 256 x 256 repeats over 2x2 terrain pieces, 512 x 512 repeats over 4x4 terrain pieces, and so on.
Strength multiplier
- The strength multiplier determines how much each heightmap affects the height of the terrain, with a higher value affecting it more.
I made this setting into a slider in the Unity inspector. The slider has a max value of 0.1, which based on my testing is well above what you will need/want.
- Affects how your heightmap blends unto the existing terrain, if the heightmap adds or subtracts height, or a mix of both.
- Additive: The heightmap adds height to the terrain.
Subtract: The heightmap subtracts height from the terrain.
Mixed: The heightmap will both add and subtract from the terrain. This is the default setting and the one I recommend using because it helps to smooth out the edges around locations such as cities.
- Additive: The heightmap adds height to the terrain.
- The strength of the heightmap based on the height of the base terrain.
For this setting I use an animation curve. The horizontal value from 0 – 1 represents the lowest to highest possible point on the terrains in Daggerfall. The vertical value from 0-1 represents the strength multiplier for of each height.
This is very useful to make sure that the ocean surface in Daggerfall is not affected by the heightmap. Believe me, an ocean surface with hills looks weird!
You can also use this setting to achieve other results. In my prefab example I use a heightmap that increases in strength as the terrain get’s higher, creating the effect that the terrain grows rougher and more uneven as you gain higher altitude in the world.
- Locations are excluded from the heightmaps influence and are keept flat. The tool does however automatically fade the changes around the borders at these locations.
http://speedy.sh/JgrrS/TerrainTool.zip