Modular Terrain Tiles v1.0

If you liked this, I’d really appreciate you leaving a review!

DOCUMENTATION

1. Description

This asset is a pack of 42 unique modular terrain tiles designed to make building terrain and game maps easier and visual impressive.

The tiles have been built to connect seamlessly through the sharing of border vertex positions and normals.

The kit includes tiles that span two vertical height levels (A–B) as well as tiles that span three vertical height levels (A–B–C), allowing for both simple elevation steps and taller cliff transitions.

Also included is a custom built shader that uses tile specific splatmaps to define where textures appear on each tile. Materials can therefore be changed easily by replacing the textures in the β€˜master’ material without breaking modularity.

1.1 Supported Workflows

URP and HDRP workflows are supported. Folders containing both pipeline assets will be installed automatically. The folder containing not required pipeline data can be safely deleted.

Due to its depreciation, the Built-in Render Pipeline is not supported.

Unity Version
Built and tested in Unity 2022.3.4f1 (LTS)

Not yet fully tested in Unity 6

2. Usage

The tiles are 20m x 20m x 10m(h) and can be laid out by setting the grid size accordingly and turning on grid snapping.

Place tiles by dragging one of the 15 parent tile prefabs from the prefab/biome folder into the Hierarchy.

Rotate, snap and mirror using the helper script.

You can replace the tile with another variant via the Tile Variant Switcher script.

Orientation

Y = Up

1 Unity Unit = 1 Metre

2.1

Tile Placement Helper

  • Rotate and mirror tiles around their centre point
  • Snap tiles precisely to the grid (grid increment must match tile size)

Tile Variant Switcher

  • Swap tile prefabs via a dropdown menu
  • Randomises variants on placement
  • Useful for introducing visual variety or placing functional tiles such as ramps

Note: Prefabs are placed empty, then a tile variant is instanced upon placement.

The tile placement helper supports multi object editing provided all the objects selected have that component attached.

2.2 Tile Rename Patcher

Some tiles have inconsistent naming conventions where the first letter of the pattern (eg AABB) does not correspond to the same vertex on each tile type. Although not a problem in most cases, this could cause issues for auto placers that read the game object name strings.

There is a patcher included and can be accessed via the main menu bar:

β€˜Tools/NotNormalGames/MTT/Apply Naming Fix’.

This will rename the tiles to ensure the first letter of the name, eg β€˜A’ in ABBC, always corresponds to the bottom right vertex of each tile and continues clockwise.

Note that scene references will be updated automatically by Unity, but string references in scripts will require a manual correction.

3. TECHNICAL


LOD

All cliff pieces have 3 LOD levels defined.

LOD distances can be altered within the LOD group component in the inspector.

Colliders

All tiles have simplified mesh colliders applied.

Mesh Density

Tri-count approximations are as follows:

LOD0 3k – 4k

LOD1 700-900

LOD2 300-450

Some tiles exceed stated tri counts where silhouette or readability requires it.

4. SHADER/ MATERIAL


Cliff tiles use a shader that has the following structure:

  • Tile variant-specific maps drive texturing through splatmaps, normal and AO maps.
  • A worldspace triplaner shared material is overlaid across all tiles to help blend tiles together.

The materials using this shader can be edited in numerous ways (see 4.1), such as replacing cliff/debris/ground textures, or altering shader properties.. Any changes made at master level will automatically be inherited by child materials. There is a dedicated child material for each LOD level, allowing for performance toggles per LOD level. For example, turning off triplaner normal maps for LOD1, and mask maps and normal maps for LOD2,

Tile specific maps (AO, splat and normal maps) are packed into texture arrays and assigned through an index, stored in vertex colours per mesh. As such all tiles of the same LOD level share a material and are static batched for performance.

4.1 Material Parameters

General

  • Triplaner blending samples – default 4. Higher values give higher fidelity textures but have a performance cost.
  • Smoothness Master – when TriplanerMask Toggle is On this adjusts the smoothness value from cliff mask map. When TriplanerMask Toggle Off provides a smoothness value between 0 and 1 for the cliff material. Array Data – Texture arrays assigned here.
  • Tile Maps – AO contrast – per tile AO map contrast
  • Unique Tile Normal Strength – Per tile normal map strength.
  • Debris Edge Fade – Controls level or debris at the edges to blend with ground texture or display as hard edge Rock Texture
  • Base Colour – Set cliff rock albedo map.
  • Rock Tint – Tint cliff rock albedo
  • Cliff Variation From AO – Adds subtle lightening of base colour to give variation and depth to cliffs
  • Rock Normal – Set cliff rock normal map.
  • RockMaskMap – Set packed unity standard mask map (metallic/AO/detail/smoothness).
  • AO Rock Falloff – Amount of AO detail coverage
  • AO Rock Contrast – Intensity of AO
  • Rock Normal Strength – Set rock normal strength
  • Rock Tiling – Change tiling of rock texture Ground Texture
  • Base colour – Set ground albedo map
  • Ground Tint – Tint ground albedo
  • Ground Normal – Set ground normal map.
  • Ground Normal Strength – Set ground normal strength
  • Ground Tiling – Change tiling of ground textures Debris
  • Base Colour – Set debris (around cliff base) albedo map
  • Debris Tint – Tint debris albedo.
  • Debris Normal – Set debris normal map
  • Debris Normal Strength – Set debris normal strength
  • Debris Tiling – Change tiling of debris textures Dirt/Streaks
  • Amount – Set the level of streaks
  • Colour – Set the colour of streaks
  • Wetness – Set the smoothness of the streaks to appear like water running down the cliff face Performance
  • TriplanerNormalToggle – Set keyword On/Off to include or remove triplaner shared normal map across all cliff tiles
  • TriplanerMaskToggle – Set keyword On/Off to include or remove triplaner shared mask map across all cliff tiles

If you wish to paint custom splatmaps this can be done through third party plugins, but the unique normal and AO maps will be lost unless a custom solution is built. Each tile has a UV unwrap in UV2 suitable for low resolution splat map painting (tested down to 64×64 which works as expected).

5. TEXTURES


There are three texture sets included (Desert, snow and jungle) with the following maps for each biome:

Cliff – Albedo / Mask/ Normal

Ground – Albedo / Normal

Debris – Albedo / Normal

Texture placement is driven by a tile specific RGBA splat map.

The fourth channel used by the splat map is for streaks on the cliff face which can be made to add wetness.

6. LIGHTMAPS


UV2 channel layouts may be suitable for baking lightmaps (well padded), but please note they weren’t designed for this specifically and Unity can generate them if needed.

7. DEMO SCENE AND ASSET LIBRARY


The pack includes a demo scene showcasing example terrain layouts and vertical transitions, as well as an asset library scene containing all tiles organised by transition level.

Vegetation, props, decals, and terrain painting/manipulation tools are not included.

8. LIMITATIONS


This asset is not a terrain sculptor or biome generator. It does not include tools for placing foliage or other detail items.

The default state of the asset does not allow for painting of terrain.

These features are possible when combined with other plug-ins.

9. ALTERNATIVE WORKFLOWS


Third party plug-ins can be utilised to allow for terrain painting or foliage placement.

10. LICENSE / USAGE SCOPE

Assets may be used in commercial and non-commercial projects under the standard Unity Asset Store EULA.

11. THIRD PARTY LICENSES

Supporting art assets, such as textures and HDRI maps have been included using respective usage license agreements.